diff --git a/CoreFoundation/AppServices.subproj/CFNotificationCenter.h b/CoreFoundation/AppServices.subproj/CFNotificationCenter.h new file mode 100644 index 0000000000..27852b0981 --- /dev/null +++ b/CoreFoundation/AppServices.subproj/CFNotificationCenter.h @@ -0,0 +1,81 @@ +/* CFNotificationCenter.h + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +*/ + +#if !defined(__COREFOUNDATION_CFNOTIFICATIONCENTER__) +#define __COREFOUNDATION_CFNOTIFICATIONCENTER__ 1 + +#include +#include + +CF_IMPLICIT_BRIDGING_ENABLED +CF_EXTERN_C_BEGIN + +typedef CFStringRef CFNotificationName CF_EXTENSIBLE_STRING_ENUM; + +typedef struct CF_BRIDGED_MUTABLE_TYPE(id) __CFNotificationCenter * CFNotificationCenterRef; + +typedef void (*CFNotificationCallback)(CFNotificationCenterRef center, void *observer, CFNotificationName name, const void *object, CFDictionaryRef userInfo); + +typedef CF_ENUM(CFIndex, CFNotificationSuspensionBehavior) { + CFNotificationSuspensionBehaviorDrop = 1, + // The server will not queue any notifications with this name and object while the process/app is in the background. + CFNotificationSuspensionBehaviorCoalesce = 2, + // The server will only queue the last notification of the specified name and object; earlier notifications are dropped. + CFNotificationSuspensionBehaviorHold = 3, + // The server will hold all matching notifications until the queue has been filled (queue size determined by the server) at which point the server may flush queued notifications. + CFNotificationSuspensionBehaviorDeliverImmediately = 4 + // The server will deliver notifications matching this registration whether or not the process is in the background. When a notification with this suspension behavior is matched, it has the effect of first flushing any queued notifications. +}; + +CF_EXPORT CFTypeID CFNotificationCenterGetTypeID(void); + +CF_EXPORT CFNotificationCenterRef CFNotificationCenterGetLocalCenter(void); + +#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || TARGET_OS_WIN32 +CF_EXPORT CFNotificationCenterRef CFNotificationCenterGetDistributedCenter(void); +#endif + +CF_EXPORT CFNotificationCenterRef CFNotificationCenterGetDarwinNotifyCenter(void); +// The Darwin Notify Center is based on the API. +// For this center, there are limitations in the API. There are no notification "objects", +// "userInfo" cannot be passed in the notification, and there are no suspension behaviors +// (always "deliver immediately"). Other limitations in the API as described in +// that header will also apply. +// - In the CFNotificationCallback, the 'object' and 'userInfo' parameters must be ignored. +// - CFNotificationCenterAddObserver(): the 'object' and 'suspensionBehavior' arguments are ignored. +// - CFNotificationCenterAddObserver(): the 'name' argument may not be NULL (for this center). +// - CFNotificationCenterRemoveObserver(): the 'object' argument is ignored. +// - CFNotificationCenterPostNotification(): the 'object', 'userInfo', and 'deliverImmediately' arguments are ignored. +// - CFNotificationCenterPostNotificationWithOptions(): the 'object', 'userInfo', and 'options' arguments are ignored. +// The Darwin Notify Center has no notion of per-user sessions, all notifications are system-wide. +// As with distributed notifications, the main thread's run loop must be running in one of the +// common modes (usually kCFRunLoopDefaultMode) for Darwin-style notifications to be delivered. +// NOTE: NULL or 0 should be passed for all ignored arguments to ensure future compatibility. + + +CF_EXPORT void CFNotificationCenterAddObserver(CFNotificationCenterRef center, const void *observer, CFNotificationCallback callBack, CFStringRef name, const void *object, CFNotificationSuspensionBehavior suspensionBehavior); + +CF_EXPORT void CFNotificationCenterRemoveObserver(CFNotificationCenterRef center, const void *observer, CFNotificationName name, const void *object); +CF_EXPORT void CFNotificationCenterRemoveEveryObserver(CFNotificationCenterRef center, const void *observer); + +CF_EXPORT void CFNotificationCenterPostNotification(CFNotificationCenterRef center, CFNotificationName name, const void *object, CFDictionaryRef userInfo, Boolean deliverImmediately); + +CF_ENUM(CFOptionFlags) { + kCFNotificationDeliverImmediately = (1UL << 0), + kCFNotificationPostToAllSessions = (1UL << 1) +}; + +CF_EXPORT void CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterRef center, CFNotificationName name, const void *object, CFDictionaryRef userInfo, CFOptionFlags options); + + +CF_EXTERN_C_END +CF_IMPLICIT_BRIDGING_DISABLED + +#endif /* ! __COREFOUNDATION_CFNOTIFICATIONCENTER__ */ + diff --git a/CoreFoundation/AppServices.subproj/CFUserNotification.c b/CoreFoundation/AppServices.subproj/CFUserNotification.c index 9c400f413e..d7fef4615e 100644 --- a/CoreFoundation/AppServices.subproj/CFUserNotification.c +++ b/CoreFoundation/AppServices.subproj/CFUserNotification.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUserNotification.c - Copyright (c) 2000-2015, Apple Inc. All rights reserved. + Copyright (c) 2000-2016, Apple Inc. All rights reserved. + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Original Author: Doug Davidson Responsibility: Kevin Perry */ diff --git a/CoreFoundation/AppServices.subproj/CFUserNotification.h b/CoreFoundation/AppServices.subproj/CFUserNotification.h index f823a6ea0e..c6b9db659c 100644 --- a/CoreFoundation/AppServices.subproj/CFUserNotification.h +++ b/CoreFoundation/AppServices.subproj/CFUserNotification.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUserNotification.h - Copyright (c) 2000-2015, Apple Inc. All rights reserved. + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUSERNOTIFICATION__) diff --git a/CoreFoundation/Base.subproj/CFAvailability.h b/CoreFoundation/Base.subproj/CFAvailability.h index 7f0aead475..f8ed142818 100644 --- a/CoreFoundation/Base.subproj/CFAvailability.h +++ b/CoreFoundation/Base.subproj/CFAvailability.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFAvailability.h - Copyright (c) 2013 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2013-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFAVAILABILITY__) @@ -21,12 +16,18 @@ #include #endif +#if DEPLOYMENT_RUNTIME_SWIFT +#define API_AVAILABLE(...) +#define API_DEPRECATED(...) +#else #if (TARGET_OS_MAC || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32) #include +#include // Even if unused, these must remain here for compatibility, because projects rely on them being included. #include #endif +#endif #ifndef __has_feature #define __has_feature(x) 0 @@ -138,7 +139,27 @@ CF_ENUM(CFIndex) { ... }; */ -#define CF_ENUM(...) __CF_ENUM_GET_MACRO(__VA_ARGS__, __CF_NAMED_ENUM, __CF_ANON_ENUM)(__VA_ARGS__) +#define CF_ENUM(...) __CF_ENUM_GET_MACRO(__VA_ARGS__, __CF_NAMED_ENUM, __CF_ANON_ENUM, )(__VA_ARGS__) + +#if __has_attribute(swift_wrapper) +#define _CF_TYPED_ENUM __attribute__((swift_wrapper(enum))) +#else +#define _CF_TYPED_ENUM +#endif + +#if __has_attribute(swift_wrapper) +#define _CF_TYPED_EXTENSIBLE_ENUM __attribute__((swift_wrapper(struct))) +#else +#define _CF_TYPED_EXTENSIBLE_ENUM +#endif + +#if DEPLOYMENT_RUNTIME_SWIFT +#define CF_STRING_ENUM +#define CF_EXTENSIBLE_STRING_ENUM +#else +#define CF_STRING_ENUM _CF_TYPED_ENUM +#define CF_EXTENSIBLE_STRING_ENUM _CF_TYPED_EXTENSIBLE_ENUM +#endif // Extension availability macros #define CF_EXTENSION_UNAVAILABLE(_msg) __OS_EXTENSION_UNAVAILABLE(_msg) diff --git a/CoreFoundation/Base.subproj/CFBase.c b/CoreFoundation/Base.subproj/CFBase.c index ff98ff66ee..956449c43d 100644 --- a/CoreFoundation/Base.subproj/CFBase.c +++ b/CoreFoundation/Base.subproj/CFBase.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBase.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -46,7 +41,7 @@ struct __CFAllocator { unsigned (*batch_malloc)(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */ void (*batch_free)(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */ - struct malloc_introspection_t *introspect; + const struct malloc_introspection_t *introspect; unsigned version; /* aligned memory allocation. The callback may be NULL. */ @@ -170,7 +165,7 @@ static size_t __CFAllocatorCustomGoodSize(malloc_zone_t *zone, size_t size) { return CFAllocatorGetPreferredSizeForSize(allocator, size, 0); } -static struct malloc_introspection_t __CFAllocatorZoneIntrospect = { +static const struct malloc_introspection_t __CFAllocatorZoneIntrospect = { (void *)__CFAllocatorZoneIntrospectNoOp, (void *)__CFAllocatorCustomGoodSize, (void *)__CFAllocatorZoneIntrospectTrue, @@ -211,7 +206,7 @@ static size_t __CFAllocatorNullGoodSize(malloc_zone_t *zone, size_t size) { return size; } -static struct malloc_introspection_t __CFAllocatorNullZoneIntrospect = { +static const struct malloc_introspection_t __CFAllocatorNullZoneIntrospect = { (void *)__CFAllocatorZoneIntrospectNoOp, (void *)__CFAllocatorNullGoodSize, (void *)__CFAllocatorZoneIntrospectTrue, @@ -378,6 +373,8 @@ const CFAllocatorRef kCFAllocatorMalloc = &__kCFAllocatorMalloc; const CFAllocatorRef kCFAllocatorMallocZone = &__kCFAllocatorMallocZone; const CFAllocatorRef kCFAllocatorNull = &__kCFAllocatorNull; const CFAllocatorRef kCFAllocatorUseContext = (CFAllocatorRef)0x03ab; + +// Even though we no longer support GC, leave in the definitions for exported symbols. #undef kCFAllocatorSystemDefaultGCRefZero #undef kCFAllocatorDefaultGCRefZero const CFAllocatorRef kCFAllocatorSystemDefaultGCRefZero = (CFAllocatorRef)0x03ad; @@ -415,7 +412,7 @@ CF_PRIVATE void __CFAllocatorDeallocate(CFTypeRef cf) { if (NULL != releaseFunc) { INVOKE_CALLBACK1(releaseFunc, self->_context.info); } - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) CFAllocatorDeallocate(allocator, (void *)self); + CFAllocatorDeallocate(allocator, (void *)self); } } @@ -445,7 +442,7 @@ CF_PRIVATE void __CFAllocatorInitialize(void) { _CFAllocatorSetInstanceTypeIDAndIsa(&__kCFAllocatorSystemDefault); #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI - __kCFAllocatorSystemDefault._context.info = (kCFUseCollectableAllocator ? objc_collectableZone() : malloc_default_zone()); + __kCFAllocatorSystemDefault._context.info = malloc_default_zone(); #endif __kCFAllocatorSystemDefault._allocator = kCFAllocatorSystemDefault; @@ -494,7 +491,7 @@ void CFAllocatorSetDefault(CFAllocatorRef allocator) { } #if DEPLOYMENT_RUNTIME_SWIFT -// Custom allocators are unsupported +// Custom allocators are unsupported for swift-corelibs-foundation CFAllocatorRef CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorContext *context) { HALT; } @@ -529,7 +526,7 @@ static CFAllocatorRef __CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorC } } else { allocator = (NULL == allocator) ? __CFGetDefaultAllocator() : allocator; - memory = (struct __CFAllocator *)CFAllocatorAllocate(allocator, sizeof(struct __CFAllocator), __kCFAllocatorGCObjectMemory); + memory = (struct __CFAllocator *)CFAllocatorAllocate(allocator, sizeof(struct __CFAllocator), 0); if (NULL == memory) { return NULL; } @@ -578,6 +575,7 @@ static CFAllocatorRef __CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorC return memory; } + CFAllocatorRef CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorContext *context) { return __CFAllocatorCreate(allocator, context); } @@ -587,7 +585,6 @@ void *CFAllocatorAllocate(CFAllocatorRef allocator, CFIndex size, CFOptionFlags CFAllocatorAllocateCallBack allocateFunc; void *newptr = NULL; - Boolean initialRefcountOne = true; if (NULL == allocator) { allocator = __CFGetDefaultAllocator(); } @@ -605,14 +602,10 @@ void *CFAllocatorAllocate(CFAllocatorRef allocator, CFIndex size, CFOptionFlags return malloc_zone_malloc((malloc_zone_t *)allocator, size); } #endif - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - newptr = auto_zone_allocate_object((auto_zone_t*)allocator->_context.info, size, CF_GET_GC_MEMORY_TYPE(hint), initialRefcountOne, false); - } else { - newptr = NULL; - allocateFunc = __CFAllocatorGetAllocateFunction(&allocator->_context); - if (allocateFunc) { - newptr = (void *)INVOKE_CALLBACK3(allocateFunc, size, hint, allocator->_context.info); - } + newptr = NULL; + allocateFunc = __CFAllocatorGetAllocateFunction(&allocator->_context); + if (allocateFunc) { + newptr = (void *)INVOKE_CALLBACK3(allocateFunc, size, hint, allocator->_context.info); } return newptr; } @@ -623,11 +616,7 @@ void *CFAllocatorReallocate(CFAllocatorRef allocator, void *ptr, CFIndex newsize CFAllocatorDeallocateCallBack deallocateFunc; void *newptr; - if (0) { - allocator = kCFAllocatorSystemDefault; - } else if (0) { - allocator = kCFUseCollectableAllocator ? kCFAllocatorSystemDefault : __CFGetDefaultAllocator(); - } else if (NULL == allocator) { + if (NULL == allocator) { allocator = __CFGetDefaultAllocator(); } @@ -683,12 +672,7 @@ void *CFAllocatorReallocate(CFAllocatorRef allocator, void *ptr, CFIndex newsize void CFAllocatorDeallocate(CFAllocatorRef allocator, void *ptr) { CFAllocatorDeallocateCallBack deallocateFunc; - if (0) { - allocator = kCFAllocatorSystemDefault; - } else if (0) { - allocator = kCFUseCollectableAllocator ? kCFAllocatorSystemDefault : __CFGetDefaultAllocator(); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) return; - } else if (NULL == allocator) { + if (NULL == allocator) { allocator = __CFGetDefaultAllocator(); } @@ -718,11 +702,7 @@ CFIndex CFAllocatorGetPreferredSizeForSize(CFAllocatorRef allocator, CFIndex siz CFAllocatorPreferredSizeCallBack prefFunc; CFIndex newsize = 0; - if (0) { - allocator = kCFAllocatorSystemDefault; - } else if (0) { - allocator = kCFUseCollectableAllocator ? kCFAllocatorSystemDefault : __CFGetDefaultAllocator(); - } else if (NULL == allocator) { + if (NULL == allocator) { allocator = __CFGetDefaultAllocator(); } @@ -747,11 +727,7 @@ CFIndex CFAllocatorGetPreferredSizeForSize(CFAllocatorRef allocator, CFIndex siz } void CFAllocatorGetContext(CFAllocatorRef allocator, CFAllocatorContext *context) { - if (0) { - allocator = kCFAllocatorSystemDefault; - } else if (0) { - allocator = kCFUseCollectableAllocator ? kCFAllocatorSystemDefault : __CFGetDefaultAllocator(); - } else if (NULL == allocator) { + if (NULL == allocator) { allocator = __CFGetDefaultAllocator(); } @@ -762,7 +738,7 @@ void CFAllocatorGetContext(CFAllocatorRef allocator, CFAllocatorContext *context #else __CFGenericValidateType(allocator, __kCFAllocatorTypeID); #endif - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI if (allocator->_base._cfisa != __CFISAForTypeID(__kCFAllocatorTypeID)) { // malloc_zone_t * return; @@ -779,34 +755,6 @@ void CFAllocatorGetContext(CFAllocatorRef allocator, CFAllocatorContext *context context->preferredSize = __CFAllocatorGetPreferredSizeFunction(&allocator->_context); } -CF_EXPORT void *_CFAllocatorAllocateGC(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint) -{ - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) - return auto_zone_allocate_object((auto_zone_t*)kCFAllocatorSystemDefault->_context.info, size, CF_GET_GC_MEMORY_TYPE(hint), false, false); - else - return CFAllocatorAllocate(allocator, size, hint); -} - -CF_EXPORT void *_CFAllocatorReallocateGC(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint) -{ - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (ptr && (newsize == 0)) { - return NULL; // equivalent to _CFAllocatorDeallocateGC. - } - if (ptr == NULL) { - return auto_zone_allocate_object((auto_zone_t*)kCFAllocatorSystemDefault->_context.info, newsize, CF_GET_GC_MEMORY_TYPE(hint), false, false); // eq. to _CFAllocator - } - } - // otherwise, auto_realloc() now preserves layout type and refCount. - return CFAllocatorReallocate(allocator, ptr, newsize, hint); -} - -CF_EXPORT void _CFAllocatorDeallocateGC(CFAllocatorRef allocator, void *ptr) -{ - // when running GC, don't deallocate. - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) CFAllocatorDeallocate(allocator, ptr); -} - // -------- -------- -------- -------- -------- -------- -------- -------- @@ -875,7 +823,7 @@ void _CFRuntimeSetCFMPresent(void *addr) { extern void __HALT() { - __builtin_trap(); + __builtin_trap(); } diff --git a/CoreFoundation/Base.subproj/CFBase.h b/CoreFoundation/Base.subproj/CFBase.h index bb3b4a9bad..8193a7c94f 100644 --- a/CoreFoundation/Base.subproj/CFBase.h +++ b/CoreFoundation/Base.subproj/CFBase.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBase.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBASE__) @@ -54,17 +49,6 @@ #error Both __BIG_ENDIAN__ and __LITTLE_ENDIAN__ cannot be true #endif -#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS) -#if DEPLOYMENT_RUNTIME_SWIFT -#define __HAS_DISPATCH__ 0 -#else -#define __HAS_DISPATCH__ 1 -#endif -#endif -#if DEPLOYMENT_TARGET_LINUX && DEPLOYMENT_RUNTIME_SWIFT && DEPLOYMENT_ENABLE_LIBDISPATCH -#define __HAS_DISPATCH__ 1 -#endif - // Some compilers provide the capability to test if certain features are available. This macro provides a compatibility path for other compilers. #ifndef __has_feature #define __has_feature(x) 0 @@ -82,6 +66,10 @@ #if defined(__GNUC__) || TARGET_OS_WIN32 #include #include +#endif + +#if __BLOCKS__ +#include #endif #if ((TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) && !DEPLOYMENT_RUNTIME_SWIFT @@ -128,7 +116,6 @@ typedef UInt8 UTF8Char; #endif - #if !defined(CF_EXTERN_C_BEGIN) #if defined(__cplusplus) #define CF_EXTERN_C_BEGIN extern "C" { @@ -140,30 +127,23 @@ #endif #if TARGET_OS_WIN32 - -#if !defined(CF_EXPORT) -#if defined(CF_BUILDING_CF) && defined(__cplusplus) -#define CF_EXPORT extern "C" __declspec(dllexport) -#elif defined(CF_BUILDING_CF) && !defined(__cplusplus) -#define CF_EXPORT extern __declspec(dllexport) -#elif defined(__cplusplus) -#define CF_EXPORT extern "C" __declspec(dllimport) -#else -#define CF_EXPORT extern __declspec(dllimport) -#endif -#endif - -#elif TARGET_OS_LINUX - -#if !defined(CF_EXPORT) -#if defined(__cplusplus) -#define CF_EXPORT extern "C" __attribute__ (( __visibility__("default") )) -#else -#define CF_EXPORT extern __attribute__ (( __visibility__("default") )) -#endif -#endif + #if !defined(CF_EXPORT) + #if defined(CF_BUILDING_CF) && defined(__cplusplus) + #define CF_EXPORT extern "C" __declspec(dllexport) + #elif defined(CF_BUILDING_CF) && !defined(__cplusplus) + #define CF_EXPORT extern __declspec(dllexport) + #elif defined(__cplusplus) + #define CF_EXPORT extern "C" __declspec(dllimport) + #else + #define CF_EXPORT extern __declspec(dllimport) + #endif + #endif #else -#define CF_EXPORT extern + #if defined(__cplusplus) + #define CF_EXPORT extern "C" + #else + #define CF_EXPORT extern + #endif #endif CF_EXTERN_C_BEGIN @@ -245,7 +225,6 @@ CF_EXTERN_C_BEGIN #define CF_AUTOMATED_REFCOUNT_UNAVAILABLE #endif - #ifndef CF_IMPLICIT_BRIDGING_ENABLED #if __has_feature(arc_cf_code_audited) #define CF_IMPLICIT_BRIDGING_ENABLED _Pragma("clang arc_cf_code_audited begin") @@ -304,27 +283,12 @@ CF_EXTERN_C_BEGIN #ifndef _Nullable #define _Nullable #endif - -#ifndef __nullable -#define __nullable -#endif - -#ifndef __nonnull -#define __nonnull -#endif - #ifndef _Nonnull #define _Nonnull #endif - -#ifndef __null_unspecified -#define __null_unspecified -#endif - #ifndef _Null_unspecified #define _Null_unspecified #endif - #endif @@ -341,6 +305,17 @@ CF_EXTERN_C_BEGIN # define CF_SWIFT_NAME(_name) #endif +#if __has_attribute(noescape) +#define CF_NOESCAPE __attribute__((noescape)) +#else +#define CF_NOESCAPE +#endif + +#if __has_attribute(not_tail_called) +#define CF_NO_TAIL_CALL __attribute__((not_tail_called)) +#else +#define CF_NO_TAIL_CALL +#endif #if !__has_feature(objc_generics_variance) #ifndef __covariant @@ -433,6 +408,15 @@ CF_EXPORT double kCFCoreFoundationVersionNumber; #define kCFCoreFoundationVersionNumber10_10_1 1151.16 #define kCFCoreFoundationVersionNumber10_10_2 1152 #define kCFCoreFoundationVersionNumber10_10_3 1153.18 +#define kCFCoreFoundationVersionNumber10_10_4 1153.18 +#define kCFCoreFoundationVersionNumber10_10_5 1153.18 +#define kCFCoreFoundationVersionNumber10_10_Max 1199 +#define kCFCoreFoundationVersionNumber10_11 1253 +#define kCFCoreFoundationVersionNumber10_11_1 1255.1 +#define kCFCoreFoundationVersionNumber10_11_2 1256.14 +#define kCFCoreFoundationVersionNumber10_11_3 1256.14 +#define kCFCoreFoundationVersionNumber10_11_4 1258.1 +#define kCFCoreFoundationVersionNumber10_11_Max 1299 #endif #if TARGET_OS_IPHONE @@ -457,6 +441,13 @@ CF_EXPORT double kCFCoreFoundationVersionNumber; #define kCFCoreFoundationVersionNumber_iOS_8_2 1142.16 #define kCFCoreFoundationVersionNumber_iOS_8_3 1144.17 #define kCFCoreFoundationVersionNumber_iOS_8_4 1145.15 +#define kCFCoreFoundationVersionNumber_iOS_8_x_Max 1199 +#define kCFCoreFoundationVersionNumber_iOS_9_0 1240.1 +#define kCFCoreFoundationVersionNumber_iOS_9_1 1241.11 +#define kCFCoreFoundationVersionNumber_iOS_9_2 1242.13 +#define kCFCoreFoundationVersionNumber_iOS_9_3 1242.13 +#define kCFCoreFoundationVersionNumber_iOS_9_4 1280.38 +#define kCFCoreFoundationVersionNumber_iOS_9_x_Max 1299 #endif #if __LLP64__ @@ -668,6 +659,7 @@ void CFRelease(CFTypeRef cf); #else CF_EXPORT CFTypeRef CFAutorelease(CFTypeRef CF_RELEASES_ARGUMENT arg) CF_AVAILABLE(10_9, 7_0); + CF_EXPORT CFIndex CFGetRetainCount(CFTypeRef cf); #endif @@ -686,7 +678,7 @@ CFAllocatorRef CFGetAllocator(CFTypeRef cf); CF_IMPLICIT_BRIDGING_DISABLED -// This function is unavailable in ARC mode. +// This function is unavailable in ARC mode. On OS X 10.12 and later, this function simply returns the argument. CF_EXPORT CFTypeRef CFMakeCollectable(CFTypeRef cf) CF_AUTOMATED_REFCOUNT_UNAVAILABLE; diff --git a/CoreFoundation/Base.subproj/CFByteOrder.h b/CoreFoundation/Base.subproj/CFByteOrder.h index 76e4f83109..90cada3c59 100644 --- a/CoreFoundation/Base.subproj/CFByteOrder.h +++ b/CoreFoundation/Base.subproj/CFByteOrder.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFByteOrder.h - Copyright (c) 1995 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1995-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBYTEORDER__) diff --git a/CoreFoundation/Base.subproj/CFFileUtilities.c b/CoreFoundation/Base.subproj/CFFileUtilities.c index fccc4a6690..816c772d87 100644 --- a/CoreFoundation/Base.subproj/CFFileUtilities.c +++ b/CoreFoundation/Base.subproj/CFFileUtilities.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFFileUtilities.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -61,7 +56,7 @@ CF_INLINE void closeAutoFSNoWait(int fd) { if (-1 != fd) close(fd); } -CF_EXPORT CFStringRef _CFCopyExtensionForAbstractType(CFStringRef abstractType) { +CF_PRIVATE CFStringRef _CFCopyExtensionForAbstractType(CFStringRef abstractType) { return (abstractType ? (CFStringRef)CFRetain(abstractType) : NULL); } @@ -166,7 +161,7 @@ CF_PRIVATE Boolean _CFReadBytesFromFile(CFAllocatorRef alloc, CFURLRef url, void return _CFReadBytesFromPath(alloc, (const char *)path, bytes, length, maxLength, extraOpenFlags); } -CF_EXPORT Boolean _CFWriteBytesToFile(CFURLRef url, const void *bytes, CFIndex length) { +CF_PRIVATE Boolean _CFWriteBytesToFile(CFURLRef url, const void *bytes, CFIndex length) { int fd = -1; int mode; struct statinfo statBuf; @@ -649,7 +644,7 @@ static Boolean _hasNet(CFStringRef path) { #define IS_SLASH(C) ((C) == '/') #endif -CF_EXPORT UniChar _CFGetSlash() { +CF_PRIVATE UniChar _CFGetSlash() { return CFPreferredSlash; } @@ -657,7 +652,7 @@ CF_PRIVATE CFStringRef _CFGetSlashStr() { return CFPreferredSlashStr; } -CF_EXPORT Boolean _CFIsAbsolutePath(UniChar *unichars, CFIndex length) { +CF_PRIVATE Boolean _CFIsAbsolutePath(UniChar *unichars, CFIndex length) { if (length < 1) { return false; } @@ -753,7 +748,7 @@ CF_PRIVATE void _CFAppendPathComponent2(CFMutableStringRef path, CFStringRef com CFStringAppend(path, component); } -CF_EXPORT Boolean _CFAppendPathComponent(UniChar *unichars, CFIndex *length, CFIndex maxLength, UniChar *component, CFIndex componentLength) { +CF_PRIVATE Boolean _CFAppendPathComponent(UniChar *unichars, CFIndex *length, CFIndex maxLength, UniChar *component, CFIndex componentLength) { if (0 == componentLength) { return true; } @@ -820,7 +815,7 @@ CF_PRIVATE Boolean _CFAppendPathExtension2(CFMutableStringRef path, CFStringRef return true; } -CF_EXPORT Boolean _CFAppendPathExtension(UniChar *unichars, CFIndex *length, CFIndex maxLength, UniChar *extension, CFIndex extensionLength) { +CF_PRIVATE Boolean _CFAppendPathExtension(UniChar *unichars, CFIndex *length, CFIndex maxLength, UniChar *extension, CFIndex extensionLength) { if (maxLength < *length + 1 + extensionLength) { return false; } @@ -866,7 +861,7 @@ CF_EXPORT Boolean _CFAppendPathExtension(UniChar *unichars, CFIndex *length, CFI return true; } -CF_EXPORT Boolean _CFTransmutePathSlashes(UniChar *unichars, CFIndex *length, UniChar replSlash) { +CF_PRIVATE Boolean _CFTransmutePathSlashes(UniChar *unichars, CFIndex *length, UniChar replSlash) { CFIndex didx, sidx, scnt = *length; sidx = (1 < *length && HAS_NET(unichars)) ? 2 : 0; didx = sidx; @@ -909,7 +904,7 @@ CF_PRIVATE CFStringRef _CFCreateLastPathComponent(CFAllocatorRef alloc, CFString return (CFStringRef)CFRetain(path); } -CF_EXPORT CFIndex _CFStartOfLastPathComponent(UniChar *unichars, CFIndex length) { +CF_PRIVATE CFIndex _CFStartOfLastPathComponent(UniChar *unichars, CFIndex length) { CFIndex idx; if (length < 2) { return 0; @@ -941,7 +936,7 @@ CF_PRIVATE CFIndex _CFStartOfLastPathComponent2(CFStringRef path) { return 0; } -CF_EXPORT CFIndex _CFLengthAfterDeletingLastPathComponent(UniChar *unichars, CFIndex length) { +CF_PRIVATE CFIndex _CFLengthAfterDeletingLastPathComponent(UniChar *unichars, CFIndex length) { CFIndex idx; if (length < 2) { return 0; @@ -981,7 +976,7 @@ CF_PRIVATE CFIndex _CFStartOfPathExtension2(CFStringRef path) { return 0; } -CF_EXPORT CFIndex _CFStartOfPathExtension(UniChar *unichars, CFIndex length) { +CF_PRIVATE CFIndex _CFStartOfPathExtension(UniChar *unichars, CFIndex length) { CFIndex idx; if (length < 2) { return 0; @@ -1006,7 +1001,7 @@ CF_PRIVATE CFIndex _CFLengthAfterDeletingPathExtension2(CFStringRef path) { return ((0 < start) ? start : CFStringGetLength(path)); } -CF_EXPORT CFIndex _CFLengthAfterDeletingPathExtension(UniChar *unichars, CFIndex length) { +CF_PRIVATE CFIndex _CFLengthAfterDeletingPathExtension(UniChar *unichars, CFIndex length) { CFIndex start = _CFStartOfPathExtension(unichars, length); return ((0 < start) ? start : length); } diff --git a/CoreFoundation/Base.subproj/CFInternal.h b/CoreFoundation/Base.subproj/CFInternal.h index eefe4a69cc..f63a78593c 100644 --- a/CoreFoundation/Base.subproj/CFInternal.h +++ b/CoreFoundation/Base.subproj/CFInternal.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFInternal.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* @@ -109,6 +104,17 @@ CF_EXTERN_C_BEGIN #endif #include +#if __has_include() +#import +#else +typedef struct os_log_s *os_log_t; +#define os_log(...) +#define os_log_info(...) +#define os_log_debug(...) +#define os_log_error(...) +#define os_log_create(...) (NULL) +#endif + #if DEPLOYMENT_TARGET_MACOSX && DEPLOYMENT_RUNTIME_SWIFT // This target configuration some how misses the availability macros to let these be defined, so this works-around the missing definitions #ifndef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER @@ -129,7 +135,6 @@ CF_EXTERN_C_BEGIN #define __CF_BIG_ENDIAN__ 0 #endif - #include #if DEPLOYMENT_RUNTIME_SWIFT #include @@ -150,7 +155,9 @@ CF_EXPORT void _CFMachPortInstallNotifyPort(CFRunLoopRef rl, CFStringRef mode); #endif -CF_EXPORT CFIndex __CFActiveProcessorCount(); +CF_PRIVATE os_log_t _CFOSLog(void); + +CF_PRIVATE CFIndex __CFActiveProcessorCount(); #ifndef CLANG_ANALYZER_NORETURN #if __has_feature(attribute_analyzer_noreturn) @@ -161,37 +168,34 @@ CF_EXPORT CFIndex __CFActiveProcessorCount(); #endif #if DEPLOYMENT_TARGET_WINDOWS -#if !defined(__GNUC__) -#define __builtin_trap() DebugBreak() -#define __builtin_unreachable() __assume(0) -#endif +#define __builtin_unreachable() do { } while (0) #endif -#if defined(__GNUC__) - #define HALT do {__builtin_trap(); kill(getpid(), 9); __builtin_unreachable(); } while (0) -#elif defined(_MSC_VER) - #define HALT do { __builtin_trap(); abort(); __builtin_unreachable(); } while (0) -#else - #error Compiler not supported +#if defined(__i386__) || defined(__x86_64__) + #if defined(__GNUC__) + #define HALT do {asm __volatile__("int3"); kill(getpid(), 9); __builtin_unreachable(); } while (0) + #elif defined(_MSC_VER) + #define HALT do { DebugBreak(); abort(); __builtin_unreachable(); } while (0) + #else + #error Compiler not supported + #endif #endif + #if defined(DEBUG) - #define __CFAssert(cond, prio, desc, ...) \ - do { \ - if (!(cond)) { \ - CFLog(prio, CFSTR(desc), ##__VA_ARGS__); \ - HALT; \ - } \ - } while (0) + #define CFAssert(cond, prio, desc) do { if (!(cond)) { CFLog(prio, CFSTR(desc)); /* HALT; */ } } while (0) + #define CFAssert1(cond, prio, desc, a1) do { if (!(cond)) { CFLog(prio, CFSTR(desc), a1); /* HALT; */ } } while (0) + #define CFAssert2(cond, prio, desc, a1, a2) do { if (!(cond)) { CFLog(prio, CFSTR(desc), a1, a2); /* HALT; */ } } while (0) + #define CFAssert3(cond, prio, desc, a1, a2, a3) do { if (!(cond)) { CFLog(prio, CFSTR(desc), a1, a2, a3); /* HALT; */ } } while (0) + #define CFAssert4(cond, prio, desc, a1, a2, a3, a4) do { if (!(cond)) { CFLog(prio, CFSTR(desc), a1, a2, a3, a4); /* HALT; */ } } while (0) #else - #define __CFAssert(cond, prio, desc, ...) \ - do { \ - } while (0) + #define CFAssert(cond, prio, desc) do {} while (0) + #define CFAssert1(cond, prio, desc, a1) do {} while (0) + #define CFAssert2(cond, prio, desc, a1, a2) do {} while (0) + #define CFAssert3(cond, prio, desc, a1, a2, a3) do {} while (0) + #define CFAssert4(cond, prio, desc, a1, a2, a3, a4) do {} while (0) #endif -#define CFAssert(condition, priority, description, ...) \ - __CFAssert((condition), (priority), description, ##__VA_ARGS__) - #define __kCFLogAssertion 3 // This CF-only log function uses no CF functionality, so it may be called anywhere within CF - including thread teardown or prior to full CF setup @@ -235,6 +239,8 @@ enum { __CFTSDKeyMachMessageBoost = 12, // valid only in the context of a CFMachPort callout __CFTSDKeyMachMessageHasVoucher = 13, __CFTSDKeyWeakReferenceHandler = 14, + __CFTSDKeyIsInPreferences = 15, + __CFTSDKeyIsHoldingGlobalPreferencesLock = 16, // this can be removed if we run out of TSD keys, it's just for assertions // autorelease pool stuff must be higher than run loop constants __CFTSDKeyAutoreleaseData2 = 61, __CFTSDKeyAutoreleaseData1 = 62, @@ -283,27 +289,11 @@ CF_INLINE CFAllocatorRef __CFGetDefaultAllocator(void) { #define __kCFAllocatorTempMemory 0x2 #define __kCFAllocatorNoPointers 0x10 #define __kCFAllocatorDoNotRecordEvent 0x100 -#define __kCFAllocatorGCScannedMemory 0x200 /* GC: memory should be scanned. */ -#define __kCFAllocatorGCObjectMemory 0x400 /* GC: memory needs to be finalized. */ - -CF_INLINE auto_memory_type_t CF_GET_GC_MEMORY_TYPE(CFOptionFlags flags) { - auto_memory_type_t type = (flags & __kCFAllocatorGCScannedMemory ? 0 : AUTO_UNSCANNED) | (flags & __kCFAllocatorGCObjectMemory ? AUTO_OBJECT : 0); - return type; -} CF_INLINE void __CFAssignWithWriteBarrier(void **location, void *value) { - if (kCFUseCollectableAllocator) { - objc_assign_strongCast((id)value, (id *)location); - } else { - *location = value; - } + *location = value; } -// Zero-retain count CFAllocator functions, i.e. memory that will be collected, no dealloc necessary -CF_EXPORT void *_CFAllocatorAllocateGC(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint); -CF_EXPORT void *_CFAllocatorReallocateGC(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint); -CF_EXPORT void _CFAllocatorDeallocateGC(CFAllocatorRef allocator, void *ptr); - CF_EXPORT CFAllocatorRef _CFTemporaryMemoryAllocator(void); extern uint64_t __CFTimeIntervalToTSR(CFTimeInterval ti); @@ -342,83 +332,66 @@ CF_PRIVATE Boolean __CFProcessIsRestricted(); #define STACK_BUFFER_DECL(T, N, C) T N[C] #endif -#ifdef __ANDROID__ -// Avoids crashes on Android -// https://bugs.swift.org/browse/SR-2587 -// https://bugs.swift.org/browse/SR-2588 -// Seemed to be a linker/relocation? problem. -// CFStrings using CONST_STRING_DECL() were not working -// Applies reference to _NSCFConstantString's isa here -// rather than using a linker option to create an alias. -#define __CFConstantStringClassReference _TMC10Foundation19_NSCFConstantString -#endif CF_EXPORT void * __CFConstantStringClassReferencePtr; -#if defined(__CONSTANT_CFSTRINGS__) + +#if DEPLOYMENT_RUNTIME_SWIFT + CF_EXPORT void *__CFConstantStringClassReference[]; + +#if DEPLOYMENT_TARGET_LINUX +#define CONST_STRING_SECTION __attribute__((section(".cfstr.data"))) +#else +#define CONST_STRING_SECTION +#endif + +#define CONST_STRING_DECL(S, V) \ +const struct __CFConstStr __##S CONST_STRING_SECTION = {{(uintptr_t)&__CFConstantStringClassReference, _CF_CONSTANT_OBJECT_STRONG_RC, 0, {0xc8, 0x07, 0x00, 0x00}}, (uint8_t *)(V), sizeof(V) - 1}; \ +const CFStringRef S = (CFStringRef)&__##S; + +#define PE_CONST_STRING_DECL(S, V) \ +const static struct __CFConstStr __##S CONST_STRING_SECTION = {{(uintptr_t)&__CFConstantStringClassReference, _CF_CONSTANT_OBJECT_STRONG_RC, 0, {0xc8, 0x07, 0x00, 0x00}}, (uint8_t *)(V), sizeof(V) - 1}; \ +CF_PRIVATE const CFStringRef S = (CFStringRef)&__##S; + + +#elif defined(__CONSTANT_CFSTRINGS__) + +#define CONST_STRING_DECL(S, V) const CFStringRef S = (const CFStringRef)__builtin___CFStringMakeConstantString(V); +#define PE_CONST_STRING_DECL(S, V) CF_PRIVATE const CFStringRef S = (const CFStringRef)__builtin___CFStringMakeConstantString(V); + #else -CF_EXPORT int __CFConstantStringClassReference[]; struct CF_CONST_STRING { CFRuntimeBase _base; uint8_t *_ptr; -#if defined(__LP64__) && defined(__BIG_ENDIAN__) - uint64_t _length; -#else uint32_t _length; -#endif }; -#endif + +CF_EXPORT int __CFConstantStringClassReference[]; + +/* CFNetwork also has a copy of the CONST_STRING_DECL macro (for use on platforms without constant string support in cc); please warn cfnetwork-core@group.apple.com of any necessary changes to this macro. -- REW, 1/28/2002 */ #if __CF_BIG_ENDIAN__ -#define __CFSTR_FLAGS {0x00, 0x00, 0x07, 0xc8} + +#define CONST_STRING_DECL(S, V) \ +static struct CF_CONST_STRING __ ## S ## __ = {{(uintptr_t)&__CFConstantStringClassReference, {0x00, 0x00, 0x07, 0xc8}}, (uint8_t *)V, sizeof(V) - 1}; \ +const CFStringRef S = (CFStringRef) & __ ## S ## __; +#define PE_CONST_STRING_DECL(S, V) \ +static struct CF_CONST_STRING __ ## S ## __ = {{(uintptr_t)&__CFConstantStringClassReference, {0x00, 0x00, 0x07, 0xc8}}, (uint8_t *)V, sizeof(V) - 1}; \ +CF_PRIVATE const CFStringRef S = (CFStringRef) & __ ## S ## __; + #elif __CF_LITTLE_ENDIAN__ -#define __CFSTR_FLAGS {0xc8, 0x07, 0x00, 0x00} -#endif -#if defined(__CONSTANT_CFSTRINGS__) -#define __CFSTR_TAG __CFConstStr -#define __CFSTR_CONST const -#else -#define __CFSTR_TAG CF_CONST_STRING -#define __CFSTR_CONST -#endif +#define CONST_STRING_DECL(S, V) \ +static struct CF_CONST_STRING __ ## S ## __ = {{(uintptr_t)&__CFConstantStringClassReference, {0xc8, 0x07, 0x00, 0x00}}, (uint8_t *)(V), sizeof(V) - 1}; \ +const CFStringRef S = (CFStringRef) & __ ## S ## __; +#define PE_CONST_STRING_DECL(S, V) \ +static struct CF_CONST_STRING __ ## S ## __ = {{(uintptr_t)&__CFConstantStringClassReference, {0xc8, 0x07, 0x00, 0x00}}, (uint8_t *)(V), sizeof(V) - 1}; \ +CF_PRIVATE const CFStringRef S = (CFStringRef) & __ ## S ## __; -#if DEPLOYMENT_RUNTIME_SWIFT - // TODO: Pinned retain count for constants? - #define __CFSTR_RC_INIT _CF_CONSTANT_OBJECT_STRONG_RC, 0, - - #if DEPLOYMENT_TARGET_LINUX - #define __CFSTR_SECTION __attribute__((section(".cfstr.data"))) - #else - #define __CFSTR_SECTION - #endif -#else - #define __CFSTR_RC_INIT - #define __CFSTR_SECTION #endif -/* - * CFNetwork also has a copy of the CONST_STRING_DECL macro (for use on - * platforms without constant string support in cc); please warn - * cfnetwork-core@group.apple.com of any necessary changes to this macro. - * -- REW, 1/28/2002 - */ -#define CONST_STRING_DECL(S, V) \ - __CFSTR_CONST struct __CFSTR_TAG __##S __CFSTR_SECTION = { \ - {(uintptr_t)&__CFConstantStringClassReference, \ - __CFSTR_RC_INIT __CFSTR_FLAGS}, \ - (uint8_t *)(V), \ - sizeof(V) - 1}; \ - const CFStringRef S = (CFStringRef)&__##S; - -#define PE_CONST_STRING_DECL(S, V) \ - static __CFSTR_CONST struct __CFSTR_TAG __##S __CFSTR_SECTION = { \ - {(uintptr_t)&__CFConstantStringClassReference, \ - __CFSTR_RC_INIT __CFSTR_FLAGS}, \ - (uint8_t *)(V), \ - sizeof(V) - 1}; \ - CF_PRIVATE const CFStringRef S = (CFStringRef)&__##S; +#endif // __CONSTANT_CFSTRINGS__ CF_EXPORT bool __CFOASafe; CF_EXPORT void __CFSetLastAllocationEventName(void *ptr, const char *classname); @@ -442,24 +415,43 @@ extern CFTypeRef CFMakeUncollectable(CFTypeRef cf); CF_PRIVATE void _CFRaiseMemoryException(CFStringRef reason); -extern CF_PRIVATE Boolean __CFProphylacticAutofsAccess; +CF_EXPORT CF_PRIVATE Boolean __CFProphylacticAutofsAccess; CF_EXPORT id __NSDictionary0__; CF_EXPORT id __NSArray0__; -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI +#if DEPLOYMENT_TARGET_MACOSX typedef pthread_mutex_t CFLock_t; #define CFLockInit ((pthread_mutex_t)PTHREAD_ERRORCHECK_MUTEX_INITIALIZER) #define CF_LOCK_INIT_FOR_STRUCTS(X) (X = CFLockInit) -#define __CFLock(LP) ({ (void)pthread_mutex_lock(LP); }) +#define __CFLock(LP) ({ \ + (void)pthread_mutex_lock(LP); }) + +#define __CFUnlock(LP) ({ \ + (void)pthread_mutex_unlock(LP); }) -#define __CFUnlock(LP) ({ (void)pthread_mutex_unlock(LP); }) +#define __CFLockTry(LP) ({ \ + pthread_mutex_trylock(LP) == 0; }) + +#elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI + +typedef pthread_mutex_t CFLock_t; + +#define CFLockInit ((pthread_mutex_t)PTHREAD_ERRORCHECK_MUTEX_INITIALIZER) +#define CF_LOCK_INIT_FOR_STRUCTS(X) (X = CFLockInit) -#define __CFLockTry(LP) ({ pthread_mutex_trylock(LP) == 0; }) +#define __CFLock(LP) ({ \ + (void)pthread_mutex_lock(LP); }) + +#define __CFUnlock(LP) ({ \ + (void)pthread_mutex_unlock(LP); }) + +#define __CFLockTry(LP) ({ \ + pthread_mutex_trylock(LP) == 0; }) #elif DEPLOYMENT_TARGET_WINDOWS @@ -516,7 +508,6 @@ typedef CFLock_t OSSpinLock; #endif - #if !__HAS_DISPATCH__ typedef volatile long dispatch_once_t; @@ -629,11 +620,21 @@ CF_PRIVATE void _CFIterateDirectory(CFStringRef directoryPath, Boolean appendSla extern void _CFRuntimeSetInstanceTypeIDAndIsa(CFTypeRef cf, CFTypeID newTypeID); -#define CF_OBJC_FUNCDISPATCHV(typeID, obj, ...) do { } while (0) -#define CF_OBJC_CALLV(obj, ...) (0) -#define CF_IS_OBJC(typeID, obj) (0) +#if DEPLOYMENT_RUNTIME_SWIFT +#define CF_IS_SWIFT(type, obj) (_CFIsSwift(type, (CFSwiftRef)obj)) + +#define CF_SWIFT_FUNCDISPATCHV(type, ret, obj, fn, ...) do { \ + if (CF_IS_SWIFT(type, obj)) { \ + return (ret)__CFSwiftBridge.fn((CFSwiftRef)obj, ##__VA_ARGS__); \ + } \ +} while (0) #define CF_SWIFT_CALLV(obj, fn, ...) __CFSwiftBridge.fn((CFSwiftRef)obj, ##__VA_ARGS__) +#else +#define CF_IS_SWIFT(type, obj) (0) +#define CF_SWIFT_FUNCDISPATCHV(type, ret, obj, fn, ...) do { } while (0) +#define CF_SWIFT_CALLV(obj, fn, ...) (0) +#endif extern uintptr_t __CFRuntimeObjCClassTable[]; @@ -641,8 +642,10 @@ CF_INLINE uintptr_t __CFISAForTypeID(CFTypeID typeID) { return (typeID < __CFRuntimeClassTableSize) ? __CFRuntimeObjCClassTable[typeID] : 0; } -/* For Swift, which can't allocate any CF objects until after the bridge is initialized */ -CF_PRIVATE void __CFNumberInitialize(void); + +#define CF_OBJC_FUNCDISPATCHV(typeID, obj, ...) do { } while (0) +#define CF_OBJC_CALLV(obj, ...) (0) +#define CF_IS_OBJC(typeID, obj) (0) /* See comments in CFBase.c */ @@ -678,28 +681,22 @@ CF_PRIVATE void __CFNumberInitialize(void); extern void *__CFLookupCFNetworkFunction(const char *name); -#define DEFINE_WEAK_CFNETWORK_FUNC(R, N, P, A, ...) \ - typedef R (*dyfuncptr)P; \ - static dyfuncptr dyfunc = (dyfuncptr)(~(uintptr_t)0); \ - if ((dyfuncptr)(~(uintptr_t)0) == dyfunc) { \ - dyfunc = (dyfuncptr)__CFLookupCFNetworkFunction(#N); } \ - if (dyfunc) { return dyfunc A ; } \ - return __VA_ARGS__ ; \ -} - -#define DEFINE_WEAK_CFNETWORK_FUNC_FAIL(R, N, P, A, FAILACTION, ...) \ -static R __CFNetwork_ ## N P { \ - typedef R (*dyfuncptr)P; \ - static dyfuncptr dyfunc = (dyfuncptr)(~(uintptr_t)0); \ - if ((dyfuncptr)(~(uintptr_t)0) == dyfunc) { \ - dyfunc = (dyfuncptr)__CFLookupCFNetworkFunction(#N); } \ - if (dyfunc) { return dyfunc A ; } \ - FAILACTION ; \ - return __VA_ARGS__ ; \ -} +#define DEFINE_WEAK_CFNETWORK_FUNC_FAIL(R, N, P, A, FAILACTION, ...) \ + static R __CFNetwork_ ## N P { \ + typedef R (*dyfuncptr)P; \ + static dyfuncptr dyfunc = (dyfuncptr)(~(uintptr_t)0); \ + static dispatch_once_t onceToken; \ + dispatch_once(&onceToken, ^{ \ + dyfunc = (dyfuncptr)__CFLookupCFNetworkFunction(#N); \ + }); \ + if (dyfunc) { \ + return dyfunc A ; \ + } \ + FAILACTION ; \ + return __VA_ARGS__ ; \ + } #else -#define DEFINE_WEAK_CFNETWORK_FUNC(R, N, P, A, ...) #define DEFINE_WEAK_CFNETWORK_FUNC_FAIL(R, N, P, A, ...) #endif @@ -713,9 +710,10 @@ extern void *__CFLookupCoreServicesInternalFunction(const char *name); static R __CFCoreServicesInternal_ ## N P { \ typedef R (*dyfuncptr)P; \ static dyfuncptr dyfunc = (dyfuncptr)(~(uintptr_t)0); \ - if ((dyfuncptr)(~(uintptr_t)0) == dyfunc) { \ + static dispatch_once_t onceToken; \ + dispatch_once(&onceToken, ^{ \ dyfunc = (dyfuncptr)__CFLookupCoreServicesInternalFunction(#N); \ - } \ + }); \ if (dyfunc) { \ return dyfunc A ; \ } \ @@ -744,7 +742,8 @@ CF_INLINE CFAllocatorRef __CFGetAllocator(CFTypeRef cf) { // !!! Use with CF typ if (__builtin_expect(__CFBitfieldGetValue(((const CFRuntimeBase *)cf)->_cfinfo[CF_INFO_BITS], 7, 7), 1)) { return kCFAllocatorSystemDefault; } - return *(CFAllocatorRef *)((char *)cf - sizeof(CFAllocatorRef)); + // To preserve 16 byte alignment when using custom allocators, we always place the CFAllocatorRef 16 bytes before the CFType + return *(CFAllocatorRef *)((char *)cf - 16); } /* !!! Avoid #importing objc.h; e.g. converting this to a .m file */ @@ -830,11 +829,16 @@ CF_INLINE const char *CFPathRelativeToAppleFrameworksRoot(const char *path, Bool return path; } -#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX) #if __HAS_DISPATCH__ #include +#if __has_include() #include +#else +enum { + DISPATCH_QUEUE_OVERCOMMIT = 0x2ull, +}; +#endif #if DEPLOYMENT_TARGET_LINUX #define QOS_CLASS_USER_INITIATED DISPATCH_QUEUE_PRIORITY_HIGH @@ -843,12 +847,13 @@ CF_INLINE const char *CFPathRelativeToAppleFrameworksRoot(const char *path, Bool #define QOS_CLASS_BACKGROUND DISPATCH_QUEUE_PRIORITY_BACKGROUND CF_INLINE long qos_class_main() { - return QOS_CLASS_USER_INITIATED; + return QOS_CLASS_USER_INITIATED; } CF_INLINE long qos_class_self() { - return QOS_CLASS_DEFAULT; + return QOS_CLASS_DEFAULT; } + #endif // Returns a generic dispatch queue for when you want to just throw some work @@ -874,7 +879,16 @@ CF_INLINE dispatch_queue_t __CFDispatchQueueGetGenericBackground(void) { } #endif -#endif + +CF_PRIVATE CFStringRef _CFStringCopyBundleUnloadingProtectedString(CFStringRef str); + +// Use this for functions that are intended to be breakpoint hooks. If you do not, the compiler may optimize them away. +// Based on: BREAKPOINT_FUNCTION in objc-os.h +// Example: +// CF_BREAKPOINT_FUNCTION( void stop_on_error(void) ); */ +#define CF_BREAKPOINT_FUNCTION(prototype) \ + extern __attribute__((noinline, used, visibility("hidden"))) \ + prototype { asm(""); } CF_EXTERN_C_END diff --git a/CoreFoundation/Base.subproj/CFLogUtilities.h b/CoreFoundation/Base.subproj/CFLogUtilities.h index 2372b03075..2de40edb72 100644 --- a/CoreFoundation/Base.subproj/CFLogUtilities.h +++ b/CoreFoundation/Base.subproj/CFLogUtilities.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFLogUtilities.h - Copyright (c) 2004 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2004-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* @@ -36,7 +31,7 @@ typedef CF_ENUM(int32_t, CFLogLevel) { // Legal level values for CFLog() kCFLogLevelDebug = 7, }; -CF_EXPORT void CFLog(CFLogLevel level, CFStringRef format, ...); +CF_EXPORT void CFLog(CFLogLevel level, CFStringRef format, ...) CF_NO_TAIL_CALL CF_FORMAT_FUNCTION(2, 3); /* Passing in a level value which is outside the range of 0-7 will cause the the call to do nothing. CFLog() logs the message using the asl.h API, and uses the level parameter as the log level. Note that the asl subsystem ignores some log levels by default. diff --git a/CoreFoundation/Base.subproj/CFPlatform.c b/CoreFoundation/Base.subproj/CFPlatform.c index 2f33920138..b59df55dbb 100644 --- a/CoreFoundation/Base.subproj/CFPlatform.c +++ b/CoreFoundation/Base.subproj/CFPlatform.c @@ -1,18 +1,14 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlatform.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ + #include "CFInternal.h" #include #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI @@ -50,7 +46,7 @@ int _CFArgc(void) { return *_NSGetArgc(); } #endif -CF_EXPORT Boolean _CFGetCurrentDirectory(char *path, int maxlen) { +CF_PRIVATE Boolean _CFGetCurrentDirectory(char *path, int maxlen) { return getcwd(path, maxlen) != NULL; } @@ -72,8 +68,8 @@ CF_PRIVATE const wchar_t *_CFDLLPath(void) { CFAssert(ourModule, __kCFLogAssertion, "GetModuleHandle failed"); DWORD wResult = GetModuleFileNameW(ourModule, cachedPath, MAX_PATH+1); - CFAssert(wResult > 0, __kCFLogAssertion, "GetModuleFileName failed: %d", GetLastError()); - CFAssert(wResult < MAX_PATH+1, __kCFLogAssertion, "GetModuleFileName result truncated: %s", cachedPath); + CFAssert1(wResult > 0, __kCFLogAssertion, "GetModuleFileName failed: %d", GetLastError()); + CFAssert1(wResult < MAX_PATH+1, __kCFLogAssertion, "GetModuleFileName result truncated: %s", cachedPath); // strip off last component, the DLL name CFIndex idx; @@ -156,8 +152,6 @@ const char *_CFProcessPath(void) { #endif #if DEPLOYMENT_TARGET_LINUX -#if TARGET_OS_CYGWIN -#else #include #if __has_include() #include @@ -168,7 +162,6 @@ const char *_CFProcessPath(void) { Boolean _CFIsMainThread(void) { return syscall(SYS_gettid) == getpid(); } -#endif const char *_CFProcessPath(void) { if (__CFProcessPath) return __CFProcessPath; @@ -189,7 +182,7 @@ const char *_CFProcessPath(void) { } #endif -CF_EXPORT CFStringRef _CFProcessNameString(void) { +CF_PRIVATE CFStringRef _CFProcessNameString(void) { static CFStringRef __CFProcessNameString = NULL; if (!__CFProcessNameString) { const char *processName = *_CFGetProgname(); @@ -209,7 +202,7 @@ CF_EXPORT CFStringRef _CFProcessNameString(void) { #include // Set the fallBackToHome parameter to true if we should fall back to the HOME environment variable if all else fails. Otherwise return NULL. -static CFURLRef _CFCopyHomeDirURLForUser(struct passwd *upwd, bool fallBackToHome) { +static CFURLRef _CFCopyHomeDirURLForUser(const char *username, bool fallBackToHome) { const char *fixedHomePath = issetugid() ? NULL : __CFgetenv("CFFIXED_USER_HOME"); const char *homePath = NULL; @@ -217,7 +210,19 @@ static CFURLRef _CFCopyHomeDirURLForUser(struct passwd *upwd, bool fallBackToHom // First try CFFIXED_USER_HOME (only if not setugid), then fall back to the upwd, then fall back to HOME environment variable CFURLRef home = NULL; if (!issetugid() && fixedHomePath) home = CFURLCreateFromFileSystemRepresentation(kCFAllocatorSystemDefault, (uint8_t *)fixedHomePath, strlen(fixedHomePath), true); - if (!home && upwd && upwd->pw_dir) home = CFURLCreateFromFileSystemRepresentation(kCFAllocatorSystemDefault, (uint8_t *)upwd->pw_dir, strlen(upwd->pw_dir), true); + if (!home) { + struct passwd *upwd = NULL; + if (username) { + upwd = getpwnam(username); + } else { + uid_t euid; + __CFGetUGIDs(&euid, NULL); + upwd = getpwuid(euid ?: getuid()); + } + if (upwd && upwd->pw_dir) { + home = CFURLCreateFromFileSystemRepresentation(kCFAllocatorSystemDefault, (uint8_t *)upwd->pw_dir, strlen(upwd->pw_dir), true); + } + } if (fallBackToHome && !home) homePath = __CFgetenv("HOME"); if (fallBackToHome && !home && homePath) home = CFURLCreateFromFileSystemRepresentation(kCFAllocatorSystemDefault, (uint8_t *)homePath, strlen(homePath), true); @@ -230,7 +235,7 @@ static CFURLRef _CFCopyHomeDirURLForUser(struct passwd *upwd, bool fallBackToHom #define CFMaxHostNameLength 256 #define CFMaxHostNameSize (CFMaxHostNameLength+1) -CF_EXPORT CFStringRef _CFStringCreateHostName(void) { +CF_PRIVATE CFStringRef _CFStringCreateHostName(void) { char myName[CFMaxHostNameSize]; // return @"" instead of nil a la CFUserName() and Ali Ozer @@ -282,10 +287,7 @@ CF_EXPORT CFStringRef CFCopyUserName(void) { CFURLRef CFCopyHomeDirectoryURL(void) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD - uid_t euid; - __CFGetUGIDs(&euid, NULL); - struct passwd *upwd = getpwuid(euid ? euid : getuid()); - return _CFCopyHomeDirURLForUser(upwd, true); + return _CFCopyHomeDirURLForUser(NULL, true); #elif DEPLOYMENT_TARGET_WINDOWS CFURLRef retVal = NULL; CFIndex len = 0; @@ -343,7 +345,7 @@ CF_EXPORT CFURLRef CFCopyHomeDirectoryURLForUser(CFStringRef uName) { #if TARGET_IPHONE_SIMULATOR if (!uName) { // TODO: Handle other cases here? See SIM: CFCopyHomeDirectoryURLForUser should not call getpwuid static CFURLRef home; - static dispatch_once_t once = 0; + static dispatch_once_t once; dispatch_once(&once, ^{ const char *env = getenv("CFFIXED_USER_HOME"); @@ -366,12 +368,8 @@ CF_EXPORT CFURLRef CFCopyHomeDirectoryURLForUser(CFStringRef uName) { #endif #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD if (!uName) { - uid_t euid; - __CFGetUGIDs(&euid, NULL); - struct passwd *upwd = getpwuid(euid ? euid : getuid()); - return _CFCopyHomeDirURLForUser(upwd, true); + return _CFCopyHomeDirURLForUser(NULL, true); } else { - struct passwd *upwd = NULL; char buf[128], *user; SInt32 len = CFStringGetLength(uName), size = CFStringGetMaximumSizeForEncoding(len, kCFPlatformInterfaceStringEncoding); CFIndex usedSize; @@ -380,14 +378,17 @@ CF_EXPORT CFURLRef CFCopyHomeDirectoryURLForUser(CFStringRef uName) { } else { user = CFAllocatorAllocate(kCFAllocatorSystemDefault, size+1, 0); } + CFURLRef result = NULL; if (CFStringGetBytes(uName, CFRangeMake(0, len), kCFPlatformInterfaceStringEncoding, 0, true, (uint8_t *)user, size, &usedSize) == len) { user[usedSize] = '\0'; - upwd = getpwnam(user); + result = _CFCopyHomeDirURLForUser(user, false); + } else { + result = _CFCopyHomeDirURLForUser(NULL, false); } if (buf != user) { CFAllocatorDeallocate(kCFAllocatorSystemDefault, user); } - return _CFCopyHomeDirURLForUser(upwd, false); + return result; } #elif DEPLOYMENT_TARGET_WINDOWS // This code can only get the directory for the current user @@ -574,17 +575,10 @@ CF_PRIVATE void __CFFinalizeWindowsThreadData() { #endif - -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD static pthread_key_t __CFTSDIndexKey; -#endif CF_PRIVATE void __CFTSDInitialize() { -#if DEPLOYMENT_TARGET_LINUX (void)pthread_key_create(&__CFTSDIndexKey, __CFTSDFinalize); -#else - (void)pthread_key_create(&__CFTSDIndexKey, __CFTSDFinalize); -#endif } static void __CFTSDSetSpecific(void *arg) { @@ -607,43 +601,12 @@ static void *__CFTSDGetSpecific() { #endif } -#if DEPLOYMENT_RUNTIME_SWIFT - -extern void swift_retain(void *); -extern void swift_release(void *); - -static void _CFThreadSpecificDestructor(void *ctx) { - swift_release(ctx); -} - -_CFThreadSpecificKey _CFThreadSpecificKeyCreate() { - _CFThreadSpecificKey key; - pthread_key_create(&key, &_CFThreadSpecificDestructor); - return key; -} - -CFTypeRef _Nullable _CFThreadSpecificGet(_CFThreadSpecificKey key) { - return (CFTypeRef)pthread_getspecific(key); -} - -void _CThreadSpecificSet(_CFThreadSpecificKey key, CFTypeRef _Nullable value) { - if (value != NULL) { - swift_retain((void *)value); - pthread_setspecific(key, value); - } else { - pthread_setspecific(key, NULL); - } -} - -_CFThreadRef _CFThreadCreate(const _CFThreadAttributes attrs, void *_Nullable (* _Nonnull startfn)(void *_Nullable), void *restrict _Nullable context) { - pthread_t thread; - pthread_create(&thread, &attrs, startfn, context); - return thread; -} - -#endif - +CF_PRIVATE Boolean __CFMainThreadHasExited; static void __CFTSDFinalize(void *arg) { + if (pthread_main_np()) { + __CFMainThreadHasExited = true; + } + // Set our TSD so we're called again by pthreads. It will call the destructor PTHREAD_DESTRUCTOR_ITERATIONS times as long as a value is set in the thread specific data. We handle each case below. __CFTSDSetSpecific(arg); @@ -680,17 +643,18 @@ extern int pthread_key_init_np(int, void (*)(void *)); #endif // Get or initialize a thread local storage. It is created on demand. -static __CFTSDTable *__CFTSDGetTable() { +static __CFTSDTable *__CFTSDGetTable(const Boolean create) { __CFTSDTable *table = (__CFTSDTable *)__CFTSDGetSpecific(); // Make sure we're not setting data again after destruction. if (table == CF_TSD_BAD_PTR) { return NULL; } // Create table on demand - if (!table) { + if (!table && create) { // This memory is freed in the finalize function table = (__CFTSDTable *)calloc(1, sizeof(__CFTSDTable)); // Windows and Linux have created the table already, we need to initialize it here for other platforms. On Windows, the cleanup function is called by DllMain when a thread exits. On Linux the destructor is set at init time. + __CFTSDInitialize(); __CFTSDSetSpecific(table); } @@ -699,19 +663,28 @@ static __CFTSDTable *__CFTSDGetTable() { // For the use of CF and Foundation only -CF_EXPORT void *_CFGetTSD(uint32_t slot) { +CF_EXPORT void *_CFGetTSDCreateIfNeeded(const uint32_t slot, const Boolean create) { if (slot > CF_TSD_MAX_SLOTS) { _CFLogSimple(kCFLogLevelError, "Error: TSD slot %d out of range (get)", slot); HALT; } - __CFTSDTable *table = __CFTSDGetTable(); - if (!table) { + void * result = NULL; + __CFTSDTable *table = __CFTSDGetTable(create); + if (table) { + uintptr_t *slots = (uintptr_t *)(table->data); + result = (void *)slots[slot]; + } + else if (create) { // Someone is getting TSD during thread destruction. The table is gone, so we can't get any data anymore. _CFLogSimple(kCFLogLevelWarning, "Warning: TSD slot %d retrieved but the thread data has already been torn down.", slot); return NULL; } - uintptr_t *slots = (uintptr_t *)(table->data); - return (void *)slots[slot]; + return result; +} + +// For the use of CF and Foundation only +CF_EXPORT void *_CFGetTSD(uint32_t slot) { + return _CFGetTSDCreateIfNeeded(slot, true); } // For the use of CF and Foundation only @@ -720,7 +693,7 @@ CF_EXPORT void *_CFSetTSD(uint32_t slot, void *newVal, tsdDestructor destructor) _CFLogSimple(kCFLogLevelError, "Error: TSD slot %d out of range (set)", slot); HALT; } - __CFTSDTable *table = __CFTSDGetTable(); + __CFTSDTable *table = __CFTSDGetTable(true); if (!table) { // Someone is setting TSD during thread destruction. The table is gone, so we can't get any data anymore. _CFLogSimple(kCFLogLevelWarning, "Warning: TSD slot %d set but the thread data has already been torn down.", slot); @@ -1303,21 +1276,40 @@ CF_PRIVATE int asprintf(char **ret, const char *format, ...) { #endif #if DEPLOYMENT_RUNTIME_SWIFT -#include -CF_EXPORT int32_t _CF_SOCK_STREAM() { return SOCK_STREAM; } -#endif +#import -#if DEPLOYMENT_RUNTIME_SWIFT -#include -int _CFOpenFileWithMode(const char *path, int opts, mode_t mode) { - return open(path, opts, mode); +extern void swift_retain(void *); +extern void swift_release(void *); + +static void _CFThreadSpecificDestructor(void *ctx) { + swift_release(ctx); } -int _CFOpenFile(const char *path, int opts) { - return open(path, opts); + +_CFThreadSpecificKey _CFThreadSpecificKeyCreate() { + _CFThreadSpecificKey key; + pthread_key_create(&key, &_CFThreadSpecificDestructor); + return key; +} + +CFTypeRef _Nullable _CFThreadSpecificGet(_CFThreadSpecificKey key) { + return (CFTypeRef)pthread_getspecific(key); +} + +void _CThreadSpecificSet(_CFThreadSpecificKey key, CFTypeRef _Nullable value) { + if (value != NULL) { + swift_retain((void *)value); + pthread_setspecific(key, value); + } else { + pthread_setspecific(key, NULL); + } +} + +_CFThreadRef _CFThreadCreate(const _CFThreadAttributes attrs, void *_Nullable (* _Nonnull startfn)(void *_Nullable), void *restrict _Nullable context) { + pthread_t thread; + pthread_create(&thread, &attrs, startfn, context); + return thread; } -#endif -#if DEPLOYMENT_RUNTIME_SWIFT CF_EXPORT char **_CFEnviron(void) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED return *_NSGetEnviron(); @@ -1328,7 +1320,12 @@ CF_EXPORT char **_CFEnviron(void) { #endif } -#endif +int _CFOpenFileWithMode(const char *path, int opts, mode_t mode) { + return open(path, opts, mode); +} +int _CFOpenFile(const char *path, int opts) { + return open(path, opts); +} void *_CFReallocf(void *ptr, size_t size) { #if DEPLOYMENT_TARGET_WINDOWS | DEPLOYMENT_TARGET_LINUX @@ -1341,3 +1338,6 @@ void *_CFReallocf(void *ptr, size_t size) { return reallocf(ptr, size); #endif } + +#endif + diff --git a/CoreFoundation/Base.subproj/CFPriv.h b/CoreFoundation/Base.subproj/CFPriv.h index 5e53af8376..3b5568f6c6 100644 --- a/CoreFoundation/Base.subproj/CFPriv.h +++ b/CoreFoundation/Base.subproj/CFPriv.h @@ -1,19 +1,16 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPriv.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* - APPLE SPI: NOT TO BE USED OUTSIDE APPLE! + APPLE SPI: NOT TO BE USED OUTSIDE APPLE!* + + *or swift-corelibs-foundation */ #if !defined(__COREFOUNDATION_CFPRIV__) @@ -36,11 +33,9 @@ #include #endif -#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) || TARGET_OS_WIN32 || TARGET_OS_LINUX #include #include #include -#endif CF_EXTERN_C_BEGIN @@ -600,8 +595,6 @@ CF_EXPORT bool _CFPropertyListCreateSingleValue(CFAllocatorRef allocator, CFData // Returns a subset of the property list, only including the keyPaths in the CFSet. If the top level object is not a dictionary, you will get back an empty dictionary as the result. CF_EXPORT bool _CFPropertyListCreateFiltered(CFAllocatorRef allocator, CFDataRef data, CFOptionFlags option, CFSetRef keyPaths, CFPropertyListRef *value, CFErrorRef *error) CF_AVAILABLE(10_8, 6_0); -#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) || TARGET_OS_WIN32 || TARGET_OS_LINUX - // Returns a subset of a bundle's Info.plist. The keyPaths follow the same rules as above CFPropertyList function. This function takes platform and product keys into account. typedef CF_OPTIONS(CFOptionFlags, _CFBundleFilteredPlistOptions) { _CFBundleFilteredPlistMemoryMapped = 1 @@ -609,7 +602,6 @@ typedef CF_OPTIONS(CFOptionFlags, _CFBundleFilteredPlistOptions) { CF_EXPORT CFPropertyListRef _CFBundleCreateFilteredInfoPlist(CFBundleRef bundle, CFSetRef keyPaths, _CFBundleFilteredPlistOptions options) CF_AVAILABLE(10_8, 6_0); CF_EXPORT CFPropertyListRef _CFBundleCreateFilteredLocalizedInfoPlist(CFBundleRef bundle, CFSetRef keyPaths, CFStringRef localizationName, _CFBundleFilteredPlistOptions options) CF_AVAILABLE(10_8, 6_0); -#endif #if TARGET_OS_WIN32 #include @@ -646,7 +638,10 @@ CF_EXPORT const CFStringRef kCFNumberFormatterUsesCharacterDirection CF_AVAILABL CF_EXPORT const CFStringRef kCFDateFormatterUsesCharacterDirection CF_AVAILABLE(10_9, 6_0); // CFBoolean +CF_EXPORT void _CFGetPathExtensionRangesFromPathComponentUniChars(const UniChar *uchars, CFIndex ucharsLength, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) CF_AVAILABLE(10_11, 9_0); +CF_EXPORT Boolean _CFExtensionUniCharsIsValidToAppend(const UniChar *uchars, CFIndex ucharsLength) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); +CF_EXPORT Boolean _CFExtensionIsValidToAppend(CFStringRef extension) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); CF_EXTERN_C_END diff --git a/CoreFoundation/Base.subproj/CFRuntime.c b/CoreFoundation/Base.subproj/CFRuntime.c index d3d3b35ea8..5b3a091130 100644 --- a/CoreFoundation/Base.subproj/CFRuntime.c +++ b/CoreFoundation/Base.subproj/CFRuntime.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFRuntime.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -17,12 +12,13 @@ #include #include "CFInternal.h" -#include +#include "CFBasicHash.h" #include #include #include #include #include +#include #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI #include #include @@ -35,7 +31,6 @@ #include #include #include -#include #if DEPLOYMENT_TARGET_EMBEDDED // This isn't in the embedded runtime.h header OBJC_EXPORT void *objc_destructInstance(id obj); @@ -191,6 +186,13 @@ static const CFRuntimeClass __CFTypeClass = { }; #endif //__cplusplus +#if !__OBJC2__ +// __attribute__((__cleanup__())) fails to link on 32 bit Mac +CF_PRIVATE void objc_terminate(void) { + abort(); +} +#endif + // the lock does not protect most reading of these; we just leak the old table to allow read-only accesses to continue to work static CFLock_t __CFBigRuntimeFunnel = CFLockInit; CF_PRIVATE CFRuntimeClass * __CFRuntimeClassTable[__CFRuntimeClassTableSize] = {0}; @@ -212,6 +214,7 @@ bool (*__CFObjCIsCollectable)(void *) = NULL; #if DEPLOYMENT_RUNTIME_SWIFT // The constant string class reference is set at link time to _NSCFConstantString +void *__CFConstantStringClassReferencePtr = &__CFConstantStringClassReference; #else #if !__CONSTANT_CFSTRINGS__ || DEPLOYMENT_TARGET_EMBEDDED_MINI // Compiler uses this symbol name; must match compiler built-in decl, so we use 'int' @@ -227,9 +230,9 @@ int __CFConstantStringClassReference[24] = {0}; #else int __CFConstantStringClassReference[12] = {0}; #endif -#endif -void *__CFConstantStringClassReferencePtr = &__CFConstantStringClassReference; +void *__CFConstantStringClassReferencePtr = NULL; +#endif Boolean _CFIsObjC(CFTypeID typeID, void *obj) { return CF_IS_OBJC(typeID, obj); @@ -287,17 +290,6 @@ void _CFEnableZombies(void) { #endif /* DEBUG */ -// XXX_PCB: use the class version field as a bitmask, to allow classes to opt-in for GC scanning. - -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED -CF_INLINE CFOptionFlags CF_GET_COLLECTABLE_MEMORY_TYPE(const CFRuntimeClass *cls) -{ - return ((cls->version & _kCFRuntimeScannedObject) ? __kCFAllocatorGCScannedMemory : 0) | __kCFAllocatorGCObjectMemory; -} -#else -#define CF_GET_COLLECTABLE_MEMORY_TYPE(x) (0) -#endif - CF_INLINE CFRuntimeBase *_cf_aligned_malloc(size_t align, CFIndex size, const char *className) { CFRuntimeBase *memory; @@ -314,12 +306,12 @@ CF_INLINE CFRuntimeBase *_cf_aligned_malloc(size_t align, CFIndex size, const ch errorStringPointer = #endif strerror_r(errno, errorStringBuffer, errorStringBufferLength); - CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %u-byte alignment, but memory could not be so allocated: %s"), className, align, errorStringPointer); + CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %zu-byte alignment, but memory could not be so allocated: %s"), className, align, errorStringPointer); #elif DEPLOYMENT_TARGET_WINDOWS - CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %u-byte alignment, but aligned memory is not supported on this platform"), className); + CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %zu-byte alignment, but aligned memory is not supported on this platform"), className, align); memory = (CFRuntimeBase *)malloc(size); #else - CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %u-byte alignment, but aligned memory is not supported on this platform"), className); + CFLog(kCFLogLevelWarning, CFSTR("*** _CFRuntimeCreateInstance() tried to allocate an instance of '%s', which requires %zu-byte alignment, but aligned memory is not supported on this platform"), className, align); memory = NULL; #endif @@ -335,21 +327,21 @@ CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CF CFIndex size = sizeof(CFRuntimeBase) + extraBytes; CFRuntimeClass *cls = __CFRuntimeClassTable[typeID]; size_t align = (cls->version & _kCFRuntimeRequiresAlignment) ? cls->requiredAlignment : 16; - + CFRuntimeBase *memory = (CFRuntimeBase *)swift_allocObject(isa, size, align - 1); - + // Zero the rest of the memory, starting at cfinfo memset(&memory->_cfinfo, 0, size - (sizeof(memory->_cfisa) + sizeof(memory->_swift_strong_rc) + sizeof(memory->_swift_weak_rc))); - + // Set up the cfinfo struct uint32_t *cfinfop = (uint32_t *)&(memory->_cfinfo); // The 0x80 means we use the default allocator *cfinfop = (uint32_t)(((uint32_t)typeID << 8) | (0x80)); - + return memory; #else if (__CFRuntimeClassTableSize <= typeID) HALT; - CFAssert(typeID != _kCFRuntimeNotATypeID, __kCFLogAssertion, "%s(): Uninitialized type id", __PRETTY_FUNCTION__); + CFAssert1(typeID != _kCFRuntimeNotATypeID, __kCFLogAssertion, "%s(): Uninitialized type id", __PRETTY_FUNCTION__); CFRuntimeClass *cls = __CFRuntimeClassTable[typeID]; if (NULL == cls) { return NULL; @@ -368,7 +360,8 @@ CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CF } Boolean usesSystemDefaultAllocator = _CFAllocatorIsSystemDefault(realAllocator); size_t align = (cls->version & _kCFRuntimeRequiresAlignment) ? cls->requiredAlignment : 16; - CFIndex size = sizeof(CFRuntimeBase) + extraBytes + (usesSystemDefaultAllocator ? 0 : sizeof(CFAllocatorRef)); + // To preserve 16 byte alignment when using custom allocators, we always place the CFAllocatorRef 16 bytes before the CFType. n.b. we assume sizeof(CFAllocatorRef) < 16 + CFIndex size = sizeof(CFRuntimeBase) + extraBytes + (usesSystemDefaultAllocator ? 0 : 16); size = (size + 0xF) & ~0xF; // CF objects are multiples of 16 in size // CFType version 0 objects are unscanned by default since they don't have write-barriers and hard retain their innards // CFType version 1 objects are scanned and use hand coded write-barriers to store collectable storage within @@ -376,14 +369,12 @@ CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CF if (cls->version & _kCFRuntimeRequiresAlignment) { memory = _cf_aligned_malloc(align, size, cls->className); } else { - memory = (CFRuntimeBase *)CFAllocatorAllocate(allocator, size, CF_GET_COLLECTABLE_MEMORY_TYPE(cls)); + memory = (CFRuntimeBase *)CFAllocatorAllocate(allocator, size, 0); } if (NULL == memory) { return NULL; } - if (!kCFUseCollectableAllocator || !CF_IS_COLLECTABLE_ALLOCATOR(allocator) || !(CF_GET_COLLECTABLE_MEMORY_TYPE(cls) & __kCFAllocatorGCScannedMemory)) { - memset(memory, 0, size); - } + memset(memory, 0, size); if (__CFOASafe && category) { __CFSetLastAllocationEventName(memory, (char *)category); } else if (__CFOASafe) { @@ -391,30 +382,25 @@ CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CF } if (!usesSystemDefaultAllocator) { // add space to hold allocator ref for non-standard allocators. - // (this screws up 8 byte alignment but seems to work) - *(CFAllocatorRef *)((char *)memory) = (CFAllocatorRef)CFRetain(realAllocator); - memory = (CFRuntimeBase *)((char *)memory + sizeof(CFAllocatorRef)); + // This means the allocator is 16 bytes before the result. See the line where we added 16 bytes above, when !usesSystemDefaultAllocator + *(CFAllocatorRef *)((char *)memory) = (CFAllocatorRef)CFRetain(realAllocator); + memory = (CFRuntimeBase *)((char *)memory + 16); } uint32_t rc = 0; #if __LP64__ - if (!kCFUseCollectableAllocator || (1 && 1)) { - memory->_rc = 1; - } + memory->_rc = 1; if (customRC) { memory->_rc = 0xFFFFFFFFU; rc = 0xFF; } #else - if (!kCFUseCollectableAllocator || (1 && 1)) { - rc = 1; - } + rc = 1; if (customRC) { rc = 0xFF; } #endif uint32_t *cfinfop = (uint32_t *)&(memory->_cfinfo); *cfinfop = (uint32_t)((rc << 24) | (customRC ? 0x800000 : 0x0) | ((uint32_t)typeID << 8) | (usesSystemDefaultAllocator ? 0x80 : 0x00)); - memory->_cfisa = __CFISAForTypeID(typeID); if (NULL != cls->init) { (cls->init)(memory); @@ -426,7 +412,7 @@ CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CF #if DEPLOYMENT_RUNTIME_SWIFT #else void _CFRuntimeInitStaticInstance(void *ptr, CFTypeID typeID) { - CFAssert(typeID != _kCFRuntimeNotATypeID, __kCFLogAssertion, "%s(): Uninitialized type id", __PRETTY_FUNCTION__); + CFAssert1(typeID != _kCFRuntimeNotATypeID, __kCFLogAssertion, "%s(): Uninitialized type id", __PRETTY_FUNCTION__); if (__CFRuntimeClassTableSize <= typeID) HALT; CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID]; Boolean customRC = !!(cfClass->version & _kCFRuntimeCustomRefCount); @@ -474,7 +460,6 @@ CF_PRIVATE void _CFRuntimeSetInstanceTypeIDAndIsa(CFTypeRef cf, CFTypeID newType ((CFSwiftRef)cf)->isa = (uintptr_t)__CFISAForTypeID(newTypeID); } #endif - } @@ -486,11 +471,9 @@ enum { #if DEPLOYMENT_TARGET_MACOSX #define NUM_EXTERN_TABLES 8 #define EXTERN_TABLE_IDX(O) (((uintptr_t)(O) >> 8) & 0x7) -#elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD +#else #define NUM_EXTERN_TABLES 1 #define EXTERN_TABLE_IDX(O) 0 -#else -#error #endif // we disguise pointers so that programs like 'leaks' forget about these references @@ -555,30 +538,41 @@ CF_PRIVATE void __CFGenericValidateType_(CFTypeRef cf, CFTypeID type, const char if (cf && CF_IS_SWIFT(type, (CFSwiftRef)cf)) return; #endif if (cf && CF_IS_OBJC(type, cf)) return; - CFAssert((cf != NULL) && (NULL != __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]) && (__kCFNotATypeTypeID != __CFGenericTypeID_inline(cf)) && (__kCFTypeTypeID != __CFGenericTypeID_inline(cf)), __kCFLogAssertion, "%s(): pointer %p is not a CF object", func, cf); \ - CFAssert(__CFGenericTypeID_inline(cf) == type, __kCFLogAssertion, "%s(): pointer %p is not a %s", func, cf, __CFRuntimeClassTable[type]->className); \ + CFAssert2((cf != NULL) && (NULL != __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]) && (__kCFNotATypeTypeID != __CFGenericTypeID_inline(cf)) && (__kCFTypeTypeID != __CFGenericTypeID_inline(cf)), __kCFLogAssertion, "%s(): pointer %p is not a CF object", func, cf); \ + CFAssert3(__CFGenericTypeID_inline(cf) == type, __kCFLogAssertion, "%s(): pointer %p is not a %s", func, cf, __CFRuntimeClassTable[type]->className); \ } #define __CFGenericAssertIsCF(cf) \ - CFAssert(cf != NULL && (NULL != __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]) && (__kCFNotATypeTypeID != __CFGenericTypeID_inline(cf)) && (__kCFTypeTypeID != __CFGenericTypeID_inline(cf)), __kCFLogAssertion, "%s(): pointer %p is not a CF object", __PRETTY_FUNCTION__, cf); + CFAssert2(cf != NULL && (NULL != __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]) && (__kCFNotATypeTypeID != __CFGenericTypeID_inline(cf)) && (__kCFTypeTypeID != __CFGenericTypeID_inline(cf)), __kCFLogAssertion, "%s(): pointer %p is not a CF object", __PRETTY_FUNCTION__, cf); - -#define CFTYPE_IS_OBJC(obj) (false) -#define CFTYPE_OBJC_FUNCDISPATCH0(rettype, obj, sel) do {} while (0) -#define CFTYPE_OBJC_FUNCDISPATCH1(rettype, obj, sel, a1) do {} while (0) +#if DEPLOYMENT_RUNTIME_SWIFT CF_INLINE Boolean CFTYPE_IS_SWIFT(const void *obj) { CFTypeID typeID = __CFGenericTypeID_inline(obj); return CF_IS_SWIFT(typeID, obj); } + #define CFTYPE_SWIFT_FUNCDISPATCH0(rettype, obj, fn) \ if (CFTYPE_IS_SWIFT(obj)) return (rettype)__CFSwiftBridge.fn((CFSwiftRef)obj); + #define CFTYPE_SWIFT_FUNCDISPATCH1(rettype, obj, fn, a1) \ if (CFTYPE_IS_SWIFT(obj)) return (rettype)__CFSwiftBridge.fn((CFSwiftRef)obj, a1); +#else + +#define CFTYPE_IS_SWIFT(obj) (0) +#define CFTYPE_SWIFT_FUNCDISPATCH0(rettype, obj, fn) do {} while(0) +#define CFTYPE_SWIFT_FUNCDISPATCH1(rettype, obj, fn, a1) do {} while (0) + +#endif + + +#define CFTYPE_IS_OBJC(obj) (false) +#define CFTYPE_OBJC_FUNCDISPATCH0(rettype, obj, sel) do {} while (0) +#define CFTYPE_OBJC_FUNCDISPATCH1(rettype, obj, sel, a1) do {} while (0) + CFTypeID CFGetTypeID(CFTypeRef cf) { - #if defined(DEBUG) if (NULL == cf) { CRSetCrashLogMessage("*** CFGetTypeID() called with NULL ***"); HALT; } #endif @@ -590,7 +584,7 @@ CFTypeID CFGetTypeID(CFTypeRef cf) { } CFStringRef CFCopyTypeIDDescription(CFTypeID type) { - CFAssert((NULL != __CFRuntimeClassTable[type]) && __kCFNotATypeTypeID != type && __kCFTypeTypeID != type, __kCFLogAssertion, "%s(): type %d is not a CF type ID", __PRETTY_FUNCTION__, type); + CFAssert2((NULL != __CFRuntimeClassTable[type]) && __kCFNotATypeTypeID != type && __kCFTypeTypeID != type, __kCFLogAssertion, "%s(): type %lu is not a CF type ID", __PRETTY_FUNCTION__, type); return CFStringCreateWithCString(kCFAllocatorSystemDefault, __CFRuntimeClassTable[type]->className, kCFStringEncodingASCII); } @@ -598,6 +592,11 @@ CFStringRef CFCopyTypeIDDescription(CFTypeID type) { static CFTypeRef _CFRetain(CFTypeRef cf, Boolean tryR); +CFTypeRef _CFNonObjCRetain(CFTypeRef cf) { + __CFGenericAssertIsCF(cf); + return _CFRetain(cf, false); +} + CFTypeRef CFRetain(CFTypeRef cf) { if (NULL == cf) { CRSetCrashLogMessage("*** CFRetain() called with NULL ***"); HALT; } if (cf) __CFGenericAssertIsCF(cf); @@ -611,6 +610,11 @@ CFTypeRef CFAutorelease(CFTypeRef __attribute__((cf_consumed)) cf) { static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf); +void _CFNonObjCRelease(CFTypeRef cf) { + __CFGenericAssertIsCF(cf); + _CFRelease(cf); +} + void CFRelease(CFTypeRef cf) { if (NULL == cf) { CRSetCrashLogMessage("*** CFRelease() called with NULL ***"); HALT; } #if 0 @@ -635,88 +639,22 @@ CF_PRIVATE const void *__CFStringCollectionCopy(CFAllocatorRef allocator, const if (NULL == ptr) { CRSetCrashLogMessage("*** __CFStringCollectionCopy() called with NULL ***"); HALT; } CFStringRef theString = (CFStringRef)ptr; CFStringRef result = CFStringCreateCopy((allocator), theString); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - result = (CFStringRef)CFMakeCollectable(result); - } return (const void *)result; } extern void CFCollection_non_gc_storage_error(void); CF_PRIVATE const void *__CFTypeCollectionRetain(CFAllocatorRef allocator, const void *ptr) { -#if DEPLOYMENT_RUNTIME_SWIFT - return CFRetain((CFTypeRef)ptr); -#else if (NULL == ptr) { CRSetCrashLogMessage("*** __CFTypeCollectionRetain() called with NULL; likely a collection has been corrupted ***"); HALT; } CFTypeRef cf = (CFTypeRef)ptr; - // only collections allocated in the GC zone can opt-out of reference counting. - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (CFTYPE_IS_OBJC(cf)) return cf; // do nothing for OBJC objects. - if (auto_zone_is_valid_pointer(objc_collectableZone(), ptr)) { - CFRuntimeClass *cfClass = __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]; - if (cfClass->version & _kCFRuntimeResourcefulObject) { - // GC: If this a CF object in the GC heap that is marked resourceful, then - // it must be retained keep it alive in a CF collection. - CFRetain(cf); - } - else - ; // don't retain normal CF objects - return cf; - } else { - // support constant CFTypeRef objects. -#if __LP64__ - uint32_t lowBits = ((CFRuntimeBase *)cf)->_rc; -#else - uint32_t lowBits = ((CFRuntimeBase *)cf)->_cfinfo[CF_RC_BITS]; -#endif - if (lowBits == 0) return cf; - // complain about non-GC objects in GC containers. - CFLog(kCFLogLevelWarning, CFSTR("storing a non-GC object %p in a GC collection, break on CFCollection_non_gc_storage_error to debug."), cf); - CFCollection_non_gc_storage_error(); - // XXX should halt, except Patrick is using this somewhere. - // HALT; - } - } return CFRetain(cf); -#endif } CF_PRIVATE void __CFTypeCollectionRelease(CFAllocatorRef allocator, const void *ptr) { -#if DEPLOYMENT_RUNTIME_SWIFT - CFRelease((CFTypeRef)ptr); -#else if (NULL == ptr) { CRSetCrashLogMessage("*** __CFTypeCollectionRelease() called with NULL; likely a collection has been corrupted ***"); HALT; } CFTypeRef cf = (CFTypeRef)ptr; - // only collections allocated in the GC zone can opt-out of reference counting. - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (CFTYPE_IS_OBJC(cf)) return; // do nothing for OBJC objects. - if (auto_zone_is_valid_pointer(objc_collectableZone(), cf)) { -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED - // GC: If this a CF object in the GC heap that is marked uncollectable, then - // must balance the retain done in __CFTypeCollectionRetain(). - CFRuntimeClass *cfClass = __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]; - if (cfClass->version & _kCFRuntimeResourcefulObject) { - // reclaim is called by _CFRelease(), which must be called to keep the - // CF and GC retain counts in sync. - CFRelease(cf); - } else { - // avoid releasing normal CF objects. Like other collections, for example - } - return; -#endif - } else { - // support constant CFTypeRef objects. -#if __LP64__ - uint32_t lowBits = ((CFRuntimeBase *)cf)->_rc; -#else - uint32_t lowBits = ((CFRuntimeBase *)cf)->_cfinfo[CF_RC_BITS]; -#endif - if (lowBits == 0) return; - } - } CFRelease(cf); -#endif } #if !__LP64__ @@ -775,19 +713,30 @@ CFIndex CFGetRetainCount(CFTypeRef cf) { } #endif +// Even though we no longer support GC, leave implementations of these functions in for compatibility. CFTypeRef CFMakeCollectable(CFTypeRef cf) { - if (NULL == cf) return NULL; return cf; } CFTypeRef CFMakeUncollectable(CFTypeRef cf) { - if (NULL == cf) return NULL; - if (CF_IS_COLLECTABLE(cf)) { - CFRetain(cf); - } return cf; } +Boolean _CFNonObjCEqual(CFTypeRef cf1, CFTypeRef cf2) { + //cf1 is guaranteed to be non-NULL and non-ObjC, cf2 is unknown + if (cf1 == cf2) return true; + if (NULL == cf2) { CRSetCrashLogMessage("*** CFEqual() called with NULL second argument ***"); HALT; } + CFTYPE_OBJC_FUNCDISPATCH1(Boolean, cf2, isEqual:, cf1); + CFTYPE_SWIFT_FUNCDISPATCH1(Boolean, cf2, NSObject.isEqual, (CFSwiftRef)cf1); + __CFGenericAssertIsCF(cf1); + __CFGenericAssertIsCF(cf2); + if (__CFGenericTypeID_inline(cf1) != __CFGenericTypeID_inline(cf2)) return false; + if (NULL != __CFRuntimeClassTable[__CFGenericTypeID_inline(cf1)]->equal) { + return __CFRuntimeClassTable[__CFGenericTypeID_inline(cf1)]->equal(cf1, cf2); + } + return false; +} + Boolean CFEqual(CFTypeRef cf1, CFTypeRef cf2) { if (NULL == cf1) { CRSetCrashLogMessage("*** CFEqual() called with NULL first argument ***"); HALT; } if (NULL == cf2) { CRSetCrashLogMessage("*** CFEqual() called with NULL second argument ***"); HALT; } @@ -805,6 +754,15 @@ Boolean CFEqual(CFTypeRef cf1, CFTypeRef cf2) { return false; } +CFHashCode _CFNonObjCHash(CFTypeRef cf) { + __CFGenericAssertIsCF(cf); + CFHashCode (*hash)(CFTypeRef cf) = __CFRuntimeClassTable[__CFGenericTypeID_inline(cf)]->hash; + if (NULL != hash) { + return hash(cf); + } + return (CFHashCode)cf; +} + CFHashCode CFHash(CFTypeRef cf) { if (NULL == cf) { CRSetCrashLogMessage("*** CFHash() called with NULL ***"); HALT; } CFTYPE_OBJC_FUNCDISPATCH0(CFHashCode, cf, hash); @@ -814,7 +772,6 @@ CFHashCode CFHash(CFTypeRef cf) { if (NULL != hash) { return hash(cf); } - if (CF_IS_COLLECTABLE(cf)) return (CFHashCode)_object_getExternalHash((id)cf); return (CFHashCode)cf; } @@ -859,10 +816,11 @@ extern CFTypeID CFStringTokenizerGetTypeID(); extern CFTypeID CFStorageGetTypeID(void); extern void __CFAllocatorInitialize(void); extern void __CFStringInitialize(void); +extern void __CFNumberInitialize(void); extern void __CFCharacterSetInitialize(void); extern void __CFPFactoryInitialize(void); extern void __CFPlugInInitialize(void); -#if DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_MACOSX +#if (DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_MACOSX) && DEPLOYMENT_RUNTIME_SWIFT CF_PRIVATE void __CFTSDInitialize(); #endif #if DEPLOYMENT_TARGET_WINDOWS @@ -975,6 +933,7 @@ CF_PRIVATE Boolean __CFProcessIsRestricted() { #endif +// Even though we no longer support GC, we leave this exported symbol to avoid lockstep dependencies. #undef kCFUseCollectableAllocator CF_EXPORT bool kCFUseCollectableAllocator; bool kCFUseCollectableAllocator = false; @@ -996,6 +955,15 @@ pthread_t _CF_pthread_main_thread_np(void) { #endif +#if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) +typedef bool (*_os_log_NSCF_callback)(const void *obj, char *string_value, size_t string_sz, bool *publicData); +extern void _os_log_set_nscf_formatter(_os_log_NSCF_callback function); +bool os_log_callback(const void *obj, char *string_value, size_t string_sz, bool *publicData) { + return false; +} +#endif + + #if DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD static void __CFInitialize(void) __attribute__ ((constructor)); static @@ -1016,24 +984,15 @@ void __CFInitialize(void) { #if DEPLOYMENT_TARGET_WINDOWS // Must not call any CF functions __CFTSDWindowsInitialize(); -#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_MACOSX +#elif (DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_MACOSX) && DEPLOYMENT_RUNTIME_SWIFT __CFTSDInitialize(); #endif - __CFProphylacticAutofsAccess = true; for (CFIndex idx = 0; idx < sizeof(__CFEnv) / sizeof(__CFEnv[0]); idx++) { __CFEnv[idx].value = __CFEnv[idx].name ? getenv(__CFEnv[idx].name) : NULL; } -#if !defined(kCFUseCollectableAllocator) - kCFUseCollectableAllocator = objc_collectingEnabled(); -#endif - if (kCFUseCollectableAllocator) { -#if !defined(__CFObjCIsCollectable) - __CFObjCIsCollectable = (bool (*)(void *))objc_isAuto; -#endif - } #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI UInt32 s, r; __CFStringGetUserDefaultEncoding(&s, &r); // force the potential setenv to occur early @@ -1044,23 +1003,23 @@ void __CFInitialize(void) { memset(__CFRuntimeClassTable, 0, sizeof(__CFRuntimeClassTable)); memset(__CFRuntimeObjCClassTable, 0, sizeof(__CFRuntimeObjCClassTable)); - #if DEPLOYMENT_RUNTIME_SWIFT - - #ifndef __CFSwiftGetBaseClass - #if TARGET_OS_LINUX - #define __CFSwiftGetBaseClass _TF10Foundation21__CFSwiftGetBaseClassFT_PMPs9AnyObject_ - #elif TARGET_OS_MAC - #define __CFSwiftGetBaseClass _TF15SwiftFoundation21__CFSwiftGetBaseClassFT_PMPs9AnyObject_ - #endif - #endif - extern uintptr_t __CFSwiftGetBaseClass(); - + +#ifndef __CFSwiftGetBaseClass +#if TARGET_OS_LINUX +#define __CFSwiftGetBaseClass _TF10Foundation21__CFSwiftGetBaseClassFT_PMPs9AnyObject_ +#elif TARGET_OS_MAC +#define __CFSwiftGetBaseClass _TF15SwiftFoundation21__CFSwiftGetBaseClassFT_PMPs9AnyObject_ +#endif +#endif + extern uintptr_t __CFSwiftGetBaseClass(); + uintptr_t NSCFType = __CFSwiftGetBaseClass(); for (CFIndex idx = 1; idx < __CFRuntimeClassTableSize; idx++) { __CFRuntimeObjCClassTable[idx] = NSCFType; } #endif + /* Here so that two runtime classes get indices 0, 1. */ __kCFNotATypeTypeID = _CFRuntimeRegisterClass(&__CFNotATypeClass); @@ -1135,21 +1094,16 @@ void __CFInitialize(void) { #if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI) && !DEPLOYMENT_RUNTIME_SWIFT CFMachPortGetTypeID(); #endif -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX __CFStreamInitialize(); -#endif #if DEPLOYMENT_TARGET_WINDOWS CFWindowsNamedPipeGetTypeID(); #endif CFDateGetTypeID(); - -#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS) && !DEPLOYMENT_RUNTIME_SWIFT CFRunLoopGetTypeID(); CFRunLoopObserverGetTypeID(); CFRunLoopSourceGetTypeID(); CFRunLoopTimerGetTypeID(); -#endif #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX CFTimeZoneGetTypeID(); CFCalendarGetTypeID(); @@ -1158,19 +1112,21 @@ void __CFInitialize(void) { CFCalendarGetTypeID(); #endif #endif + #if DEPLOYMENT_RUNTIME_SWIFT - _CFKeyedArchiverUIDGetTypeID(); - #ifndef __CFInitializeSwift - #if TARGET_OS_LINUX - #define __CFInitializeSwift _TF10Foundation19__CFInitializeSwiftFT_T_ - #elif TARGET_OS_MAC - #define __CFInitializeSwift _TF15SwiftFoundation19__CFInitializeSwiftFT_T_ - #endif - #endif +#ifndef __CFInitializeSwift +#if TARGET_OS_LINUX +#define __CFInitializeSwift _TF10Foundation19__CFInitializeSwiftFT_T_ +#elif TARGET_OS_MAC +#define __CFInitializeSwift _TF15SwiftFoundation19__CFInitializeSwiftFT_T_ +#endif +#endif extern void __CFInitializeSwift(); __CFInitializeSwift(); -#endif __CFNumberInitialize(); /* needs to happen after Swift bridge is initialized */ +#endif + + { CFIndex idx, cnt = 0; char **args = NULL; @@ -1226,17 +1182,20 @@ void __CFInitialize(void) { #endif #if defined(DEBUG) && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) - // CFLog(kCFLogLevelWarning, CFSTR("Assertions enabled")); + CFLog(kCFLogLevelWarning, CFSTR("Assertions enabled")); #endif __CFProphylacticAutofsAccess = false; + +#if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) + _os_log_set_nscf_formatter(&os_log_callback); +#endif __CFInitializing = 0; __CFInitialized = 1; } } - #if DEPLOYMENT_TARGET_WINDOWS CF_PRIVATE void __CFStringCleanup(void); @@ -1259,8 +1218,8 @@ static CFBundleRef RegisterCoreFoundationBundle(void) { CFAssert(ourModule, __kCFLogAssertion, "GetModuleHandle failed"); wResult = GetModuleFileNameW(ourModule, path, MAX_PATH+1); - CFAssert(wResult > 0, __kCFLogAssertion, "GetModuleFileName failed: %d", GetLastError()); - CFAssert(wResult < MAX_PATH+1, __kCFLogAssertion, "GetModuleFileName result truncated: %s", path); + CFAssert1(wResult > 0, __kCFLogAssertion, "GetModuleFileName failed: %d", GetLastError()); + CFAssert1(wResult < MAX_PATH+1, __kCFLogAssertion, "GetModuleFileName result truncated: %s", path); // strip off last component, the DLL name for (idx = wResult - 1; idx; idx--) { @@ -1337,7 +1296,6 @@ static bool (*CAS32)(int32_t, int32_t, volatile int32_t *) = OSAtomicCompareAndS #if DEPLOYMENT_RUNTIME_SWIFT extern void swift_retain(void *); -extern void swift_release(void *); #endif // For "tryR==true", a return of NULL means "failed". @@ -1365,7 +1323,6 @@ static CFTypeRef _CFRetain(CFTypeRef cf, Boolean tryR) { return cf; } - Boolean didAuto = false; #if __LP64__ #if !DEPLOYMENT_TARGET_WINDOWS uint64_t allBits; @@ -1373,30 +1330,20 @@ static CFTypeRef _CFRetain(CFTypeRef cf, Boolean tryR) { // It's important to load a 64-bit value from cfinfo when running in 64 bit - if we use the 'cfinfo' from above then it's possible we did not atomically fetch the deallocating/deallocated flag and the retain count together (19256102). Therefore it is after this load that we check the deallocating/deallocated flag and the const-ness. allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); if (tryR && (allBits & (RC_DEALLOCATING_BIT | RC_DEALLOCATED_BIT))) return NULL; // This object is marked for deallocation - if (RC_GET(allBits) == 0 && !CF_IS_COLLECTABLE(cf)) return cf; // Constant CFTypeRef + if (RC_GET(allBits) == 0) return cf; // Constant CFTypeRef } while (!CAS64(allBits, allBits + RC_INCREMENT, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)); - // GC: 0 --> 1 transition? then add a GC retain count, to root the object. we'll remove it on the 1 --> 0 transition. - if (RC_GET(allBits) == 0 && CF_IS_COLLECTABLE(cf)) { - auto_zone_retain(objc_collectableZone(), (void*)cf); - didAuto = true; - } #else if (tryR && (cfinfo & (RC_DEALLOCATING_BIT | RC_DEALLOCATED_BIT))) return NULL; // deallocating or deallocated uint32_t lowBits; do { lowBits = ((CFRuntimeBase *)cf)->_rc; } while (!CAS32(lowBits, lowBits + 1, (int32_t *)&((CFRuntimeBase *)cf)->_rc)); - // GC: 0 --> 1 transition? then add a GC retain count, to root the object. we'll remove it on the 1 --> 0 transition. - if (lowBits == 0 && CF_IS_COLLECTABLE(cf)) { - auto_zone_retain(objc_collectableZone(), (void*)cf); - didAuto = true; - } #endif #else #define RC_START 24 #define RC_END 31 CFIndex rcLowBits = __CFBitfieldGetValue(cfinfo, RC_END, RC_START); - if (__builtin_expect(0 == rcLowBits, 0) && !CF_IS_COLLECTABLE(cf)) return cf; // Constant CFTypeRef + if (__builtin_expect(0 == rcLowBits, 0)) return cf; // Constant CFTypeRef volatile uint32_t *infoLocation = (uint32_t *)&(((CFRuntimeBase *)cf)->_cfinfo); bool success = 0; do { @@ -1427,15 +1374,10 @@ static CFTypeRef _CFRetain(CFTypeRef cf, Boolean tryR) { __CFUnlock(&__CFRuntimeExternRefCountTableLock); } else { success = CAS32(*(int32_t *)& cfinfo, *(int32_t *)&prospectiveNewInfo, (int32_t *)infoLocation); - // XXX_PCB: 0 --> 1 transition? then add a GC retain count, to root the object. we'll remove it on the 1 --> 0 transition. - if (success && __CFBitfieldGetValue(cfinfo, RC_END, RC_START) == 0 && CF_IS_COLLECTABLE(cf)) { - auto_zone_retain(objc_collectableZone(), (void*)cf); - didAuto = true; - } } } while (__builtin_expect(!success, 0)); #endif - if (!didAuto && __builtin_expect(__CFOASafe, 0)) { + if (__builtin_expect(__CFOASafe, 0)) { __CFRecordAllocationEvent(__kCFRetainEvent, (void *)cf, 0, CFGetRetainCount(cf), NULL); } return cf; @@ -1469,10 +1411,15 @@ Boolean _CFIsDeallocating(CFTypeRef cf) { static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { #if DEPLOYMENT_RUNTIME_SWIFT // We always call through to swift_release, since all CFTypeRefs are at least _NSCFType objects + extern void swift_release(void *); swift_release((void *)cf); #else + uint32_t cfinfo = *(uint32_t *)&(((CFRuntimeBase *)cf)->_cfinfo); - if (cfinfo & RC_DEALLOCATED_BIT) return; // deallocated, or not a cf object + if (cfinfo & RC_DEALLOCATED_BIT) { + CRSetCrashLogMessage("Detected over-release of a CFTypeRef"); + HALT; + } CFTypeID typeID = (cfinfo >> 8) & 0x03FF; // mask up to 0x0FFF if (cfinfo & 0x800000) { // custom ref counting for object CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID]; @@ -1491,7 +1438,6 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { CFIndex start_rc = __builtin_expect(__CFOASafe, 0) ? CFGetRetainCount(cf) : 0; Boolean isAllocator = (__kCFAllocatorTypeID_CONST == typeID); - Boolean didAuto = false; #if __LP64__ #if !DEPLOYMENT_TARGET_WINDOWS uint32_t lowBits; @@ -1501,7 +1447,6 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); lowBits = RC_GET(allBits); if (0 == lowBits) { - if (CF_IS_COLLECTABLE(cf)) auto_zone_release(objc_collectableZone(), (void*)cf); return; // Constant CFTypeRef } if (1 == lowBits) { @@ -1509,45 +1454,37 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { if ((cfClass->version & _kCFRuntimeResourcefulObject) && cfClass->reclaim != NULL) { cfClass->reclaim(cf); } - if (!CF_IS_COLLECTABLE(cf)) { - uint64_t newAllBits = allBits | RC_DEALLOCATING_BIT; - if (!CAS64(allBits, newAllBits, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)) { - goto again; - } - void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; - if (NULL != func) { - func(cf); - } - // Any further ref-count changes after this point are operating on a finalized object - allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); - lowBits = RC_GET(allBits); - if (isAllocator || (1 == lowBits)) { - do { // hammer until it takes; trying to retain the object on another thread at this point? too late! - allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); - } while (!CAS64(allBits, (allBits | RC_DEALLOCATED_BIT) - RC_INCREMENT, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)); - goto really_free; - } - Boolean success = false; - do { // drop the deallocating bit; racey, but this resurrection stuff isn't thread-safe anyway + uint64_t newAllBits = allBits | RC_DEALLOCATING_BIT; + if (!CAS64(allBits, newAllBits, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)) { + goto again; + } + void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; + if (NULL != func) { + func(cf); + } + // Any further ref-count changes after this point are operating on a finalized object + allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); + lowBits = RC_GET(allBits); + if (isAllocator || (1 == lowBits)) { + do { // hammer until it takes; trying to retain the object on another thread at this point? too late! allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); - uint64_t newAllBits = allBits & ~RC_DEALLOCATING_BIT; - success = CAS64(allBits, newAllBits, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo); - } while (!success); - goto again; // still need to have the effect of a CFRelease + } while (!CAS64(allBits, (allBits | RC_DEALLOCATED_BIT) - RC_INCREMENT, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)); + goto really_free; } + Boolean success = false; + do { // drop the deallocating bit; racey, but this resurrection stuff isn't thread-safe anyway + allBits = *(uint64_t *)&(((CFRuntimeBase *)cf)->_cfinfo); + uint64_t newAllBits = allBits & ~RC_DEALLOCATING_BIT; + success = CAS64(allBits, newAllBits, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo); + } while (!success); + goto again; // still need to have the effect of a CFRelease } } while (!CAS64(allBits, allBits - RC_INCREMENT, (int64_t *)&((CFRuntimeBase *)cf)->_cfinfo)); - if (lowBits == 1 && CF_IS_COLLECTABLE(cf)) { - // GC: release the collector's hold over the object, which will call the finalize function later on. - auto_zone_release(objc_collectableZone(), (void*)cf); - didAuto = true; - } #else uint32_t lowBits; do { lowBits = ((CFRuntimeBase *)cf)->_rc; if (0 == lowBits) { - if (CF_IS_COLLECTABLE(cf)) auto_zone_release(objc_collectableZone(), (void*)cf); return; // Constant CFTypeRef } if (1 == lowBits) { @@ -1556,22 +1493,15 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { if ((cfClass->version & _kCFRuntimeResourcefulObject) && cfClass->reclaim != NULL) { cfClass->reclaim(cf); } - if (!CF_IS_COLLECTABLE(cf)) { - void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; - if (NULL != func) { - func(cf); - } - if (isAllocator || CAS32(1, 0, (int32_t *)&((CFRuntimeBase *)cf)->_rc)) { - goto really_free; - } - } + void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; + if (NULL != func) { + func(cf); + } + if (isAllocator || CAS32(1, 0, (int32_t *)&((CFRuntimeBase *)cf)->_rc)) { + goto really_free; + } } } while (!CAS32(lowBits, lowBits - 1, (int32_t *)&((CFRuntimeBase *)cf)->_rc)); - if (lowBits == 1 && CF_IS_COLLECTABLE(cf)) { - // GC: release the collector's hold over the object, which will call the finalize function later on. - auto_zone_release(objc_collectableZone(), (void*)cf); - didAuto = true; - } #endif #else #if !DEPLOYMENT_TARGET_WINDOWS @@ -1579,7 +1509,6 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { volatile uint32_t *infoLocation = (uint32_t *)&(((CFRuntimeBase *)cf)->_cfinfo); CFIndex rcLowBits = __CFBitfieldGetValue(cfinfo, RC_END, RC_START); if (0 == rcLowBits) { - if (CF_IS_COLLECTABLE(cf)) auto_zone_release(objc_collectableZone(), (void*)cf); return; // Constant CFTypeRef } bool success = 0; @@ -1590,9 +1519,6 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { if (1 == rcLowBits) { // we think cf should be deallocated uint32_t prospectiveNewInfo = cfinfo | (RC_DEALLOCATING_BIT); - if (CF_IS_COLLECTABLE(cf)) { - prospectiveNewInfo -= (1 << RC_START); - } success = CAS32(*(int32_t *)& cfinfo, *(int32_t *)&prospectiveNewInfo, (int32_t *)infoLocation); if (success) whack = true; } else { @@ -1620,44 +1546,38 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { } while (!success); if (whack) { - CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID]; - if ((cfClass->version & _kCFRuntimeResourcefulObject) && cfClass->reclaim != NULL) { - cfClass->reclaim(cf); + CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID]; + if ((cfClass->version & _kCFRuntimeResourcefulObject) && cfClass->reclaim != NULL) { + cfClass->reclaim(cf); + } + + if (isAllocator) { + goto really_free; + } else { + void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; + if (NULL != func) { + func(cf); } - if (CF_IS_COLLECTABLE(cf)) { - // GC: release the collector's hold over the object, which will call the finalize function later on. - auto_zone_release(objc_collectableZone(), (void*)cf); - didAuto = true; - } else { - if (isAllocator) { - goto really_free; - } else { - void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; - if (NULL != func) { - func(cf); - } - // Any further ref-count changes after this point are operating on a finalized object - rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START); - if (1 == rcLowBits) { - do { // hammer until it takes; trying to retain the object on another thread at this point? too late! - cfinfo = *infoLocation; - } while (!CAS32(cfinfo, cfinfo | RC_DEALLOCATED_BIT, (int32_t *)infoLocation)); - goto really_free; - } - do { // drop the deallocating bit; racey, but this resurrection stuff isn't thread-safe anyway - cfinfo = *infoLocation; - uint32_t prospectiveNewInfo = (cfinfo & ~(RC_DEALLOCATING_BIT)); - success = CAS32(*(int32_t *)& cfinfo, *(int32_t *)&prospectiveNewInfo, (int32_t *)infoLocation); - } while (!success); - goto again; - } + // Any further ref-count changes after this point are operating on a finalized object + rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START); + if (1 == rcLowBits) { + do { // hammer until it takes; trying to retain the object on another thread at this point? too late! + cfinfo = *infoLocation; + } while (!CAS32(cfinfo, cfinfo | RC_DEALLOCATED_BIT, (int32_t *)infoLocation)); + goto really_free; } + do { // drop the deallocating bit; racey, but this resurrection stuff isn't thread-safe anyway + cfinfo = *infoLocation; + uint32_t prospectiveNewInfo = (cfinfo & ~(RC_DEALLOCATING_BIT)); + success = CAS32(*(int32_t *)& cfinfo, *(int32_t *)&prospectiveNewInfo, (int32_t *)infoLocation); + } while (!success); + goto again; + } } #else volatile uint32_t *infoLocation = (uint32_t *)&(((CFRuntimeBase *)cf)->_cfinfo); CFIndex rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START); if (0 == rcLowBits) { - if (CF_IS_COLLECTABLE(cf)) auto_zone_release(objc_collectableZone(), (void*)cf); return; // Constant CFTypeRef } bool success = 0; @@ -1671,34 +1591,25 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { if ((cfClass->version & _kCFRuntimeResourcefulObject) && cfClass->reclaim != NULL) { cfClass->reclaim(cf); } - if (CF_IS_COLLECTABLE(cf)) { - uint32_t prospectiveNewInfo = initialCheckInfo - (1 << RC_START); - success = CAS32(*(int32_t *)&initialCheckInfo, *(int32_t *)&prospectiveNewInfo, (int32_t *)infoLocation); - // GC: release the collector's hold over the object, which will call the finalize function later on. + + if (isAllocator) { + goto really_free; + } else { + void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; + if (NULL != func) { + func(cf); + } + // We recheck rcLowBits to see if the object has been retained again during + // the finalization process. This allows for the finalizer to resurrect, + // but the main point is to allow finalizers to be able to manage the + // removal of objects from uniquing caches, which may race with other threads + // which are allocating (looking up and finding) objects from those caches, + // which (that thread) would be the thing doing the extra retain in that case. + rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START); + success = (1 == rcLowBits); if (success) { - auto_zone_release(objc_collectableZone(), (void*)cf); - didAuto = true; - } - } else { - if (isAllocator) { - goto really_free; - } else { - void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize; - if (NULL != func) { - func(cf); - } - // We recheck rcLowBits to see if the object has been retained again during - // the finalization process. This allows for the finalizer to resurrect, - // but the main point is to allow finalizers to be able to manage the - // removal of objects from uniquing caches, which may race with other threads - // which are allocating (looking up and finding) objects from those caches, - // which (that thread) would be the thing doing the extra retain in that case. - rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START); - success = (1 == rcLowBits); - if (success) { - goto really_free; - } - } + goto really_free; + } } } else { // not yet junk @@ -1725,13 +1636,13 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { } while (!success); #endif #endif - if (!didAuto && __builtin_expect(__CFOASafe, 0)) { + if (__builtin_expect(__CFOASafe, 0)) { __CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, start_rc - 1, NULL); } return; really_free:; - if (!didAuto && __builtin_expect(__CFOASafe, 0)) { + if (__builtin_expect(__CFOASafe, 0)) { // do not use CFGetRetainCount() because cf has been freed if it was an allocator __CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, 0, NULL); } @@ -1748,8 +1659,9 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { } { - CFAllocatorDeallocate(allocator, (uint8_t *)cf - (usesSystemDefaultAllocator ? 0 : sizeof(CFAllocatorRef))); - } + // To preserve 16 byte alignment when using custom allocators, we always place the CFAllocatorRef 16 bytes before the CFType. Here we need to make sure we pass the original pointer back to the allocator for deallocating (which included the space for holding the pointer to the allocator itself). + CFAllocatorDeallocate(allocator, (uint8_t *)cf - (usesSystemDefaultAllocator ? 0 : 16)); + } if (kCFAllocatorSystemDefault != allocator) { CFRelease(allocator); @@ -1759,10 +1671,8 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) { } #if DEPLOYMENT_RUNTIME_SWIFT - struct _CFSwiftBridge __CFSwiftBridge = { { NULL } }; - // Call out to the CF-level finalizer, because the object is going to go away. CF_SWIFT_EXPORT void _CFDeinit(CFTypeRef cf) { uint32_t cfinfo = *(uint32_t *)&(((CFRuntimeBase *)cf)->_cfinfo); @@ -1773,7 +1683,6 @@ CF_SWIFT_EXPORT void _CFDeinit(CFTypeRef cf) { func(cf); } } -#endif bool _CFIsSwift(CFTypeID type, CFSwiftRef obj) { if (type == _kCFRuntimeNotATypeID) { @@ -1808,8 +1717,6 @@ const char *_NSPrintForDebugger(void *cf) { } } -#if DEPLOYMENT_RUNTIME_SWIFT - // For CF functions with 'Get' semantics, the compiler currently assumes that the result is autoreleased and must be retained. It does so on all platforms by emitting a call to objc_retainAutoreleasedReturnValue. On Darwin, this is implemented by the ObjC runtime. On Linux, there is no runtime, and therefore we have to stub it out here ourselves. The compiler will eventually call swift_release to balance the retain below. This is a workaround until the compiler no longer emits this callout on Linux. void * objc_retainAutoreleasedReturnValue(void *obj) { if (obj) { @@ -1818,7 +1725,7 @@ void * objc_retainAutoreleasedReturnValue(void *obj) { } else return NULL; } - + CFHashCode __CFHashDouble(double d) { return _CFHashDouble(d); } diff --git a/CoreFoundation/Base.subproj/CFRuntime.h b/CoreFoundation/Base.subproj/CFRuntime.h index 60da2b8bb2..b7b5f1cab8 100644 --- a/CoreFoundation/Base.subproj/CFRuntime.h +++ b/CoreFoundation/Base.subproj/CFRuntime.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFRuntime.h - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. All rights reserved. + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFRUNTIME__) @@ -23,30 +18,18 @@ CF_EXTERN_C_BEGIN #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) && !__x86_64h__) -// GC: until we link against ObjC must use indirect functions. Overridden in CFSetupFoundationBridging +// Although we no longer support GC, we leave exported symbols in place for now to avoid any lockstep dependency issues. CF_EXPORT bool kCFUseCollectableAllocator; CF_EXPORT bool (*__CFObjCIsCollectable)(void *); -CF_INLINE Boolean _CFAllocatorIsSystemDefault(CFAllocatorRef allocator) { - if (allocator == kCFAllocatorSystemDefault) return true; - if (NULL == allocator || kCFAllocatorDefault == allocator) { - return (kCFAllocatorSystemDefault == CFAllocatorGetDefault()); - } - return false; -} - -// is GC on? -#define CF_USING_COLLECTABLE_MEMORY (kCFUseCollectableAllocator) -// is GC on and is this the GC allocator? -#define CF_IS_COLLECTABLE_ALLOCATOR(allocator) (kCFUseCollectableAllocator && (NULL == (allocator) || kCFAllocatorSystemDefault == (allocator) || 0)) -// is this allocated by the collector? -#define CF_IS_COLLECTABLE(obj) (__CFObjCIsCollectable ? __CFObjCIsCollectable((void*)obj) : false) - #else #define kCFUseCollectableAllocator 0 #define __CFObjCIsCollectable 0 +#endif + + CF_INLINE Boolean _CFAllocatorIsSystemDefault(CFAllocatorRef allocator) { if (allocator == kCFAllocatorSystemDefault) return true; if (NULL == allocator || kCFAllocatorDefault == allocator) { @@ -58,7 +41,6 @@ CF_INLINE Boolean _CFAllocatorIsSystemDefault(CFAllocatorRef allocator) { #define CF_USING_COLLECTABLE_MEMORY 0 #define CF_IS_COLLECTABLE_ALLOCATOR(allocator) (0 && allocator) // prevent allocator from being claimed to be un-used #define CF_IS_COLLECTABLE(obj) (0 && obj) // prevent obj from being claimed to be un-used -#endif enum { _kCFRuntimeNotATypeID = 0 @@ -90,7 +72,7 @@ typedef struct __CFRuntimeClass { // this field must be non-NULL when _kCFRuntimeCustomRefCount is in the .version field // - if the callback is passed 1 in 'op' it should increment the 'cf's reference count and return 0 // - if the callback is passed 0 in 'op' it should return the 'cf's reference count, up to 32 bits - // - if the callback is passed -1 in 'op' it should decrement the 'cf's reference count; if it is now zero, 'cf' should be cleaned up and deallocated (the finalize callback above will NOT be called unless the process is running under GC, and CF does not deallocate the memory for you; if running under GC, finalize should do the object tear-down and free the object memory); then return 0 + // - if the callback is passed -1 in 'op' it should decrement the 'cf's reference count; if it is now zero, 'cf' should be cleaned up and deallocated; then return 0 // remember to use saturation arithmetic logic and stop incrementing and decrementing when the ref count hits UINT32_MAX, or you will have a security bug // remember that reference count incrementing/decrementing must be done thread-safely/atomically // objects should be created/initialized with a custom ref-count of 1 by the class creation functions @@ -242,7 +224,6 @@ typedef struct __CFRuntimeBase { #endif - CF_EXPORT CFTypeRef _CFRuntimeCreateInstance(CFAllocatorRef allocator, CFTypeID typeID, CFIndex extraBytes, unsigned char *category); /* Creates a new CF instance of the class specified by the * given CFTypeID, using the given allocator, and returns it. diff --git a/CoreFoundation/Base.subproj/CFSortFunctions.c b/CoreFoundation/Base.subproj/CFSortFunctions.c index abc9604a62..517fc309de 100644 --- a/CoreFoundation/Base.subproj/CFSortFunctions.c +++ b/CoreFoundation/Base.subproj/CFSortFunctions.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSortFunctions.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -17,9 +12,45 @@ #include "CFInternal.h" #if __HAS_DISPATCH__ #include -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) && __has_include() #include #endif +#endif +#include "CFLogUtilities.h" +#include "CFInternal.h" + +#if __has_include() +#include +#else +enum { + CHECKINT_NO_ERROR = 0, + CHECKINT_OVERFLOW_ERROR = (1 << 0), + CHECKINT_TYPE_ERROR = (1 << 1) +}; + +#define __check_int32_add(x, y, err) (x + y) +#define __check_uint32_add(x, y, err) (x + y) +#define __check_int64_add(x, y, err) (x + y) +#define __check_uint64_add(x, y, err) (x + y) + +#define __check_int32_sub(x, y, err) (x - y) +#define __check_uint32_sub(x, y, err) (x - y) +#define __check_int64_sub(x, y, err) (x - y) +#define __check_uint64_sub(x, y, err) (x - y) + +#define __check_int32_mul(x, y, err) (x * y) +#define __check_uint32_mul(x, y, err) (x * y) +#define __check_int64_mul(x, y, err) (x * y) +#define __check_uint64_mul(x, y, err) (x * y) + +#define __check_int32_div(x, y, err) (x / y) +#define __check_uint32_div(x, y, err) (x / y) +#define __check_int64_div(x, y, err) (x / y) +#define __check_uint64_div(x, y, err) (x / y) + +#define __checkint_int64_mul(x, y, err) (x * y) +#define __checkint_uint64_add(x, y, err) (x + y) + #endif enum { @@ -121,7 +152,6 @@ static void __CFSimpleMergeSort(VALUE_TYPE listp[], INDEX_TYPE cnt, VALUE_TYPE t } #if __HAS_DISPATCH__ -// Excluded from linux for dispatch dependency // if !right, put the cnt1 smallest values in tmp, else put the cnt2 largest values in tmp static void __CFSortIndexesNMerge(VALUE_TYPE listp1[], INDEX_TYPE cnt1, VALUE_TYPE listp2[], INDEX_TYPE cnt2, VALUE_TYPE tmp[], size_t right, COMPARATOR_BLOCK cmp) { @@ -284,14 +314,76 @@ void CFSortIndexes(CFIndex *indexBuffer, CFIndex count, CFOptionFlags opts, CFCo if (local != tmp) free(tmp); } +typedef CF_ENUM(uint8_t, _CFOverflowResult) { + _CFOverflowResultOK = 0, + _CFOverflowResultNegativeParameters, + _CFOverflowResultOverflows, +}; + +// Overflow utilities for positive integers +CF_INLINE _CFOverflowResult _CFIntegerProductWouldOverflow(CFIndex si_a, CFIndex si_b) { + _CFOverflowResult result = _CFOverflowResultOK; + if (si_a < 0 || si_b < 0) { + // we explicitly only implement a subset of the overflow checking, so report failure if out of domain + result = _CFOverflowResultNegativeParameters; + } else { + int32_t err = CHECKINT_NO_ERROR; +#if __LP64__ + __checkint_int64_mul(si_a, si_b, &err); +#else + __checkint_int32_mul(si_a, si_b, &err); +#endif + if (err != CHECKINT_NO_ERROR) { + result = _CFOverflowResultOverflows; + } + } + return result; +} +CF_INLINE _CFOverflowResult _CFPointerSumWouldOverflow(void *p, size_t n) { + _CFOverflowResult result = _CFOverflowResultOK; + int32_t err = CHECKINT_NO_ERROR; +#if __LP64__ + __checkint_uint64_add((uint64_t)p, (uint64_t)n, &err); +#else + __checkint_uint32_add((uint32_t)p, (uint32_t)n, &err); +#endif + if (err != CHECKINT_NO_ERROR) { + result = _CFOverflowResultOverflows; + } + return result; +} + /* Comparator is passed the address of the values. */ void CFQSortArray(void *list, CFIndex count, CFIndex elementSize, CFComparatorFunction comparator, void *context) { if (count < 2 || elementSize < 1) return; + _CFOverflowResult overflowResult = _CFIntegerProductWouldOverflow(count, elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to qsort array - count: %ld elementSize: %ld product overflows"), (long)count, (long)elementSize); + CRSetCrashLogMessage("qsort - count/elementSize overflow"); + HALT; + } + overflowResult = _CFPointerSumWouldOverflow(list, count * elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to qsort array - list: %lu count: %ld elementSize: %ld - array access overflows"), (unsigned long)list, (long)count, (long)elementSize); + CRSetCrashLogMessage("qsort - array access overflow"); + HALT; + } STACK_BUFFER_DECL(CFIndex, locali, count <= 4096 ? count : 1); CFIndex *indexes = (count <= 4096) ? locali : (CFIndex *)malloc(count * sizeof(CFIndex)); + if (indexes == NULL) { + CFLog(kCFLogLevelError, CFSTR("unable to qsort array - malloc failed")); + CRSetCrashLogMessage("qsort - malloc failed"); + HALT; + } CFSortIndexes(indexes, count, 0, ^(CFIndex a, CFIndex b) { return comparator((char *)list + a * elementSize, (char *)list + b * elementSize, context); }); STACK_BUFFER_DECL(uint8_t, locals, count <= (16 * 1024 / elementSize) ? count * elementSize : 1); void *store = (count <= (16 * 1024 / elementSize)) ? locals : malloc(count * elementSize); + overflowResult = _CFPointerSumWouldOverflow(store, count * elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to qsort array - list: %lu count: %ld elementSize: %ld array - store overflows"), (unsigned long)list, (long)count, (long)elementSize); + CRSetCrashLogMessage("qsort - array storage overflow"); + HALT; + } for (CFIndex idx = 0; idx < count; idx++) { if (sizeof(uintptr_t) == elementSize) { uintptr_t *a = (uintptr_t *)list + indexes[idx]; @@ -302,7 +394,7 @@ void CFQSortArray(void *list, CFIndex count, CFIndex elementSize, CFComparatorFu } } // no swapping or modification of the original list has occurred until this point - objc_memmove_collectable(list, store, count * elementSize); + memmove(list, store, count * elementSize); if (locals != store) free(store); if (locali != indexes) free(indexes); } @@ -310,11 +402,34 @@ void CFQSortArray(void *list, CFIndex count, CFIndex elementSize, CFComparatorFu /* Comparator is passed the address of the values. */ void CFMergeSortArray(void *list, CFIndex count, CFIndex elementSize, CFComparatorFunction comparator, void *context) { if (count < 2 || elementSize < 1) return; + _CFOverflowResult overflowResult = _CFIntegerProductWouldOverflow(count, elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to mergesort array - count: %ld elementSize: %ld overflows"), (long)count, (long)elementSize); + CRSetCrashLogMessage("merge sort - count/elementSize overflow"); + HALT; + } + overflowResult = _CFPointerSumWouldOverflow(list, count * elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to mergesort array - list: %lu count: %ld elementSize: %ld - array access overflows"), (unsigned long)list, (long)count, (long)elementSize); + CRSetCrashLogMessage("merge sort - array access overflow"); + HALT; + } STACK_BUFFER_DECL(CFIndex, locali, count <= 4096 ? count : 1); CFIndex *indexes = (count <= 4096) ? locali : (CFIndex *)malloc(count * sizeof(CFIndex)); + if (indexes == NULL) { + CFLog(kCFLogLevelError, CFSTR("unable to mergesort array - malloc failed")); + CRSetCrashLogMessage("merge sort - malloc failure"); + HALT; + } CFSortIndexes(indexes, count, kCFSortStable, ^(CFIndex a, CFIndex b) { return comparator((char *)list + a * elementSize, (char *)list + b * elementSize, context); }); STACK_BUFFER_DECL(uint8_t, locals, count <= (16 * 1024 / elementSize) ? count * elementSize : 1); void *store = (count <= (16 * 1024 / elementSize)) ? locals : malloc(count * elementSize); + overflowResult = _CFPointerSumWouldOverflow(store, count * elementSize); + if (overflowResult != _CFOverflowResultOK) { + CFLog(kCFLogLevelError, CFSTR("Unable to mergesort array - list: %lu count: %ld elementSize: %ld - array store overflows"), (unsigned long)list, (long)count, (long)elementSize); + CRSetCrashLogMessage("merge sort - overflow array storage"); + HALT; + } for (CFIndex idx = 0; idx < count; idx++) { if (sizeof(uintptr_t) == elementSize) { uintptr_t *a = (uintptr_t *)list + indexes[idx]; @@ -325,7 +440,7 @@ void CFMergeSortArray(void *list, CFIndex count, CFIndex elementSize, CFComparat } } // no swapping or modification of the original list has occurred until this point - objc_memmove_collectable(list, store, count * elementSize); + memmove(list, store, count * elementSize); if (locals != store) free(store); if (locali != indexes) free(indexes); } diff --git a/CoreFoundation/Base.subproj/CFSystemDirectories.c b/CoreFoundation/Base.subproj/CFSystemDirectories.c index e1f60419e0..867f7b571d 100644 --- a/CoreFoundation/Base.subproj/CFSystemDirectories.c +++ b/CoreFoundation/Base.subproj/CFSystemDirectories.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSystemDirectories.c - Copyright (c) 1997 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1997-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Kevin Perry */ @@ -31,10 +26,14 @@ #include #include #include -#include +#include + +// For now, CFSystemDirectories SPIs are exactly equivalent to (or at least a subset of) sysdir's. NSSearchPath* APIs in Foundation are not a subset of sysdir, so don't attempt to push that functionality down here without accommodating the differences. +#define CFSearchPathToSysdir(dir) ((sysdir_search_path_directory_t)dir) +#define CFSearchPathDomainMaskToSysdir(mask) ((sysdir_search_path_domain_mask_t)domainMask) CFSearchPathEnumerationState __CFStartSearchPathEnumeration(CFSearchPathDirectory dir, CFSearchPathDomainMask domainMask) { - return NSStartSearchPathEnumeration(dir, domainMask); + return sysdir_start_search_path_enumeration(CFSearchPathToSysdir(dir), CFSearchPathDomainMaskToSysdir(domainMask)); } CFSearchPathEnumerationState __CFGetNextSearchPathEnumeration(CFSearchPathEnumerationState state, uint8_t *path, CFIndex pathSize) { @@ -42,10 +41,10 @@ CFSearchPathEnumerationState __CFGetNextSearchPathEnumeration(CFSearchPathEnumer // NSGetNextSearchPathEnumeration requires a MAX_PATH size if (pathSize < PATH_MAX) { uint8_t tempPath[PATH_MAX]; - result = NSGetNextSearchPathEnumeration(state, (char *)tempPath); + result = sysdir_get_next_search_path_enumeration(state, (char *)tempPath); strlcpy((char *)path, (char *)tempPath, pathSize); } else { - result = NSGetNextSearchPathEnumeration(state, (char *)path); + result = sysdir_get_next_search_path_enumeration(state, (char *)path); } return result; } diff --git a/CoreFoundation/Base.subproj/CFUUID.c b/CoreFoundation/Base.subproj/CFUUID.c index 5fa66b6006..9fdd9220e2 100644 --- a/CoreFoundation/Base.subproj/CFUUID.c +++ b/CoreFoundation/Base.subproj/CFUUID.c @@ -1,21 +1,15 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUUID.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ #include #include "CFInternal.h" -#include "uuid/uuid.h" #if __HAS_DISPATCH__ #include @@ -63,116 +57,12 @@ static CFHashCode __CFhashUUIDBytes(const void *ptr) { return CFHashBytes((uint8_t *)ptr, 16); } -/* - * GC implementation of a weak set specifically designed for UUID - */ - -#define MALLOC(x) CFAllocatorAllocate(kCFAllocatorSystemDefault, x, 0) -#define FREE(x) CFAllocatorDeallocate(kCFAllocatorSystemDefault, x) -#define HASH(x) CFHashBytes((uint8_t *)x, 16) - -#define READWEAK(location) objc_read_weak((id *)location) -#define WRITEWEAK(location, value) objc_assign_weak((id)value, (id *)location) - -typedef struct { - unsigned long count, size; - __CFUUID_t **weakPtrs; -} _UUIDWeakSet_t; - -static _UUIDWeakSet_t _UUIDWeakSet; - -static void grow_has_lock(void); - -// enter if not already present -static void enter_has_lock(__CFUUID_t *candidate) { - if (!candidate) return; - _UUIDWeakSet_t *table = &_UUIDWeakSet; - if (!table->size) grow_has_lock(); - unsigned long int hashValue = HASH(&candidate->_bytes) & (table->size-1); - __CFUUID_t *result = table->weakPtrs[hashValue]; - while (1) { - if (result == (void *)0x1 || result == NULL) { - table->weakPtrs[hashValue] = NULL; // so that we don't try to unregister 0x1 - WRITEWEAK(&table->weakPtrs[hashValue], (void *)candidate); - ++table->count; - break; - } - if (result) result = (__CFUUID_t *)READWEAK(&table->weakPtrs[hashValue]); - if (result) { - // see if it is equal to candidate - if (__CFisEqualUUIDBytes(&result->_bytes, &candidate->_bytes)) { - // keep first one. There is a race if two threads both fail to find - // a candidate uuid then both try decide to create and enter one. - // Under non-GC one of them simply leaks. - break; - } - } else { - // was zeroed by collector. Use this slot. - continue; - } - // move on - if (++hashValue >= table->size) hashValue = 0; - result = table->weakPtrs[hashValue]; - } -} - -static void *find_has_lock(const CFUUIDBytes *bytes) { - if (!bytes) return NULL; - _UUIDWeakSet_t *table = &_UUIDWeakSet; - if (!table->size) return NULL; // no entries - unsigned long int hashValue = HASH(bytes) & (table->size-1); - __CFUUID_t *result = table->weakPtrs[hashValue]; - while (1) { - if (result == (void *)0x1) break; - if (result) result = (__CFUUID_t *)READWEAK(&table->weakPtrs[hashValue]); - if (result) { - // see if it is equal to bytes - if (__CFisEqualUUIDBytes(&result->_bytes, bytes)) return result; - } - // move on - if (++hashValue >= table->size) hashValue = 0; - result = table->weakPtrs[hashValue]; - } - return NULL; -} - - -static void grow_has_lock() { - _UUIDWeakSet_t *table = &_UUIDWeakSet; - if (table->size == 0) { - table->size = 16; - table->weakPtrs = (__CFUUID_t **)MALLOC(sizeof(__CFUUID_t *)*table->size); - for (int i = 0; i < table->size; ++i) table->weakPtrs[i] = (__CFUUID_t *)0x1; - table->count = 0; - return; - } - table->count = 0; - table->size = table->size*2; - __CFUUID_t **oldPtrs = table->weakPtrs; - table->weakPtrs = (__CFUUID_t **)MALLOC(sizeof(__CFUUID_t *)*table->size); - for (int i = 0; i < table->size; ++i) table->weakPtrs[i] = (__CFUUID_t *)0x1; - for (int i = 0; i < table->size / 2; ++i) { - if (oldPtrs[i] == (__CFUUID_t *)0x1) continue; // available field, ignore - if (oldPtrs[i] == NULL) continue; // zero'ed by collector, ignore - enter_has_lock((__CFUUID_t *)READWEAK(&oldPtrs[i])); // read, then enter (but enter must check for NULL) - WRITEWEAK(&oldPtrs[i], NULL); // unregister - } - FREE(oldPtrs); -} - -/***** end of weak set */ - static void __CFUUIDAddUniqueUUIDHasLock(CFUUIDRef uuid) { CFDictionaryKeyCallBacks __CFUUIDBytesDictionaryKeyCallBacks = {0, NULL, NULL, NULL, __CFisEqualUUIDBytes, __CFhashUUIDBytes}; CFDictionaryValueCallBacks __CFnonRetainedUUIDDictionaryValueCallBacks = {0, NULL, NULL, CFCopyDescription, CFEqual}; - if (kCFUseCollectableAllocator) { - enter_has_lock((__CFUUID_t *)uuid); - if (_UUIDWeakSet.count > (3 * _UUIDWeakSet.size / 4)) grow_has_lock(); - } else { - if (!_uniquedUUIDs) _uniquedUUIDs = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, &__CFUUIDBytesDictionaryKeyCallBacks, &__CFnonRetainedUUIDDictionaryValueCallBacks); - CFDictionarySetValue(_uniquedUUIDs, &(uuid->_bytes), uuid); - } + if (!_uniquedUUIDs) _uniquedUUIDs = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, &__CFUUIDBytesDictionaryKeyCallBacks, &__CFnonRetainedUUIDDictionaryValueCallBacks); + CFDictionarySetValue(_uniquedUUIDs, &(uuid->_bytes), uuid); } static void __CFUUIDRemoveUniqueUUIDHasLock(CFUUIDRef uuid) { @@ -181,17 +71,13 @@ static void __CFUUIDRemoveUniqueUUIDHasLock(CFUUIDRef uuid) { static CFUUIDRef __CFUUIDGetUniquedUUIDHasLock(const CFUUIDBytes *bytes) { CFUUIDRef uuid = NULL; - if (kCFUseCollectableAllocator) { - uuid = (CFUUIDRef)find_has_lock(bytes); - } else if (_uniquedUUIDs) { + if (_uniquedUUIDs) { uuid = (CFUUIDRef)CFDictionaryGetValue(_uniquedUUIDs, bytes); } return uuid; } -static void __CFUUIDDeallocate(CFTypeRef cf) { - if (kCFUseCollectableAllocator) return; - +static void __CFUUIDDeallocate(CFTypeRef cf) { __CFUUID_t *uuid = (__CFUUID_t *)cf; LOCKED(^{ __CFUUIDRemoveUniqueUUIDHasLock(uuid); @@ -224,7 +110,7 @@ static const CFRuntimeClass __CFUUIDClass = { }; CFTypeID CFUUIDGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFUUIDTypeID = _CFRuntimeRegisterClass(&__CFUUIDClass); }); return __kCFUUIDTypeID; } @@ -236,7 +122,7 @@ static CFUUIDRef __CFUUIDCreateWithBytesPrimitive(CFAllocatorRef allocator, CFUU if (!uuid) { size_t size; size = sizeof(__CFUUID_t) - sizeof(CFRuntimeBase); - uuid = (__CFUUID_t *)_CFRuntimeCreateInstance(kCFUseCollectableAllocator ? kCFAllocatorSystemDefault : allocator, CFUUIDGetTypeID(), size, NULL); + uuid = (__CFUUID_t *)_CFRuntimeCreateInstance(allocator, CFUUIDGetTypeID(), size, NULL); if (!uuid) return; @@ -252,7 +138,7 @@ static CFUUIDRef __CFUUIDCreateWithBytesPrimitive(CFAllocatorRef allocator, CFUU #if DEPLOYMENT_TARGET_WINDOWS #include -#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +#else #if DEPLOYMENT_RUNTIME_SWIFT #include "uuid/uuid.h" #else @@ -284,6 +170,8 @@ CFUUIDRef CFUUIDCreate(CFAllocatorRef alloc) { if (useV1UUIDs) uuid_generate_time(uuid); else uuid_generate_random(uuid); memcpy((void *)&bytes, uuid, sizeof(uuid)); #else + //This bzero works around . It isn't actually needed, since the function will simply return NULL on this deployment target, anyway. + bzero(&bytes, sizeof(bytes)); retval = 1; #endif }); @@ -500,4 +388,3 @@ void _cf_uuid_unparse_lower(const _cf_uuid_t uu, _cf_uuid_string_t out) { uuid_u void _cf_uuid_unparse_upper(const _cf_uuid_t uu, _cf_uuid_string_t out) { uuid_unparse_upper(uu, out); } #endif - diff --git a/CoreFoundation/Base.subproj/CFUUID.h b/CoreFoundation/Base.subproj/CFUUID.h index b03aefe050..6f7d7201f0 100644 --- a/CoreFoundation/Base.subproj/CFUUID.h +++ b/CoreFoundation/Base.subproj/CFUUID.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUUID.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUUID__) diff --git a/CoreFoundation/Base.subproj/CFUtilities.c b/CoreFoundation/Base.subproj/CFUtilities.c index 338e90ddc3..4e99bc081b 100644 --- a/CoreFoundation/Base.subproj/CFUtilities.c +++ b/CoreFoundation/Base.subproj/CFUtilities.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUtilities.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -25,7 +20,7 @@ #if DEPLOYMENT_TARGET_WINDOWS #include #endif -#ifdef __ANDROID__ +#if TARGET_OS_ANDROID #include #endif #include @@ -50,6 +45,7 @@ #include #include #include +#import #include #include #include @@ -58,6 +54,7 @@ #include #include #include +#include #endif #if DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD #include @@ -71,6 +68,15 @@ #define CF_HAVE_HW_CONFIG_COMMPAGE 1 #endif +CF_PRIVATE os_log_t _CFOSLog(void) { + static os_log_t logger; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + logger = os_log_create("com.apple.foundation", "general"); + }); + return logger; +} + /* Comparator is passed the address of the values. */ /* Binary searches a sorted-increasing array of some type. Return value is either 1) the index of the element desired, @@ -98,7 +104,7 @@ } */ -CF_EXPORT CFIndex CFBSearch(const void *element, CFIndex elementSize, const void *list, CFIndex count, CFComparatorFunction comparator, void *context) { +CF_PRIVATE CFIndex CFBSearch(const void *element, CFIndex elementSize, const void *list, CFIndex count, CFComparatorFunction comparator, void *context) { const char *ptr = (const char *)list; while (0 < count) { CFIndex half = count / 2; @@ -352,9 +358,10 @@ CF_EXPORT Boolean _CFExecutableLinkedOnOrAfter(CFSystemVersion version) { #if DEPLOYMENT_TARGET_MACOSX CF_PRIVATE void *__CFLookupCarbonCoreFunction(const char *name) { static void *image = NULL; - if (NULL == image) { - image = dlopen("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore", RTLD_LAZY | RTLD_LOCAL); - } + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + image = dlopen("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore", RTLD_LAZY | RTLD_LOCAL); + }); void *dyfunc = NULL; if (image) { dyfunc = dlsym(image, name); @@ -366,9 +373,10 @@ CF_PRIVATE void *__CFLookupCarbonCoreFunction(const char *name) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED CF_PRIVATE void *__CFLookupCoreServicesInternalFunction(const char *name) { static void *image = NULL; - if (NULL == image) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ image = dlopen("/System/Library/PrivateFrameworks/CoreServicesInternal.framework/CoreServicesInternal", RTLD_LAZY | RTLD_LOCAL); - } + }); void *dyfunc = NULL; if (image) { dyfunc = dlsym(image, name); @@ -378,13 +386,14 @@ CF_PRIVATE void *__CFLookupCoreServicesInternalFunction(const char *name) { CF_PRIVATE void *__CFLookupCFNetworkFunction(const char *name) { static void *image = NULL; - if (NULL == image) { - const char *path = __CFgetenvIfNotRestricted("CFNETWORK_LIBRARY_PATH"); - if (!path) { - path = "/System/Library/Frameworks/CFNetwork.framework/CFNetwork"; - } - image = dlopen(path, RTLD_LAZY | RTLD_LOCAL); - } + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + const char *path = __CFgetenvIfNotRestricted("CFNETWORK_LIBRARY_PATH"); + if (!path) { + path = "/System/Library/Frameworks/CFNetwork.framework/CFNetwork"; + } + image = dlopen(path, RTLD_LAZY | RTLD_LOCAL); + }); void *dyfunc = NULL; if (image) { dyfunc = dlsym(image, name); @@ -393,7 +402,7 @@ CF_PRIVATE void *__CFLookupCFNetworkFunction(const char *name) { } #endif -CF_EXPORT CFIndex __CFActiveProcessorCount() { +CF_PRIVATE CFIndex __CFActiveProcessorCount() { #if CF_HAVE_HW_CONFIG_COMMPAGE static const uintptr_t p = _COMM_PAGE_ACTIVE_CPUS; return (CFIndex)(*(uint8_t*)p); @@ -427,7 +436,7 @@ CF_EXPORT CFIndex __CFActiveProcessorCount() { #endif } -CF_EXPORT CFIndex __CFProcessorCount() { +CF_PRIVATE CFIndex __CFProcessorCount() { int32_t pcnt; #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI int32_t mib[] = {CTL_HW, HW_NCPU}; @@ -445,7 +454,7 @@ CF_EXPORT CFIndex __CFProcessorCount() { return pcnt; } -CF_EXPORT uint64_t __CFMemorySize() { +CF_PRIVATE uint64_t __CFMemorySize() { uint64_t memsize = 0; #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI int32_t mib[] = {CTL_HW, HW_NCPU}; @@ -460,7 +469,7 @@ CF_EXPORT uint64_t __CFMemorySize() { #endif return memsize; } - + CF_PRIVATE void __CFGetUGIDs(uid_t *euid, gid_t *egid) { #if 1 && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI) uid_t uid; @@ -575,75 +584,201 @@ void CFShow(const void *obj) { // message must be a UTF8-encoded, null-terminated, byte buffer with at least length bytes typedef void (*CFLogFunc)(int32_t lev, const char *message, size_t length, char withBanner); -static Boolean also_do_stderr() { +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +static Boolean debugger_attached() { + BOOL debuggerAttached = NO; + struct proc_bsdshortinfo info; + const int size = proc_pidinfo(getpid(), PROC_PIDT_SHORTBSDINFO, 0, &info, sizeof(info)); + if (size == PROC_PIDT_SHORTBSDINFO_SIZE) { + debuggerAttached = (info.pbsi_flags & PROC_FLAG_TRACED); + } + return debuggerAttached; +} +#endif + +// We need to support both the 'modern' os_log focused approach to logging and the previous implementation. This enumeration gives us a way to distinguish between the two more verbosely than a boolean. +typedef enum { + _cf_logging_style_os_log, + _cf_logging_style_legacy +} _cf_logging_style; + +static bool also_do_stderr(const _cf_logging_style style) { + bool result = false; #if DEPLOYMENT_TARGET_EMBEDDED_MINI // just log to stderr, other logging facilities are out - return true; + result = true; #elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED - if (!issetugid() && __CFgetenv("CFLOG_FORCE_STDERR")) { - return true; + if (style == _cf_logging_style_os_log) { + // + // This might seem a bit odd, so an explanation is in order: + // + // If a debugger is attached we defer to os_log to do all logging for us. This + // happens many frames up/sideways from here. + // + // Otherwise, we check for the force flag as we always have. + // + // That failing, we'll stat STDERR and see if its sxomething we like. + // + // NOTE: As nice as it would be to dispatch_once this, all of these things + // can and do change at runtime under certain circumstances, so we need to + // keep it dynamic. + // + if (debugger_attached() || __CFgetenv("OS_ACTIVITY_DT_MODE")) { + return false; + } + + if (!__CFProcessIsRestricted() && __CFgetenv("CFLOG_FORCE_STDERR")) { + return true; + } + + struct stat sb; + int ret = fstat(STDERR_FILENO, &sb); + if (ret < 0) { + return false; + } + + const mode_t m = sb.st_mode & S_IFMT; + if (S_IFCHR == m || S_IFREG == m || S_IFIFO == m || S_IFSOCK == m) { + return true; + } + // NOTE: we return false now, as the expectation is that os_log path owns all logging + result = false; + } else if (style == _cf_logging_style_legacy) { + // compatibility path + if (!issetugid() && __CFgetenv("CFLOG_FORCE_STDERR")) { + return true; + } + struct stat sb; + int ret = fstat(STDERR_FILENO, &sb); + if (ret < 0) return false; + mode_t m = sb.st_mode & S_IFMT; + if (S_IFREG == m || S_IFSOCK == m) return true; + if (!(S_IFIFO == m || S_IFCHR == m)) return false; // disallow any whacky stuff + result = true; } - struct stat sb; - int ret = fstat(STDERR_FILENO, &sb); - if (ret < 0) return false; - mode_t m = sb.st_mode & S_IFMT; - if (S_IFREG == m || S_IFSOCK == m) return true; - if (!(S_IFIFO == m || S_IFCHR == m)) return false; // disallow any whacky stuff -#if 0 // launchd no longer repeats everything it hears - // if it could be a pipe back to launchd, fail - int64_t val = 0; - // assumes val is not written to on error - vproc_swap_integer(NULL, VPROC_GSK_IS_MANAGED, NULL, &val); - if (val) return false; -#endif #endif - return true; + return result; } extern char *__CFBundleMainID; +static void _populateBanner(char **banner, char **time, char **thread, int *bannerLen) { + double dummy; + CFAbsoluteTime at = CFAbsoluteTimeGetCurrent(); + time_t tv = floor(at + kCFAbsoluteTimeIntervalSince1970); + struct tm mine; + localtime_r(&tv, &mine); + int32_t year = mine.tm_year + 1900; + int32_t month = mine.tm_mon + 1; + int32_t day = mine.tm_mday; + int32_t hour = mine.tm_hour; + int32_t minute = mine.tm_min; + int32_t second = mine.tm_sec; + int32_t ms = (int32_t)floor(1000.0 * modf(at, &dummy)); +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI + uint64_t tid = 0; + if (0 != pthread_threadid_np(NULL, &tid)) tid = pthread_mach_thread_np(pthread_self()); + asprintf(banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%llu] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), tid); + asprintf(thread, "%x", pthread_mach_thread_np(pthread_self())); +#elif DEPLOYMENT_TARGET_WINDOWS + bannerLen = asprintf(banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%x] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), GetCurrentThreadId()); + asprintf(thread, "%x", GetCurrentThreadId()); +#else + bannerLen = asprintf(banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%x] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), (unsigned int)pthread_self()); + asprintf(thread, "%lx", pthread_self()); +#endif + asprintf(time, "%04d-%02d-%02d %02d:%02d:%02d.%03d", year, month, day, hour, minute, second, ms); +} + +static void _logToStderr(char *banner, const char *message, size_t length) { +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI + struct iovec v[3]; + v[0].iov_base = banner; + v[0].iov_len = banner ? strlen(banner) : 0; + v[1].iov_base = (char *)message; + v[1].iov_len = length; + v[2].iov_base = "\n"; + v[2].iov_len = (message[length - 1] != '\n') ? 1 : 0; + int nv = (v[0].iov_base ? 1 : 0) + 1 + (v[2].iov_len ? 1 : 0); + static CFLock_t lock = CFLockInit; + __CFLock(&lock); + writev(STDERR_FILENO, v[0].iov_base ? v : v + 1, nv); + __CFUnlock(&lock); +#elif DEPLOYMENT_TARGET_WINDOWS + size_t bufLen = bannerLen + length + 1; + char *buf = (char *)malloc(sizeof(char) * bufLen); + if (banner) { + // Copy the banner into the debug string + memmove_s(buf, bufLen, banner, bannerLen); + + // Copy the message into the debug string + strcpy_s(buf + bannerLen, bufLen - bannerLen, message); + } else { + strcpy_s(buf, bufLen, message); + } + buf[bufLen - 1] = '\0'; + fprintf_s(stderr, "%s\n", buf); + // This Win32 API call only prints when a debugger is active + // OutputDebugStringA(buf); + free(buf); +#else + size_t bannerLen = strlen(banner); + size_t bufLen = bannerLen + length + 1; + char *buf = (char *)malloc(sizeof(char) * bufLen); + if (banner) { + // Copy the banner into the debug string + memmove(buf, banner, bannerLen); + + // Copy the message into the debug string + strncpy(buf + bannerLen, message, bufLen - bannerLen); + } else { + strncpy(buf, message, bufLen); + } + buf[bufLen - 1] = '\0'; + fprintf(stderr, "%s\n", buf); + free(buf); +#endif +} + static void __CFLogCString(int32_t lev, const char *message, size_t length, char withBanner) { char *banner = NULL; char *time = NULL; char *thread = NULL; - char *uid = NULL; int bannerLen; bannerLen = 0; -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD + // The banner path may use CF functions, but the rest of this function should not. It may be called at times when CF is not fully setup or torn down. if (withBanner) { - double dummy; - CFAbsoluteTime at = CFAbsoluteTimeGetCurrent(); - time_t tv = floor(at + kCFAbsoluteTimeIntervalSince1970); - struct tm mine; - localtime_r(&tv, &mine); - int32_t year = mine.tm_year + 1900; - int32_t month = mine.tm_mon + 1; - int32_t day = mine.tm_mday; - int32_t hour = mine.tm_hour; - int32_t minute = mine.tm_min; - int32_t second = mine.tm_sec; - int32_t ms = (int32_t)floor(1000.0 * modf(at, &dummy)); -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED - uint64_t tid = 0; - if (0 != pthread_threadid_np(NULL, &tid)) tid = pthread_mach_thread_np(pthread_self()); - asprintf(&banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%llu] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), tid); - asprintf(&thread, "%x", pthread_mach_thread_np(pthread_self())); -#elif DEPLOYMENT_TARGET_WINDOWS - bannerLen = asprintf(&banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%x] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), GetCurrentThreadId()); - asprintf(&thread, "%x", GetCurrentThreadId()); -#else - bannerLen = asprintf(&banner, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s[%d:%x] ", year, month, day, hour, minute, second, ms, *_CFGetProgname(), getpid(), (unsigned int)pthread_self()); - asprintf(&thread, "%lx", pthread_self()); -#endif - asprintf(&time, "%04d-%02d-%02d %02d:%02d:%02d.%03d", year, month, day, hour, minute, second, ms); + _populateBanner(&banner, &time, &thread, &bannerLen); + } + + _logToStderr(banner, message, length); + + if (thread) free(thread); + if (time) free(time); + if (banner) free(banner); +} +static void __CFLogCStringLegacy(int32_t lev, const char *message, size_t length, char withBanner) { + char *banner = NULL; + char *time = NULL; + char *uid = NULL; + char *thread = NULL; + int bannerLen; + bannerLen = 0; + + // The banner path may use CF functions, but the rest of this function should not. It may be called at times when CF is not fully setup or torn down. + if (withBanner) { + _populateBanner(&banner, &time, &thread, &bannerLen); } + #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated" uid_t euid; __CFGetUGIDs(&euid, NULL); asprintf(&uid, "%d", euid); - aslclient asl = asl_open(NULL, __CFBundleMainID[0] ? __CFBundleMainID : "com.apple.console", ASL_OPT_NO_DELAY); + aslclient asl = asl_open(NULL, (__CFBundleMainID && __CFBundleMainID[0]) ? __CFBundleMainID : "com.apple.console", ASL_OPT_NO_DELAY); aslmsg msg = asl_new(ASL_TYPE_MSG); asl_set(msg, "CFLog Local Time", time); // not to be documented, not public API asl_set(msg, "CFLog Thread", thread); // not to be documented, not public API @@ -654,56 +789,11 @@ static void __CFLogCString(int32_t lev, const char *message, size_t length, char asl_send(asl, msg); asl_free(msg); asl_close(asl); -#endif +#pragma GCC diagnostic pop #endif // DEPLOYMENT_TARGET - - if (also_do_stderr()) { -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI - struct iovec v[3]; - v[0].iov_base = banner; - v[0].iov_len = banner ? strlen(banner) : 0; - v[1].iov_base = (char *)message; - v[1].iov_len = length; - v[2].iov_base = "\n"; - v[2].iov_len = (message[length - 1] != '\n') ? 1 : 0; - int nv = (v[0].iov_base ? 1 : 0) + 1 + (v[2].iov_len ? 1 : 0); - static CFLock_t lock = CFLockInit; - __CFLock(&lock); - writev(STDERR_FILENO, v[0].iov_base ? v : v + 1, nv); - __CFUnlock(&lock); -#elif DEPLOYMENT_TARGET_WINDOWS - size_t bufLen = bannerLen + length + 1; - char *buf = (char *)malloc(sizeof(char) * bufLen); - if (banner) { - // Copy the banner into the debug string - memmove_s(buf, bufLen, banner, bannerLen); - - // Copy the message into the debug string - strcpy_s(buf + bannerLen, bufLen - bannerLen, message); - } else { - strcpy_s(buf, bufLen, message); - } - buf[bufLen - 1] = '\0'; - fprintf_s(stderr, "%s\n", buf); - // This Win32 API call only prints when a debugger is active - // OutputDebugStringA(buf); - free(buf); -#else - size_t bufLen = bannerLen + length + 1; - char *buf = (char *)malloc(sizeof(char) * bufLen); - if (banner) { - // Copy the banner into the debug string - memmove(buf, banner, bannerLen); - - // Copy the message into the debug string - strncpy(buf + bannerLen, message, bufLen - bannerLen); - } else { - strncpy(buf, message, bufLen); - } - buf[bufLen - 1] = '\0'; - fprintf(stderr, "%s\n", buf); - free(buf); -#endif + + if (also_do_stderr(_cf_logging_style_legacy)) { + _logToStderr(banner, message, length); } if (thread) free(thread); @@ -713,7 +803,7 @@ static void __CFLogCString(int32_t lev, const char *message, size_t length, char } -CF_EXPORT void _CFLogvEx2(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, int32_t lev, CFStringRef format, va_list args) { +static void _CFLogvEx2Predicate(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, int32_t lev, CFStringRef format, va_list args, _cf_logging_style loggingStyle) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI uintptr_t val = (uintptr_t)_CFGetTSD(__CFTSDKeyIsInCFLog); if (3 < val) return; // allow up to 4 nested invocations @@ -727,7 +817,15 @@ CF_EXPORT void _CFLogvEx2(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, c size_t len = strlen(buf); // silently ignore 0-length or really large messages, and levels outside the valid range if (converted && !(len <= 0 || (1 << 24) < len) && !(lev < ASL_LEVEL_EMERG || ASL_LEVEL_DEBUG < lev)) { - (logit ? logit : __CFLogCString)(lev, buf, len, 1); + if (logit) { + logit(lev, buf, len, 1); + } + else if (loggingStyle == _cf_logging_style_os_log) { + __CFLogCString(lev, buf, len, 1); + } + else if (loggingStyle == _cf_logging_style_legacy) { + __CFLogCStringLegacy(lev, buf, len, 1); + } } } if (buf) free(buf); @@ -736,9 +834,14 @@ CF_EXPORT void _CFLogvEx2(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, c _CFSetTSD(__CFTSDKeyIsInCFLog, (void *)val, NULL); #endif } - + +CF_EXPORT void _CFLogvEx2(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, int32_t lev, CFStringRef format, va_list args) { + _CFLogvEx2Predicate(logit, copyDescFunc, contextDescFunc, formatOptions, lev, format, args, _cf_logging_style_legacy); +} + CF_EXPORT void _CFLogvEx3(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, int32_t lev, CFStringRef format, va_list args, void *addr) { - _CFLogvEx2(logit, copyDescFunc, contextDescFunc, formatOptions, lev, format, args); + _CFLogvEx2Predicate(logit, copyDescFunc, contextDescFunc, formatOptions, lev, format, args, _cf_logging_style_legacy); + } CF_EXPORT void _CFLogvEx(CFLogFunc logit, CFStringRef (*copyDescFunc)(void *, const void *), CFDictionaryRef formatOptions, int32_t lev, CFStringRef format, va_list args) { @@ -752,22 +855,22 @@ CF_PRIVATE void _CFLogSimple(int32_t lev, char *format, ...) { char formattedMessage[1024]; int length = vsnprintf(formattedMessage, 1024, format, args); if (length > 0) { - __CFLogCString(lev, formattedMessage, length, 0); + __CFLogCStringLegacy(lev, formattedMessage, length, 0); } va_end(args); } -void CFLog(CFLogLevel lev, CFStringRef format, ...) { +void CFLog(int32_t lev, CFStringRef format, ...) { va_list args; va_start(args, format); _CFLogvEx3(NULL, NULL, NULL, NULL, lev, format, args, __builtin_return_address(0)); va_end(args); } - + #if DEPLOYMENT_RUNTIME_SWIFT // Temporary as Swift cannot import varag C functions void CFLog1(CFLogLevel lev, CFStringRef message) { -#ifdef __ANDROID__ +#if TARGET_OS_ANDROID android_LogPriority priority = ANDROID_LOG_UNKNOWN; switch (lev) { case kCFLogLevelEmergency: priority = ANDROID_LOG_FATAL; break; @@ -779,25 +882,25 @@ void CFLog1(CFLogLevel lev, CFStringRef message) { case kCFLogLevelInfo: priority = ANDROID_LOG_INFO; break; case kCFLogLevelDebug: priority = ANDROID_LOG_DEBUG; break; } - + if (message == NULL) message = CFSTR("NULL"); - + char stack_buffer[1024] = { 0 }; char *buffer = &stack_buffer[0]; CFStringEncoding encoding = kCFStringEncodingUTF8; CFIndex maxLength = CFStringGetMaximumSizeForEncoding(CFStringGetLength(message), encoding) + 1; const char *tag = "Swift"; // process name not available from NDK - + if (maxLength > sizeof(stack_buffer) / sizeof(stack_buffer[0])) { buffer = calloc(sizeof(char), maxLength); if (!buffer) { - __android_log_print(ANDROID_LOG_ERROR, tag, "Unable to allocate %d bytes for log message - truncating.", (int)maxLength); + - __android_log_print(ANDROID_LOG_ERROR, tag, "Unable to allocate %d bytes for log message - truncating.", (int)axLength); maxLength = sizeof(stack_buffer) / sizeof(stack_buffer[0]); buffer = &stack_buffer[0]; buffer[maxLength-1] = '\000'; } } - + if (maxLength == 1) { // was crashing with zero length strings // https://bugs.swift.org/browse/SR-2666 @@ -805,9 +908,9 @@ void CFLog1(CFLogLevel lev, CFStringRef message) { } else CFStringGetCString(message, buffer, maxLength, encoding); - + __android_log_print(priority, tag, "%s", buffer); - + if (buffer != &stack_buffer[0]) free(buffer); #else CFLog(lev, CFSTR("%@"), message); @@ -815,6 +918,8 @@ void CFLog1(CFLogLevel lev, CFStringRef message) { } #endif + + #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED kern_return_t _CFDiscorporateMemoryAllocate(CFDiscorporateMemory *hm, size_t size, bool purgeable) { @@ -891,11 +996,6 @@ void _CFSuddenTerminationEnable(void) { if (__CFProcessKillingDisablingCount==0 && !__CFProcessKillingWasTurnedOn) { __CFProcessKillingWasTurnedOn = true; } else { - // Mail seems to have sudden termination disabling/enabling imbalance bugs that make _vproc_transaction_end() kill the app but we don't want that to prevent our submission of the fix 6382488. - if (__CFProcessKillingDisablingCount>=0) { - } else { - CFLog(kCFLogLevelError, CFSTR("-[NSProcessInfo enableSuddenTermination] has been invoked more times than necessary to balance invocations of -[NSProcessInfo disableSuddenTermination]. Ignoring.")); - } } OSSpinLockUnlock(&__CFProcessKillingLock); } @@ -903,9 +1003,6 @@ void _CFSuddenTerminationEnable(void) { void _CFSuddenTerminationExitIfTerminationEnabled(int exitStatus) { // This is for when the caller wants to try to exit quickly if possible but not automatically exit the process when it next becomes clean, because quitting might still be cancelled by the user. OSSpinLockLock(&__CFProcessKillingLock); - // Check _vproc_transaction_count() because other code in the process might go straight to the vproc APIs but also check __CFProcessKillingWasTurnedOn because _vproc_transaction_count() can return 0 when transactions didn't even get enabled. - if (__CFProcessKillingWasTurnedOn) { - } OSSpinLockUnlock(&__CFProcessKillingLock); } @@ -918,7 +1015,6 @@ void _CFSuddenTerminationExitWhenTerminationEnabled(int exitStatus) { } size_t _CFSuddenTerminationDisablingCount(void) { - // Until sudden termination has been really enabled vproc's notion of the count is off by one but we can't just return __CFProcessKillingDisablingCount() because that doesn't take into account stuff that calls the vproc_transaction functions behind our back. return (__CFProcessKillingWasTurnedOn ? 0 : 1); } @@ -1210,26 +1306,72 @@ CF_INLINE UniChar __CFStringGetCharacterFromInlineBufferQuickReverse(CFStringInl return buf->buffer[idx - buf->bufferedRangeStart]; } -/* _CFGetExtensionInfoFromPathComponent finds the range of the primary path extension (if any) for the given path component. If requested, _CFGetExtensionInfoFromPathComponent also finds the secondary path extension (if any) for the given path component. +/* UniCharInitInlineBuffer initializes an in-line buffer to use an array of UniChar with CFStringGetCharacterFromInlineBuffer (and related SPI that use CFStringInlineBuffer). */ -CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) { +CF_INLINE void UniCharInitInlineBuffer(const UniChar *uchars, CFIndex ucharsLength, CFStringInlineBuffer *buf) { + buf->theString = NULL; + buf->rangeToBuffer = CFRangeMake(0, ucharsLength); + buf->directUniCharBuffer = uchars; + buf->directCStringBuffer = NULL; + buf->bufferedRangeStart = buf->bufferedRangeEnd = 0; +} + +// __IsInvalidExtensionCharacter returns true if C is a space, a path separator, or a unicode directional control character +CF_INLINE Boolean __IsInvalidExtensionCharacter(UniChar c) +{ // Unicode directional control characters enum { - UNICHAR_LEFT_TO_RIGHT_EMBEDDING = 0x202a, - UNICHAR_RIGHT_TO_LEFT_EMBEDDING = 0x202b, - UNICHAR_POP_DIRECTIONAL_FORMATTING = 0x202c, - UNICHAR_LEFT_TO_RIGHT_OVERRIDE = 0x202d, - UNICHAR_RIGHT_TO_LEFT_OVERRIDE = 0x202e, + UNICHAR_ARABIC_LETTER_MARK = 0x061c, + UNICHAR_LEFT_TO_RIGHT_MARK = 0x200e, + UNICHAR_RIGHT_TO_LEFT_MARK = 0x200f, + UNICHAR_LEFT_TO_RIGHT_EMBEDDING = 0x202a, + UNICHAR_RIGHT_TO_LEFT_EMBEDDING = 0x202b, + UNICHAR_POP_DIRECTIONAL_FORMATTING = 0x202c, + UNICHAR_LEFT_TO_RIGHT_OVERRIDE = 0x202d, + UNICHAR_RIGHT_TO_LEFT_OVERRIDE = 0x202e, + UNICHAR_LEFT_TO_RIGHT_ISOLATE = 0x2066, + UNICHAR_RIGHT_TO_LEFT_ISOLATE = 0x2067, + UNICHAR_FIRST_STRONG_ISOLATE = 0x2068, + UNICHAR_POP_DIRECTIONAL_ISOLATE = 0x2069, }; + Boolean result; + switch ( c ) { + case (UniChar)' ': + case (UniChar)'/': + case UNICHAR_ARABIC_LETTER_MARK: + case UNICHAR_LEFT_TO_RIGHT_MARK: + case UNICHAR_RIGHT_TO_LEFT_MARK: + case UNICHAR_LEFT_TO_RIGHT_EMBEDDING: + case UNICHAR_RIGHT_TO_LEFT_EMBEDDING: + case UNICHAR_POP_DIRECTIONAL_FORMATTING: + case UNICHAR_LEFT_TO_RIGHT_OVERRIDE: + case UNICHAR_RIGHT_TO_LEFT_OVERRIDE: + case UNICHAR_LEFT_TO_RIGHT_ISOLATE: + case UNICHAR_RIGHT_TO_LEFT_ISOLATE: + case UNICHAR_FIRST_STRONG_ISOLATE: + case UNICHAR_POP_DIRECTIONAL_ISOLATE: + result = true; + break; + + default: + result = false; + break; + } + return ( result ); +} + +/* __GetPathExtensionRangesFromPathComponentBuffer finds the range of the primary path extension (if any) for the given path component. If requested, __GetPathExtensionRangesFromPathComponentBuffer also finds the secondary path extension (if any) for the given path component. + */ +CF_INLINE void __GetPathExtensionRangesFromPathComponentBuffer(CFStringInlineBuffer *buffer, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) { CFRange primaryExtRange = CFRangeMake(kCFNotFound, 0); CFRange secondaryExtRange = CFRangeMake(kCFNotFound, 0); - if ( inName && (outPrimaryExtRange || outSecondaryExtRange) ) { + if ( buffer && (outPrimaryExtRange || outSecondaryExtRange) ) { // - // Look backwards for dots. The dot may not be the first or last character, + // Look backwards for a period. The period may not be the first or last character of the path component, // but otherwise the extension may be of any length and contain any characters - // except period, space, or any unicode directional control character. + // except space, a path separator, or any unicode directional control character. // // The secondary extension is the "apparent" extension the user would see if // the primary extension is hidden. Since this is a security concern, the @@ -1237,12 +1379,10 @@ CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CF // are ignored, since the user might think "foo.txt .app" is a text file if // ".app" is hidden. - CFIndex nameLen = CFStringGetLength( inName ); - CFStringInlineBuffer buffer; - CFStringInitInlineBuffer( inName, &buffer, CFRangeMake( 0, nameLen ) ); + CFIndex nameLen = buffer->rangeToBuffer.length; for ( CFIndex i = nameLen - 1; i > 0; i-- ) { - UniChar c = __CFStringGetCharacterFromInlineBufferQuickReverse( &buffer, i ); + UniChar c = __CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i); if ( (UniChar)'.' == c ) { // Found a dot CFIndex e2i = 0; @@ -1261,11 +1401,11 @@ CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CF CFIndex e2len = 0; // Skip trailing space (one-liner): - for ( --i; i > 0 && __CFStringGetCharacterFromInlineBufferQuickReverse(&buffer, i) == (UniChar)' '; i-- ); + for ( --i; (i > 0) && (__CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i) == (UniChar)' '); i-- ); // Scan apparent extension text for ( ; i > 0; i-- ) { - c = CFStringGetCharacterFromInlineBuffer(&buffer, i); + c = __CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i); if ( ((UniChar)'.' == c) || ((UniChar)' ' == c) ) { break; } @@ -1275,15 +1415,15 @@ CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CF e2i = i + 1; // Skip leading space (one-liner): - for ( ; i > 0 && __CFStringGetCharacterFromInlineBufferQuickReverse( &buffer, i ) == ( UniChar )' '; i-- ); + for ( ; (i > 0) && (__CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i) == (UniChar)' '); i-- ); - if ( i > 0 && __CFStringGetCharacterFromInlineBufferQuickReverse( &buffer, i ) == ( UniChar )'.' && e2len > 0 ) { + if ( (i > 0) && (__CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i) == (UniChar)'.') && (e2len > 0) ) { secondaryExtRange = CFRangeMake( e2i, e2len ); } break; } - else if ( ((UniChar)' ' == c) || ((UniChar)'/' == c) || ((c >= UNICHAR_LEFT_TO_RIGHT_EMBEDDING) && (c <= UNICHAR_RIGHT_TO_LEFT_OVERRIDE)) ) { + else if ( __IsInvalidExtensionCharacter(c) ) { // Found a space, a path separator, or a unicode directional control character -- terminate the loop break; } @@ -1299,6 +1439,80 @@ CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CF } } +/* __ExtensionIsValidToAppend determines if the characters in extension are valid to be appended as an extension. + */ +CF_INLINE Boolean __ExtensionIsValidToAppend(CFStringInlineBuffer *buffer) { + Boolean result; + + if ( buffer && buffer->rangeToBuffer.length ) { + // + // Look backwards for a period. If a period is found, it must not be the + // last character and any characters after the period must be valid in an + // extension, and all characters before the period are considered valid + // (this allow strings like "tar.gz" to be appended as an extension). + // If there's no period, the entire string must be characters valid in an + // extension. The extension may be of any length. + + CFIndex nameLen = buffer->rangeToBuffer.length; + if ( nameLen ) { + result = true; // assume the best + + for ( CFIndex i = nameLen - 1; i >= 0; i-- ) { + UniChar c = __CFStringGetCharacterFromInlineBufferQuickReverse(buffer, i); + if ( (UniChar)'.' == c ) { + // Found a period. If it's the last character, then return false; otherwise true + result = i < nameLen - 1; + break; + } + else if ( __IsInvalidExtensionCharacter(c) ) { + // Found an invalid extension character. Return false. + result = false; + break; + } + } + } + else { + // NOTE: The implementation before we switched to _CFGetPathExtensionRangesFromPathComponent + // allowed an empty string to be appended as an extension. That is not a valid extension. + result = false; + } + } + else { + // no buffer or no extension + result = false; + } + return ( result ); +} + +/* _CFGetExtensionInfoFromPathComponent/_CFGetPathExtensionRangesFromPathComponentUniChars finds the range of the primary path extension (if any) for the given path component. If requested, _CFGetExtensionInfoFromPathComponent/_CFGetPathExtensionRangesFromPathComponentUniChars also finds the secondary path extension (if any) for the given path component. + */ +CF_EXPORT void _CFGetPathExtensionRangesFromPathComponentUniChars(const UniChar *uchars, CFIndex ucharsLength, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) { + CFStringInlineBuffer buffer; + UniCharInitInlineBuffer(uchars, ucharsLength, &buffer); + __GetPathExtensionRangesFromPathComponentBuffer(&buffer, outPrimaryExtRange, outSecondaryExtRange); +} + +CF_EXPORT void _CFGetPathExtensionRangesFromPathComponent(CFStringRef inName, CFRange *outPrimaryExtRange, CFRange *outSecondaryExtRange) { + CFStringInlineBuffer buffer; + CFStringInitInlineBuffer(inName, &buffer, CFRangeMake(0, CFStringGetLength(inName))); + __GetPathExtensionRangesFromPathComponentBuffer(&buffer, outPrimaryExtRange, outSecondaryExtRange); +} + +/* _CFPathExtensionIsValid/_CFExtensionUniCharsIsValidToAppend determines if the characters in extension are valid to be appended as an extension. + */ +CF_EXPORT Boolean _CFExtensionUniCharsIsValidToAppend(const UniChar *uchars, CFIndex ucharsLength) { + CFStringInlineBuffer buffer; + UniCharInitInlineBuffer(uchars, ucharsLength, &buffer); + return ( __ExtensionIsValidToAppend(&buffer) ); +} + +CF_EXPORT Boolean _CFExtensionIsValidToAppend(CFStringRef extension) { + CFStringInlineBuffer buffer; + CFStringInitInlineBuffer(extension, &buffer, CFRangeMake(0, CFStringGetLength(extension))); + return ( __ExtensionIsValidToAppend(&buffer) ); +} + + #if DEPLOYMENT_RUNTIME_SWIFT CFDictionaryRef __CFGetEnvironment() { @@ -1312,7 +1526,7 @@ CFDictionaryRef __CFGetEnvironment() { extern char **environ; char **envp = environ; #elif DEPLOYMENT_TARGET_LINUX -#if !defined(environ) && !defined(__ANDROID__) +#if !defined(environ) && !TARGET_OS_ANDROID #define environ __environ #endif char **envp = environ; diff --git a/CoreFoundation/Base.subproj/CFUtilities.h b/CoreFoundation/Base.subproj/CFUtilities.h index c214236f23..623c86adee 100644 --- a/CoreFoundation/Base.subproj/CFUtilities.h +++ b/CoreFoundation/Base.subproj/CFUtilities.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUtilities.h - Copyright (c) 2005 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2005-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUTILITIES__) diff --git a/CoreFoundation/Base.subproj/CFWindowsUtilities.c b/CoreFoundation/Base.subproj/CFWindowsUtilities.c new file mode 100644 index 0000000000..9f4c0c6c43 --- /dev/null +++ b/CoreFoundation/Base.subproj/CFWindowsUtilities.c @@ -0,0 +1,120 @@ +/* + CFWindowsUtilities.c + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: Tony Parker +*/ + +#if DEPLOYMENT_TARGET_WINDOWS + +#include +#include +#include "CFInternal.h" +#include "CFPriv.h" + +#include + +#include + +CF_EXPORT bool OSAtomicCompareAndSwapPtr(void *oldp, void *newp, void *volatile *dst) +{ + return oldp == InterlockedCompareExchangePointer(dst, newp, oldp); +} + +CF_EXPORT bool OSAtomicCompareAndSwapLong(long oldl, long newl, long volatile *dst) +{ + return oldl == InterlockedCompareExchange(dst, newl, oldl); +} + +CF_EXPORT bool OSAtomicCompareAndSwapPtrBarrier(void *oldp, void *newp, void *volatile *dst) +{ + return oldp == InterlockedCompareExchangePointer(dst, newp, oldp); +} + +CF_EXPORT int32_t OSAtomicDecrement32Barrier(volatile int32_t *dst) +{ + return InterlockedDecrement((volatile long *)dst); +} + +CF_EXPORT int32_t OSAtomicIncrement32Barrier(volatile int32_t *dst) +{ + return InterlockedIncrement((volatile long *)dst); +} + +CF_EXPORT int32_t OSAtomicAdd32Barrier( int32_t theAmount, volatile int32_t *theValue ) { + return (InterlockedExchangeAdd((volatile LONG *)theValue, theAmount) + theAmount); +} + +CF_EXPORT bool OSAtomicCompareAndSwap32Barrier(int32_t oldValue, int32_t newValue, volatile int32_t *theValue) { + return oldValue == InterlockedCompareExchange((long *)theValue, newValue, oldValue); +} + +CF_EXPORT int32_t OSAtomicAdd32( int32_t theAmount, volatile int32_t *theValue ) { + return (InterlockedExchangeAdd((volatile LONG *)theValue, theAmount) + theAmount); +} + +CF_EXPORT int32_t OSAtomicIncrement32(volatile int32_t *theValue) { + return InterlockedIncrement((volatile long *)theValue); +} + +CF_EXPORT int32_t OSAtomicDecrement32(volatile int32_t *theValue) { + return InterlockedDecrement((volatile long *)theValue); +} + +// These 64-bit versions of InterlockedCompareExchange are only available on client Vista and later, so we can't use them (yet). +/* +CF_EXPORT bool OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue ) { + return __oldValue == InterlockedCompareExchange64((volatile LONGLONG *)__theValue, __newValue, __oldValue); +} + +CF_EXPORT bool OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue ) { + return __oldValue == InterlockedCompareExchange64((volatile LONGLONG *)__theValue, __newValue, __oldValue); +} + +CF_EXPORT int64_t OSAtomicAdd64( int64_t __theAmount, volatile int64_t *__theValue ) { + return (InterlockedExchangeAdd64((volatile LONGLONG *)__theValue, __theAmount) + __theAmount); +} + +CF_EXPORT int64_t OSAtomicAdd64Barrier( int64_t __theAmount, volatile int64_t *__theValue ) { + retun (InterlockedExchangeAdd64((volatile LONGLONG *)__theValue, __theAmount) + __theAmount); +} + */ + +void OSMemoryBarrier() { + MemoryBarrier(); +} + +void _CFGetFrameworkPath(wchar_t *path, int maxLength) { +#ifdef _DEBUG + // might be nice to get this from the project file at some point + wchar_t *DLLFileName = L"CoreFoundation_debug.dll"; +#else + wchar_t *DLLFileName = L"CoreFoundation.dll"; +#endif + path[0] = path[1] = 0; + DWORD wResult; + CFIndex idx; + HMODULE ourModule = GetModuleHandleW(DLLFileName); + + CFAssert(ourModule, __kCFLogAssertion, "GetModuleHandle failed"); + + wResult = GetModuleFileNameW(ourModule, path, maxLength); + CFAssert1(wResult > 0, __kCFLogAssertion, "GetModuleFileName failed: %d", GetLastError()); + CFAssert1(wResult < maxLength, __kCFLogAssertion, "GetModuleFileName result truncated: %s", path); + + // strip off last component, the DLL name + for (idx = wResult - 1; idx; idx--) { + if ('\\' == path[idx]) { + path[idx] = '\0'; + break; + } + } +} + + +#endif + diff --git a/CoreFoundation/Base.subproj/CoreFoundation.h b/CoreFoundation/Base.subproj/CoreFoundation.h index adc2789d5f..4e36d8ad32 100644 --- a/CoreFoundation/Base.subproj/CoreFoundation.h +++ b/CoreFoundation/Base.subproj/CoreFoundation.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CoreFoundation.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_COREFOUNDATION__) @@ -94,5 +89,6 @@ #include #endif + #endif /* ! __COREFOUNDATION_COREFOUNDATION__ */ diff --git a/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h b/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h index 0dfc3c5448..5f151955c8 100644 --- a/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h +++ b/CoreFoundation/Base.subproj/CoreFoundation_Prefix.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CoreFoundation_Prefix.h - Copyright (c) 2005 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2005-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #ifndef __COREFOUNDATION_PREFIX_H__ @@ -17,6 +12,21 @@ #define _DARWIN_UNLIMITED_SELECT 1 +#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS) +#if DEPLOYMENT_RUNTIME_SWIFT +#if DEPLOYMENT_ENABLE_LIBDISPATCH +#define __HAS_DISPATCH__ 1 +#else +#define __HAS_DISPATCH__ 0 +#endif +#else +#define __HAS_DISPATCH__ 1 +#endif +#endif +#if DEPLOYMENT_TARGET_LINUX && DEPLOYMENT_RUNTIME_SWIFT && DEPLOYMENT_ENABLE_LIBDISPATCH +#define __HAS_DISPATCH__ 1 +#endif + #include @@ -64,19 +74,12 @@ typedef char * Class; #define CRSetCrashLogMessage(A) do {} while (0) #define CRSetCrashLogMessage2(A) do {} while (0) -#ifndef CF_SWIFT_EXPORT -#if DEPLOYMENT_RUNTIME_SWIFT -#define CF_SWIFT_EXPORT extern -#else -#define CF_SWIFT_EXPORT static -#endif -#endif - #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI -#include -#include +#import +#import #endif + /* This macro creates some helper functions which are useful in dealing with libdispatch: * __ PREFIX Queue -- manages and returns a singleton serial queue * @@ -85,7 +88,7 @@ typedef char * Class; */ #if __HAS_DISPATCH__ - + #define DISPATCH_HELPER_FUNCTIONS(PREFIX, QNAME) \ static dispatch_queue_t __ ## PREFIX ## Queue(void) { \ static volatile dispatch_queue_t __ ## PREFIX ## dq = NULL; \ @@ -97,24 +100,15 @@ static dispatch_queue_t __ ## PREFIX ## Queue(void) { \ } \ } \ return __ ## PREFIX ## dq; \ -} \ +} #else - -#define DISPATCH_HELPER_FUNCTIONS(PREFIX, QNAME) - -#endif - -#define LIBAUTO_STUB 1 -#define LIBAUTO_STUB_BASICS 1 +#define DISPATCH_HELPER_FUNCTIONS(PREFIX, QNAME) -#if __CF_GC_SUPPORT && !__clang_analyzer__ -#define _CF_GC_SUPPORT 1 -#else -#define _CF_GC_SUPPORT 0 #endif - + + // hint to the analyzer that the caller is no longer responsable for the object and that it will be transfered to the reciver that is opaque to the caller #if __clang_analyzer__ #define CF_TRANSFER_OWNERSHIP(obj) (typeof(obj))[(id)obj autorelease] @@ -135,18 +129,6 @@ static dispatch_queue_t __ ## PREFIX ## Queue(void) { \ #else #define CF_RETAIN_BALANCED_ELSEWHERE(obj, identified_location) do { } while (0) #endif - - -#ifndef LIBAUTO_STUB - -#if DEPLOYMENT_TARGET_MACOSX -#include -#endif -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED -#include -#endif - -#endif // LIBAUTO_STUB #if DEPLOYMENT_TARGET_WINDOWS // Compatibility with boolean.h @@ -156,7 +138,7 @@ typedef unsigned int boolean_t; typedef int boolean_t; #endif #endif - + #if DEPLOYMENT_TARGET_FREEBSD #include #include // mode_t @@ -165,7 +147,6 @@ typedef int boolean_t; #if DEPLOYMENT_TARGET_LINUX #define CF_PRIVATE __attribute__((visibility("hidden"))) -#define __strong #define __weak #define strtod_l(a,b,locale) strtod(a,b) @@ -178,11 +159,11 @@ typedef int boolean_t; #include -#ifdef __ANDROID__ +#if TARGET_OS_ANDROID typedef unsigned long fd_mask; #endif - -#if !defined(__ANDROID__) && !TARGET_OS_CYGWIN + +#if !TARGET_OS_ANDROID && !TARGET_OS_CYGWIN CF_INLINE size_t strlcpy(char * dst, const char * src, size_t maxlen) { const size_t srclen = strlen(src); @@ -244,7 +225,7 @@ CF_INLINE uint64_t mach_absolute_time() { } #endif - + #if DEPLOYMENT_TARGET_FREEBSD #define HAVE_STRUCT_TIMESPEC 1 @@ -501,130 +482,8 @@ CF_PRIVATE int asprintf(char **ret, const char *format, ...); #endif -#ifdef LIBAUTO_STUB_BASICS - -CF_INLINE BOOL objc_isAuto(id object) { return 0; } -CF_INLINE uintptr_t _object_getExternalHash(id obj) { - return (uintptr_t)obj; -} - -#endif - -#ifdef LIBAUTO_STUB - -#include - -/* Stubs for functions in libauto. */ - -enum {OBJC_GENERATIONAL = (1 << 0)}; - -enum { - OBJC_RATIO_COLLECTION = (0 << 0), - OBJC_GENERATIONAL_COLLECTION = (1 << 0), - OBJC_FULL_COLLECTION = (2 << 0), - OBJC_EXHAUSTIVE_COLLECTION = (3 << 0), - OBJC_COLLECT_IF_NEEDED = (1 << 3), - OBJC_WAIT_UNTIL_DONE = (1 << 4), -}; - - -enum { - AUTO_TYPE_UNKNOWN = -1, - AUTO_UNSCANNED = (1 << 0), - AUTO_OBJECT = (1 << 1), - AUTO_POINTERS_ONLY = (1 << 2), - AUTO_MEMORY_SCANNED = !AUTO_UNSCANNED, - AUTO_MEMORY_UNSCANNED = AUTO_UNSCANNED, - AUTO_MEMORY_ALL_POINTERS = AUTO_POINTERS_ONLY, - AUTO_MEMORY_ALL_WEAK_POINTERS = (AUTO_UNSCANNED | AUTO_POINTERS_ONLY), - AUTO_OBJECT_SCANNED = AUTO_OBJECT, - AUTO_OBJECT_UNSCANNED = AUTO_OBJECT | AUTO_UNSCANNED, - AUTO_OBJECT_ALL_POINTERS = AUTO_OBJECT | AUTO_POINTERS_ONLY -}; -typedef unsigned long auto_memory_type_t; -typedef struct _auto_zone_t auto_zone_t; -typedef struct auto_weak_callback_block { - struct auto_weak_callback_block *next; - void (*callback_function)(void *arg1, void *arg2); - void *arg1; - void *arg2; -} auto_weak_callback_block_t; - -CF_INLINE void *objc_memmove_collectable(void *a, const void *b, size_t c) { return memmove(a, b, c); } -CF_INLINE void *objc_collectableZone(void) { return 0; } - -CF_INLINE void *auto_zone_allocate_object(void *zone, size_t size, auto_memory_type_t type, int rc, int clear) { return 0; } -CF_INLINE const void *auto_zone_base_pointer(void *zone, const void *ptr) { return 0; } -CF_INLINE void auto_zone_set_scan_exactly(void *zone, void *ptr) {} -CF_INLINE void auto_zone_retain(void *zone, void *ptr) {} -CF_INLINE unsigned int auto_zone_release(void *zone, void *ptr) { return 0; } -CF_INLINE unsigned int auto_zone_retain_count(void *zone, const void *ptr) { return 0; } -CF_INLINE void auto_zone_set_unscanned(void *zone, void *ptr) {} -CF_INLINE void auto_zone_set_nofinalize(void *zone, void *ptr) {} -CF_INLINE int auto_zone_is_finalized(void *zone, const void *ptr) { return 0; } -CF_INLINE size_t auto_zone_size(void *zone, const void *ptr) { return 0; } -CF_INLINE void auto_register_weak_reference(void *zone, const void *referent, void **referrer, uintptr_t *counter, void **listHead, void **listElement) {} -CF_INLINE void auto_unregister_weak_reference(void *zone, const void *referent, void **referrer) {} -CF_INLINE int auto_zone_is_valid_pointer(void *zone, const void *ptr) { return 0; } -CF_INLINE void* auto_read_weak_reference(void *zone, void **referrer) { void *result = *referrer; return result; } -CF_INLINE void auto_assign_weak_reference(void *zone, const void *value, const void **location, auto_weak_callback_block_t *block) { *location = (void *)value; } -CF_INLINE auto_memory_type_t auto_zone_get_layout_type(void *zone, void *ptr) { return AUTO_UNSCANNED; } -CF_INLINE int auto_zone_set_write_barrier(void *zone, const void *dest, const void *new_value) { return false; } - -CF_INLINE void objc_assertRegisteredThreadWithCollector(void) {} -CF_INLINE void objc_registerThreadWithCollector(void) {} - -// from objc-auto.h - -CF_INLINE BOOL objc_atomicCompareAndSwapPtr(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtr((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE BOOL objc_atomicCompareAndSwapPtrBarrier(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtrBarrier((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE BOOL objc_atomicCompareAndSwapGlobal(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtr((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE BOOL objc_atomicCompareAndSwapGlobalBarrier(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtrBarrier((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE BOOL objc_atomicCompareAndSwapInstanceVariable(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtr((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE BOOL objc_atomicCompareAndSwapInstanceVariableBarrier(id predicate, id replacement, volatile id *objectLocation) -{ return OSAtomicCompareAndSwapPtrBarrier((void *)predicate, (void *)replacement, (void * volatile *)objectLocation); } - -CF_INLINE id objc_assign_strongCast(id val, id *dest) -{ return (*dest = val); } - -CF_INLINE id objc_assign_global(id val, id *dest) -{ return (*dest = val); } - -CF_INLINE id objc_assign_ivar(id val, id dest, ptrdiff_t offset) -{ return (*(id*)((char *)dest+offset) = val); } - -//CF_INLINE void *objc_memmove_collectable(void *dst, const void *src, size_t size) { return memmove(dst, src, size); } - -CF_INLINE id objc_read_weak(id *location) -{ return *location; } - -CF_INLINE id objc_assign_weak(id value, id *location) -{ return (*location = value); } - - -CF_INLINE void objc_finalizeOnMainThread(Class cls) { } -CF_INLINE BOOL objc_is_finalized(void *ptr) { return NO; } -CF_INLINE void objc_clear_stack(unsigned long options) { } - -CF_INLINE BOOL objc_collectingEnabled(void) { return NO; } -CF_INLINE void objc_start_collector_thread(void) { } - -CF_INLINE void objc_collect(unsigned long options) { } - -#endif - #if DEPLOYMENT_TARGET_WINDOWS && defined(__cplusplus) } // extern "C" #endif -#endif +#endif // __COREFOUNDATION_PREFIX_H__ diff --git a/CoreFoundation/Base.subproj/ForFoundationOnly.h b/CoreFoundation/Base.subproj/ForFoundationOnly.h index 4dba6fccd6..14dd5a11c5 100644 --- a/CoreFoundation/Base.subproj/ForFoundationOnly.h +++ b/CoreFoundation/Base.subproj/ForFoundationOnly.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* ForFoundationOnly.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ // The header file ForFoundationOnly.h is for the exclusive use of the @@ -35,6 +30,14 @@ #include #include +#ifndef CF_SWIFT_EXPORT +#if DEPLOYMENT_RUNTIME_SWIFT +#define CF_SWIFT_EXPORT extern +#else +#define CF_SWIFT_EXPORT static __attribute__((used)) +#endif +#endif + #define _CF_EXPORT_SCOPE_BEGIN \ CF_EXTERN_C_BEGIN \ CF_ASSUME_NONNULL_BEGIN \ @@ -59,12 +62,8 @@ CF_IMPLICIT_BRIDGING_DISABLED #include #endif - -#if INCLUDE_OBJC -#include -#endif -#if DEPLOYMENT_TARGET_MACOSX && !LIBAUTO_STUB -#include +#if (INCLUDE_OBJC || DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS) && !DEPLOYMENT_RUNTIME_SWIFT +#import #endif // ---- CFBundle material ---------------------------------------- @@ -84,14 +83,15 @@ CF_EXPORT const CFStringRef _kCFBundleResolvedPathKey; CF_EXPORT const CFStringRef _kCFBundlePrincipalClassKey; #if __BLOCKS__ -CF_EXPORT CFTypeRef _CFBundleCopyFindResources(CFBundleRef _Nullable bundle, CFURLRef _Nullable bundleURL, CFArrayRef _Nullable _unused_pass_null_, CFStringRef _Nullable resourceName, CFStringRef resourceType, CFStringRef subPath, CFStringRef _Nullable lproj, Boolean returnArray, Boolean localized, Boolean (^_Nullable predicate)(CFStringRef filename, Boolean *stop)); +CF_EXPORT CFTypeRef _CFBundleCopyFindResources(CFBundleRef _Nullable bundle, CFURLRef _Nullable bundleURL, CFArrayRef _Nullable _unused_pass_null_, CFStringRef _Nullable resourceName, CFStringRef _Nullable resourceType, CFStringRef _Nullable subPath, CFStringRef _Nullable lproj, Boolean returnArray, Boolean localized, Boolean (^_Nullable predicate)(CFStringRef filename, Boolean *_Nullable stop)); #endif CF_EXPORT Boolean _CFBundleLoadExecutableAndReturnError(CFBundleRef bundle, Boolean forceGlobal, CFErrorRef *error); -CF_EXPORT CFErrorRef _CFBundleCreateError(CFAllocatorRef allocator, CFBundleRef bundle, CFIndex code); +CF_EXPORT CFErrorRef _CFBundleCreateError(CFAllocatorRef _Nullable allocator, CFBundleRef bundle, CFIndex code); _CF_EXPORT_SCOPE_END + // ---- CFPreferences material ---------------------------------------- #define DEBUG_PREFERENCES_MEMORY 0 @@ -105,12 +105,12 @@ _CF_EXPORT_SCOPE_BEGIN extern void _CFPreferencesPurgeDomainCache(void); typedef struct { - void *_Null_unspecified (*_Null_unspecified createDomain)(CFAllocatorRef allocator, CFTypeRef context); - void (*_Null_unspecified freeDomain)(CFAllocatorRef allocator, CFTypeRef context, void *domain); + void *_Null_unspecified (*_Null_unspecified createDomain)(CFAllocatorRef _Nullable allocator, CFTypeRef context); + void (*_Null_unspecified freeDomain)(CFAllocatorRef _Nullable allocator, CFTypeRef context, void *domain); CFTypeRef _Null_unspecified (*_Null_unspecified fetchValue)(CFTypeRef context, void *domain, CFStringRef key); // Caller releases void (*_Null_unspecified writeValue)(CFTypeRef context, void *domain, CFStringRef key, CFTypeRef value); Boolean (*_Null_unspecified synchronize)(CFTypeRef context, void *domain); - void (*_Null_unspecified getKeysAndValues)(CFAllocatorRef alloc, CFTypeRef context, void *domain, void *_Null_unspecified * _Null_unspecified buf[], CFIndex *numKeyValuePairs); + void (*_Null_unspecified getKeysAndValues)(CFAllocatorRef _Nullable alloc, CFTypeRef context, void *domain, void *_Null_unspecified * _Null_unspecified buf[], CFIndex *numKeyValuePairs); CFDictionaryRef _Null_unspecified (*_Null_unspecified copyDomainDictionary)(CFTypeRef context, void *domain); /* HACK - see comment on _CFPreferencesDomainSetIsWorldReadable(), below */ void (*setIsWorldReadable)(CFTypeRef context, void *domain, Boolean isWorldReadable); @@ -166,15 +166,20 @@ CF_EXPORT void _CFApplicationPreferencesRemoveDomain(_CFApplicationPreferences * CF_EXPORT CFTypeRef _Nullable _CFApplicationPreferencesSearchDownToDomain(_CFApplicationPreferences *self, CFPreferencesDomainRef stopper, CFStringRef key); + _CF_EXPORT_SCOPE_END + + // ---- CFString material ---------------------------------------- +#include + #define NSSTRING_BOUNDSERROR \ [NSException raise:NSRangeException format:@"%@: Range or index out of bounds", __CFExceptionProem((id)self, _cmd)] #define NSSTRING_RANGEERROR(range, len) \ - [NSException raise:NSRangeException format:@"%@: Range {%lu, %lu} out of bounds; string length %lu", __CFExceptionProem((id)self, _cmd), (unsigned long)range.location, (unsigned long)range.length, (unsigned long)len] + [NSException raise:NSRangeException format:@"%@: Range {%lu, %lu} out of bounds; string length %lu%s", __CFExceptionProem((id)self, _cmd), (unsigned long)range.location, (unsigned long)range.length, (unsigned long)len, ((range.length == __kCFStringInlineBufferLength) ? " (Note that the indicated range may be smaller than the original range passed to the API)" : "")] #define NSSTRING_INDEXERROR(index, len) \ [NSException raise:NSRangeException format:@"%@: Index %lu out of bounds; string length %lu", __CFExceptionProem((id)self, _cmd), (unsigned long)index, (unsigned long)len] @@ -218,7 +223,7 @@ _CF_EXPORT_SCOPE_BEGIN */ CF_EXPORT CFIndex __CFStringEncodeByteStream(CFStringRef string, CFIndex rangeLoc, CFIndex rangeLen, Boolean generatingExternalFile, CFStringEncoding encoding, uint8_t lossByte, UInt8 *_Nullable buffer, CFIndex max, CFIndex *_Nullable usedBufLen); -CF_EXPORT CFStringRef __CFStringCreateImmutableFunnel2(CFAllocatorRef alloc, const void *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean possiblyExternalFormat, Boolean tryToReduceUnicode, Boolean hasLengthByte, Boolean hasNullByte, Boolean noCopy, CFAllocatorRef contentsDeallocator); +CF_EXPORT CFStringRef __CFStringCreateImmutableFunnel2(CFAllocatorRef _Nullable alloc, const void *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean possiblyExternalFormat, Boolean tryToReduceUnicode, Boolean hasLengthByte, Boolean hasNullByte, Boolean noCopy, CFAllocatorRef _Nullable contentsDeallocator); CF_EXPORT void __CFStringAppendBytes(CFMutableStringRef str, const char *cStr, CFIndex appendedLength, CFStringEncoding encoding); @@ -293,8 +298,8 @@ typedef struct { /* A simple struct to maintain ASCII/Unicode versions of t !!! If the stream is Unicode and has no BOM, the data is assumed to be big endian! Could be trouble on Intel if someone didn't follow that assumption. !!! __CFStringDecodeByteStream2() needs to be deprecated and removed post-Jaguar. */ -CF_EXPORT Boolean __CFStringDecodeByteStream2(const UInt8 *bytes, UInt32 len, CFStringEncoding encoding, Boolean alwaysUnicode, CFVarWidthCharBuffer *buffer, Boolean *useClientsMemoryPtr); -CF_EXPORT Boolean __CFStringDecodeByteStream3(const UInt8 *bytes, CFIndex len, CFStringEncoding encoding, Boolean alwaysUnicode, CFVarWidthCharBuffer *buffer, Boolean *useClientsMemoryPtr, UInt32 converterFlags); +CF_EXPORT Boolean __CFStringDecodeByteStream2(const UInt8 *bytes, UInt32 len, CFStringEncoding encoding, Boolean alwaysUnicode, CFVarWidthCharBuffer *buffer, Boolean *_Nullable useClientsMemoryPtr); +CF_EXPORT Boolean __CFStringDecodeByteStream3(const UInt8 *bytes, CFIndex len, CFStringEncoding encoding, Boolean alwaysUnicode, CFVarWidthCharBuffer *buffer, Boolean *_Nullable useClientsMemoryPtr, UInt32 converterFlags); /* Convert single byte to Unicode; assumes one-to-one correspondence (that is, can only be used with 1-byte encodings). You can use the function if it's not NULL. @@ -339,11 +344,11 @@ CF_INLINE UniChar __CFStringGetCharacterFromInlineBufferQuick(CFStringInlineBuff /* These two allow specifying an alternate description function (instead of CFCopyDescription); used by NSString */ -CF_EXPORT void _CFStringAppendFormatAndArgumentsAux(CFMutableStringRef outputString, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFDictionaryRef formatOptions, CFStringRef formatString, va_list args); -CF_EXPORT CFStringRef _CFStringCreateWithFormatAndArgumentsAux(CFAllocatorRef alloc, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFDictionaryRef formatOptions, CFStringRef format, va_list arguments); +CF_EXPORT void _CFStringAppendFormatAndArgumentsAux(CFMutableStringRef outputString, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFDictionaryRef _Nullable formatOptions, CFStringRef formatString, va_list args); +CF_EXPORT CFStringRef _CFStringCreateWithFormatAndArgumentsAux(CFAllocatorRef _Nullable alloc, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFDictionaryRef _Nullable formatOptions, CFStringRef format, va_list arguments); -CF_EXPORT void _CFStringAppendFormatAndArgumentsAux2(CFMutableStringRef outputString, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFStringRef _Nonnull (*_Nullable contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, CFStringRef formatString, va_list args); -CF_EXPORT CFStringRef _CFStringCreateWithFormatAndArgumentsAux2(CFAllocatorRef alloc, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFStringRef _Nonnull (*_Nullable contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, CFStringRef format, va_list arguments); +CF_EXPORT void _CFStringAppendFormatAndArgumentsAux2(CFMutableStringRef outputString, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFStringRef _Nonnull (*_Nullable contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef _Nullable formatOptions, CFStringRef formatString, va_list args); +CF_EXPORT CFStringRef _CFStringCreateWithFormatAndArgumentsAux2(CFAllocatorRef _Nullable alloc, CFStringRef _Nonnull (*_Nullable copyDescFunc)(void *, const void *loc), CFStringRef _Nonnull (*_Nullable contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef _Nullable formatOptions, CFStringRef format, va_list arguments); /* For NSString (and NSAttributedString) usage, mutate with isMutable check */ @@ -367,6 +372,7 @@ CF_EXPORT CFHashCode CFStringHashCharacters(const UniChar *characters, CFIndex l CF_EXPORT CFHashCode CFStringHashNSString(CFStringRef str); CF_EXPORT CFHashCode CFHashBytes(uint8_t *bytes, CFIndex length); + _CF_EXPORT_SCOPE_END @@ -374,7 +380,7 @@ _CF_EXPORT_SCOPE_END _CF_EXPORT_SCOPE_BEGIN typedef const struct CF_BRIDGED_TYPE(_NSKeyedArchiverUID) __CFKeyedArchiverUID * CFKeyedArchiverUIDRef; CF_EXPORT CFTypeID _CFKeyedArchiverUIDGetTypeID(void); -CF_EXPORT CFKeyedArchiverUIDRef _CFKeyedArchiverUIDCreate(CFAllocatorRef allocator, uint32_t value); +CF_EXPORT CFKeyedArchiverUIDRef _Nullable _CFKeyedArchiverUIDCreate(CFAllocatorRef _Nullable allocator, uint32_t value); CF_EXPORT uint32_t _CFKeyedArchiverUIDGetValue(CFKeyedArchiverUIDRef uid); @@ -413,8 +419,8 @@ typedef struct { CF_EXPORT bool __CFBinaryPlistGetTopLevelInfo(const uint8_t *databytes, uint64_t datalen, uint8_t *marker, uint64_t *offset, CFBinaryPlistTrailer *trailer); CF_EXPORT bool __CFBinaryPlistGetOffsetForValueFromArray2(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFIndex idx, uint64_t *offset, CFMutableDictionaryRef objects); -CF_EXPORT bool __CFBinaryPlistGetOffsetForValueFromDictionary3(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFTypeRef key, uint64_t *koffset, uint64_t *voffset, Boolean unused, CFMutableDictionaryRef objects); -CF_EXPORT bool __CFBinaryPlistCreateObject(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFAllocatorRef allocator, CFOptionFlags mutabilityOption, CFMutableDictionaryRef objects, CFPropertyListRef _Nullable * _Nonnull plist); +CF_EXPORT bool __CFBinaryPlistGetOffsetForValueFromDictionary3(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFTypeRef key, uint64_t *_Nullable koffset, uint64_t *_Nullable voffset, Boolean unused, CFMutableDictionaryRef objects); +CF_EXPORT bool __CFBinaryPlistCreateObject(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFAllocatorRef _Nullable allocator, CFOptionFlags mutabilityOption, CFMutableDictionaryRef objects, CFPropertyListRef _Nullable * _Nonnull plist); CF_EXPORT CFIndex __CFBinaryPlistWriteToStream(CFPropertyListRef plist, CFTypeRef stream); CF_EXPORT CFIndex __CFBinaryPlistWriteToStreamWithEstimate(CFPropertyListRef plist, CFTypeRef stream, uint64_t estimate); // will be removed soon CF_EXPORT CFIndex __CFBinaryPlistWriteToStreamWithOptions(CFPropertyListRef plist, CFTypeRef stream, uint64_t estimate, CFOptionFlags options); // will be removed soon @@ -422,9 +428,9 @@ CF_EXPORT CFIndex __CFBinaryPlistWrite(CFPropertyListRef plist, CFTypeRef stream // ---- Used by property list parsing in Foundation -CF_EXPORT CFTypeRef _CFPropertyListCreateFromXMLData(CFAllocatorRef allocator, CFDataRef xmlData, CFOptionFlags option, CFStringRef _Nullable * _Nullable errorString, Boolean allowNewTypes, CFPropertyListFormat *format); +CF_EXPORT CFTypeRef _CFPropertyListCreateFromXMLData(CFAllocatorRef _Nullable allocator, CFDataRef xmlData, CFOptionFlags option, CFStringRef _Nullable * _Nullable errorString, Boolean allowNewTypes, CFPropertyListFormat *_Nullable format); -CF_EXPORT CFTypeRef _CFPropertyListCreateFromXMLString(CFAllocatorRef allocator, CFStringRef xmlString, CFOptionFlags option, CFStringRef _Nullable * _Nullable errorString, Boolean allowNewTypes, CFPropertyListFormat *format); +CF_EXPORT CFTypeRef _CFPropertyListCreateFromXMLString(CFAllocatorRef _Nullable allocator, CFStringRef xmlString, CFOptionFlags option, CFStringRef _Nullable * _Nullable errorString, Boolean allowNewTypes, CFPropertyListFormat *_Nullable format); // ---- Sudden Termination material ---------------------------------------- @@ -441,6 +447,7 @@ CF_EXPORT size_t _CFSuddenTerminationDisablingCount(void); // ---- Thread-specific data -------------------------------------------- // Get some thread specific data from a pre-assigned slot. +CF_EXPORT void *_Nullable _CFGetTSDCreateIfNeeded(uint32_t slot, Boolean create); CF_EXPORT void *_Nullable _CFGetTSD(uint32_t slot); // Set some thread specific data in a pre-assigned slot. Don't pick a random value. Make sure you're using a slot that is unique. Pass in a destructor to free this data, or NULL if none is needed. Unlike pthread TSD, the destructor is per-thread. @@ -460,7 +467,7 @@ CF_EXPORT CFErrorUserInfoKeyCallBackBlock CFErrorGetCallBackBlockForDomain(CFStr */ typedef CFTypeRef _Nonnull (*CFErrorUserInfoKeyCallBack)(CFErrorRef err, CFStringRef key); CF_EXPORT void CFErrorSetCallBackForDomain(CFStringRef domainName, CFErrorUserInfoKeyCallBack _Nullable callBack) CF_AVAILABLE(10_5, 2_0); -CF_EXPORT CFErrorUserInfoKeyCallBack CFErrorGetCallBackForDomain(CFStringRef domainName) CF_AVAILABLE(10_5, 2_0); +CF_EXPORT CFErrorUserInfoKeyCallBack _Nullable CFErrorGetCallBackForDomain(CFStringRef domainName) CF_AVAILABLE(10_5, 2_0); #if DEPLOYMENT_TARGET_WINDOWS // ---- Windows-specific material --------------------------------------- @@ -531,19 +538,19 @@ CF_INLINE CFHashCode _CFHashDouble(double d) { return (CFHashCode)(integralHash + (CFHashCode)((d - dInt) * ULONG_MAX)); } -CF_EXPORT void _CFNumberInitBool(CFNumberRef result, Boolean value); -CF_EXPORT void _CFNumberInitInt8(CFNumberRef result, int8_t value); -CF_EXPORT void _CFNumberInitUInt8(CFNumberRef result, uint8_t value); -CF_EXPORT void _CFNumberInitInt16(CFNumberRef result, int16_t value); -CF_EXPORT void _CFNumberInitUInt16(CFNumberRef result, uint16_t value); -CF_EXPORT void _CFNumberInitInt32(CFNumberRef result, int32_t value); -CF_EXPORT void _CFNumberInitUInt32(CFNumberRef result, uint32_t value); -CF_EXPORT void _CFNumberInitInt(CFNumberRef result, long value); -CF_EXPORT void _CFNumberInitUInt(CFNumberRef result, unsigned long value); -CF_EXPORT void _CFNumberInitInt64(CFNumberRef result, int64_t value); -CF_EXPORT void _CFNumberInitUInt64(CFNumberRef result, uint64_t value); -CF_EXPORT void _CFNumberInitFloat(CFNumberRef result, float value); -CF_EXPORT void _CFNumberInitDouble(CFNumberRef result, double value); +CF_SWIFT_EXPORT void _CFNumberInitBool(CFNumberRef result, Boolean value); +CF_SWIFT_EXPORT void _CFNumberInitInt8(CFNumberRef result, int8_t value); +CF_SWIFT_EXPORT void _CFNumberInitUInt8(CFNumberRef result, uint8_t value); +CF_SWIFT_EXPORT void _CFNumberInitInt16(CFNumberRef result, int16_t value); +CF_SWIFT_EXPORT void _CFNumberInitUInt16(CFNumberRef result, uint16_t value); +CF_SWIFT_EXPORT void _CFNumberInitInt32(CFNumberRef result, int32_t value); +CF_SWIFT_EXPORT void _CFNumberInitUInt32(CFNumberRef result, uint32_t value); +CF_SWIFT_EXPORT void _CFNumberInitInt(CFNumberRef result, long value); +CF_SWIFT_EXPORT void _CFNumberInitUInt(CFNumberRef result, unsigned long value); +CF_SWIFT_EXPORT void _CFNumberInitInt64(CFNumberRef result, int64_t value); +CF_SWIFT_EXPORT void _CFNumberInitUInt64(CFNumberRef result, uint64_t value); +CF_SWIFT_EXPORT void _CFNumberInitFloat(CFNumberRef result, float value); +CF_SWIFT_EXPORT void _CFNumberInitDouble(CFNumberRef result, double value); /* These four functions are used by NSError in formatting error descriptions. They take NS or CFError as arguments and return a retained CFString or NULL. */ @@ -553,33 +560,34 @@ CF_EXPORT CFStringRef _CFErrorCreateLocalizedRecoverySuggestion(CFErrorRef err); CF_EXPORT CFStringRef _CFErrorCreateDebugDescription(CFErrorRef err); CF_EXPORT void *__CFURLReservedPtr(CFURLRef url); -CF_EXPORT void __CFURLSetReservedPtr(CFURLRef url, void *ptr); +CF_EXPORT void __CFURLSetReservedPtr(CFURLRef url, void *_Nullable ptr); CF_EXPORT CFStringEncoding _CFURLGetEncoding(CFURLRef url); -CF_EXPORT void _CFURLInitWithFileSystemPathRelativeToBase(CFURLRef url, CFStringRef fileSystemPath, CFURLPathStyle pathStyle, Boolean isDirectory, _Nullable CFURLRef baseURL); -CF_EXPORT Boolean _CFURLInitWithURLString(CFURLRef url, CFStringRef string, Boolean checkForLegalCharacters, _Nullable CFURLRef baseURL); -CF_EXPORT Boolean _CFURLInitAbsoluteURLWithBytes(CFURLRef url, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, _Nullable CFURLRef baseURL); +CF_SWIFT_EXPORT void _CFURLInitWithFileSystemPathRelativeToBase(CFURLRef url, CFStringRef fileSystemPath, CFURLPathStyle pathStyle, Boolean isDirectory, _Nullable CFURLRef baseURL); +CF_SWIFT_EXPORT Boolean _CFURLInitWithURLString(CFURLRef url, CFStringRef string, Boolean checkForLegalCharacters, _Nullable CFURLRef baseURL); +CF_SWIFT_EXPORT Boolean _CFURLInitAbsoluteURLWithBytes(CFURLRef url, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, _Nullable CFURLRef baseURL); CF_EXPORT Boolean _CFRunLoopFinished(CFRunLoopRef rl, CFStringRef mode); CF_EXPORT CFTypeRef _CFRunLoopGet2(CFRunLoopRef rl); +CF_EXPORT Boolean _CFRunLoopIsCurrent(CFRunLoopRef rl); CF_EXPORT CFIndex _CFStreamInstanceSize(void); CF_EXPORT CFReadStreamRef CFReadStreamCreateWithData(CFAllocatorRef alloc, CFDataRef data); #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED - typedef struct { - mach_vm_address_t address; - mach_vm_size_t size; - mach_vm_address_t map_address; - bool purgeable; - bool volatyle; - uintptr_t reserved; - } CFDiscorporateMemory; - - extern kern_return_t _CFDiscorporateMemoryAllocate(CFDiscorporateMemory *hm, size_t size, bool purgeable); - extern kern_return_t _CFDiscorporateMemoryDeallocate(CFDiscorporateMemory *hm); - extern kern_return_t _CFDiscorporateMemoryDematerialize(CFDiscorporateMemory *hm); - extern kern_return_t _CFDiscorporateMemoryMaterialize(CFDiscorporateMemory *hm); +typedef struct { + mach_vm_address_t address; + mach_vm_size_t size; + mach_vm_address_t map_address; + bool purgeable; + bool volatyle; + uintptr_t reserved; +} CFDiscorporateMemory; + +extern kern_return_t _CFDiscorporateMemoryAllocate(CFDiscorporateMemory *hm, size_t size, bool purgeable); +extern kern_return_t _CFDiscorporateMemoryDeallocate(CFDiscorporateMemory *hm); +extern kern_return_t _CFDiscorporateMemoryDematerialize(CFDiscorporateMemory *hm); +extern kern_return_t _CFDiscorporateMemoryMaterialize(CFDiscorporateMemory *hm); #endif enum { @@ -589,23 +597,39 @@ enum { // This is for NSNumberFormatter use only! CF_EXPORT void *_CFNumberFormatterGetFormatter(CFNumberFormatterRef formatter); -CF_EXPORT void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, CFIndex capacity, const uint8_t * _Nullable bytes, CFIndex length, Boolean noCopy); +CF_SWIFT_EXPORT void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, CFIndex capacity, const uint8_t *_Nullable bytes, CFIndex length, Boolean noCopy); CF_EXPORT CFRange _CFDataFindBytes(CFDataRef data, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions); #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI #if !defined(__CFReadTSR) - #define __CFReadTSR() mach_absolute_time() + #define __CFReadTSR() mach_absolute_time() #endif #elif DEPLOYMENT_TARGET_WINDOWS - #if 0 - CF_INLINE UInt64 __CFReadTSR(void) { - LARGE_INTEGER freq; - QueryPerformanceCounter(&freq); - return freq.QuadPart; - } - #endif +#if 0 +CF_INLINE UInt64 __CFReadTSR(void) { + LARGE_INTEGER freq; + QueryPerformanceCounter(&freq); + return freq.QuadPart; +} #endif +#endif + +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + +/* Identical to CFStringGetFileSystemRepresentation, but returns additional information about the failure. + */ +typedef CF_ENUM(CFIndex, _CFStringFileSystemRepresentationError) { + _kCFStringFileSystemRepresentationErrorNone = 0, // 'characterIndex' is undefined. + _kCFStringFileSystemRepresentationErrorBufferFull, // 'characterIndex' is undefined. + _kCFStringFileSystemRepresentationErrorEmbeddedNull, // 'characterIndex' == index of first NULL character in 'buffer'. + _kCFStringFileSystemRepresentationErrorUnpairedSurrogate // 'characterIndex' == index of first unpaired surrogate in 'string'. +}; +CF_EXPORT _CFStringFileSystemRepresentationError _CFStringGetFileSystemRepresentationWithErrorStatus(CFStringRef string, char *buffer, CFIndex maxBufLen, CFIndex *_Nullable characterIndex); + +#endif + + CF_EXPORT CFIndex __CFProcessorCount(); CF_EXPORT uint64_t __CFMemorySize(); @@ -617,7 +641,7 @@ CF_EXPORT CFTimeInterval CFGetSystemUptime(void); CF_EXPORT CFStringRef CFCopySystemVersionString(void); CF_EXPORT CFDictionaryRef _CFCopySystemVersionDictionary(void); -CF_EXPORT Boolean _CFCalendarInitWithIdentifier(CFCalendarRef calendar, CFStringRef identifier); +CF_SWIFT_EXPORT Boolean _CFCalendarInitWithIdentifier(CFCalendarRef calendar, CFStringRef identifier); CF_EXPORT Boolean _CFCalendarComposeAbsoluteTimeV(CFCalendarRef calendar, /* out */ CFAbsoluteTime *atp, const char *componentDesc, int32_t *vector, int32_t count); CF_EXPORT Boolean _CFCalendarDecomposeAbsoluteTimeV(CFCalendarRef calendar, CFAbsoluteTime at, const char *componentDesc, int32_t *_Nonnull * _Nonnull vector, int32_t count); CF_EXPORT Boolean _CFCalendarAddComponentsV(CFCalendarRef calendar, /* inout */ CFAbsoluteTime *atp, CFOptionFlags options, const char *componentDesc, int32_t *vector, int32_t count); @@ -633,20 +657,26 @@ typedef struct { CF_EXPORT Boolean _CFCalendarGetNextWeekend(CFCalendarRef calendar, _CFCalendarWeekendRange *range); -CF_EXPORT Boolean _CFLocaleInit(CFLocaleRef locale, CFStringRef identifier); +CF_SWIFT_EXPORT Boolean _CFLocaleInit(CFLocaleRef locale, CFStringRef identifier); -CF_EXPORT Boolean _CFTimeZoneInit(CFTimeZoneRef timeZone, CFStringRef name, _Nullable CFDataRef data); +CF_SWIFT_EXPORT Boolean _CFTimeZoneInit(CFTimeZoneRef timeZone, CFStringRef name, _Nullable CFDataRef data); -CF_EXPORT Boolean _CFCharacterSetInitWithCharactersInRange(CFMutableCharacterSetRef cset, CFRange theRange); -CF_EXPORT Boolean _CFCharacterSetInitWithCharactersInString(CFMutableCharacterSetRef cset, CFStringRef theString); -CF_EXPORT Boolean _CFCharacterSetInitMutable(CFMutableCharacterSetRef cset); -CF_EXPORT Boolean _CFCharacterSetInitWithBitmapRepresentation(CFMutableCharacterSetRef cset, CFDataRef theData); +CF_SWIFT_EXPORT Boolean _CFCharacterSetInitWithCharactersInRange(CFMutableCharacterSetRef cset, CFRange theRange); +CF_SWIFT_EXPORT Boolean _CFCharacterSetInitWithCharactersInString(CFMutableCharacterSetRef cset, CFStringRef theString); +CF_SWIFT_EXPORT Boolean _CFCharacterSetInitMutable(CFMutableCharacterSetRef cset); +CF_SWIFT_EXPORT Boolean _CFCharacterSetInitWithBitmapRepresentation(CFMutableCharacterSetRef cset, CFDataRef theData); CF_EXPORT CFIndex __CFCharDigitValue(UniChar ch); CF_EXPORT int _CFOpenFileWithMode(const char *path, int opts, mode_t mode); CF_EXPORT int _CFOpenFile(const char *path, int opts); CF_EXPORT void *_CFReallocf(void *ptr, size_t size); +// The following functions can be used when you know for certain that the types involved are not objc types. For Foundation Only! +CF_EXPORT Boolean _CFNonObjCEqual(CFTypeRef cf1, CFTypeRef cf2); +CF_EXPORT CFTypeRef _CFNonObjCRetain(CFTypeRef cf); +CF_EXPORT void _CFNonObjCRelease(CFTypeRef cf); +CF_EXPORT CFHashCode _CFNonObjCHash(CFTypeRef cf); + _CF_EXPORT_SCOPE_END #endif /* ! __COREFOUNDATION_FORFOUNDATIONONLY__ */ diff --git a/CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h b/CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h index a2e844ad89..e7d3e6fe7b 100644 --- a/CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h +++ b/CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h @@ -51,6 +51,7 @@ struct _NSObjectBridge { CFTypeID (*_cfTypeID)(CFTypeRef object); CFHashCode (*hash)(CFTypeRef object); bool (*isEqual)(CFTypeRef object, CFTypeRef other); + _Nonnull CFTypeRef (*_Nonnull copyWithZone)(_Nonnull CFTypeRef object, _Nullable CFTypeRef zone); }; struct _NSArrayBridge { @@ -94,21 +95,22 @@ struct _NSMutableDictionaryBridge { struct _NSSetBridge { CFIndex (*_Nonnull count)(CFTypeRef obj); - CFIndex (*countForValue)(CFTypeRef set, CFTypeRef value); - bool (*containsValue)(CFTypeRef set, CFTypeRef value); - _Nullable CFTypeRef (*_Nonnull getValue)(CFTypeRef set, CFTypeRef value); + bool (*containsObject)(CFTypeRef set, CFTypeRef value); + _Nullable CFTypeRef (*_Nonnull __getValue)(CFTypeRef set, CFTypeRef value, CFTypeRef key); bool (*getValueIfPresent)(CFTypeRef set, CFTypeRef object, CFTypeRef _Nullable *_Nullable value); - void (*getValues)(CFTypeRef set, CFTypeRef _Nullable *_Nullable values); - void (*apply)(CFTypeRef set, void (*applier)(CFTypeRef value, void *context), void *context); + void (*getObjects)(CFTypeRef set, CFTypeRef _Nullable *_Nullable values); + void (*__apply)(CFTypeRef set, void (*applier)(CFTypeRef value, void *context), void *context); _Nonnull CFTypeRef (*_Nonnull copy)(CFTypeRef obj); + CFIndex (*_Nonnull countForKey)(CFTypeRef obj, CFTypeRef key); + _Nullable CFTypeRef (*_Nonnull member)(CFTypeRef obj, CFTypeRef value); }; struct _NSMutableSetBridge { - void (*addValue)(CFTypeRef set, CFTypeRef value); - void (*replaceValue)(CFTypeRef set, CFTypeRef value); - void (*setValue)(CFTypeRef set, CFTypeRef value); - void (*removeValue)(CFTypeRef set, CFTypeRef value); - void (*removeAllValues)(CFTypeRef set); + void (*addObject)(CFTypeRef set, CFTypeRef value); + void (*replaceObject)(CFTypeRef set, CFTypeRef value); + void (*setObject)(CFTypeRef set, CFTypeRef value); + void (*removeObject)(CFTypeRef set, CFTypeRef value); + void (*removeAllObjects)(CFTypeRef set); }; struct _NSStringBridge { @@ -119,7 +121,7 @@ struct _NSStringBridge { UniChar (*characterAtIndex)(CFTypeRef str, CFIndex idx); void (*getCharacters)(CFTypeRef str, CFRange range, UniChar *buffer); CFIndex (*__getBytes)(CFTypeRef str, CFStringEncoding encoding, CFRange range, uint8_t *_Nullable buffer, CFIndex maxBufLen, CFIndex *_Nullable usedBufLen); - const char *_Nullable (*_Nonnull _fastCStringContents)(CFTypeRef str); + const char *_Nullable (*_Nonnull _fastCStringContents)(CFTypeRef str, bool nullTerminated); const UniChar *_Nullable (*_Nonnull _fastCharacterContents)(CFTypeRef str); bool (*_getCString)(CFTypeRef str, char *buffer, size_t len, UInt32 encoding); bool (*_encodingCantBeStoredInEightBitCFString)(CFTypeRef str); @@ -263,7 +265,6 @@ CF_EXPORT void _cf_uuid_unparse_lower(const _cf_uuid_t uu, _cf_uuid_string_t out CF_EXPORT void _cf_uuid_unparse_upper(const _cf_uuid_t uu, _cf_uuid_string_t out); -CF_EXPORT int32_t _CF_SOCK_STREAM(); extern CFWriteStreamRef _CFWriteStreamCreateFromFileDescriptor(CFAllocatorRef alloc, int fd); #if !__COREFOUNDATION_FORFOUNDATIONONLY__ typedef const struct __CFKeyedArchiverUID * CFKeyedArchiverUIDRef; @@ -283,8 +284,6 @@ CF_EXPORT char *_Nullable *_Nonnull _CFEnviron(void); CF_EXPORT void CFLog1(CFLogLevel lev, CFStringRef message); -CF_EXPORT CFHashCode __CFHashDouble(double d); - CF_EXPORT Boolean _CFIsMainThread(void); CF_EXPORT CFHashCode __CFHashDouble(double d); @@ -303,6 +302,12 @@ CF_EXPORT Boolean _CFCharacterSetIsLongCharacterMember(CFCharacterSetRef theSet, CF_EXPORT CFCharacterSetRef _CFCharacterSetCreateCopy(CFAllocatorRef alloc, CFCharacterSetRef theSet); CF_EXPORT CFMutableCharacterSetRef _CFCharacterSetCreateMutableCopy(CFAllocatorRef alloc, CFCharacterSetRef theSet); +CF_EXPORT CFReadStreamRef CFReadStreamCreateWithData(CFAllocatorRef alloc, CFDataRef data); + +CF_EXPORT _Nullable CFErrorRef _CFReadStreamCopyError(CFReadStreamRef stream); + +CF_EXPORT _Nullable CFErrorRef _CFWriteStreamCopyError(CFWriteStreamRef stream); + _CF_EXPORT_SCOPE_END #endif /* __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ */ diff --git a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h index b0b5e2c021..6d42b87305 100644 --- a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h +++ b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h @@ -77,31 +77,41 @@ #define TARGET_OS_LINUX 0 #define TARGET_OS_WINDOWS 0 #define TARGET_OS_BSD 0 +#define TARGET_OS_ANDROID 0 +#define TARGET_OS_CYGWIN 0 +#elif __ANDROID__ +#define TARGET_OS_DARWIN 0 +#define TARGET_OS_LINUX 1 +#define TARGET_OS_WINDOWS 0 +#define TARGET_OS_BSD 0 +#define TARGET_OS_ANDROID 1 #define TARGET_OS_CYGWIN 0 #elif __linux__ #define TARGET_OS_DARWIN 0 #define TARGET_OS_LINUX 1 #define TARGET_OS_WINDOWS 0 #define TARGET_OS_BSD 0 +#define TARGET_OS_ANDROID 0 #define TARGET_OS_CYGWIN 0 #elif __CYGWIN__ #define TARGET_OS_DARWIN 0 #define TARGET_OS_LINUX 1 #define TARGET_OS_WINDOWS 0 #define TARGET_OS_BSD 0 +#define TARGET_OS_ANDROID 0 #define TARGET_OS_CYGWIN 1 #elif _WIN32 || _WIN64 #define TARGET_OS_DARWIN 0 #define TARGET_OS_LINUX 0 #define TARGET_OS_WINDOWS 1 #define TARGET_OS_BSD 0 -#define TARGET_OS_CYGWIN 0 +#define TARGET_OS_ANDROID 0 #elif __unix__ #define TARGET_OS_DARWIN 0 #define TARGET_OS_LINUX 0 #define TARGET_OS_WINDOWS 0 #define TARGET_OS_BSD 1 -#define TARGET_OS_CYGWIN 0 +#define TARGET_OS_ANDROID 0 #else #error unknown operating system #endif diff --git a/CoreFoundation/Base.subproj/module.modulemap b/CoreFoundation/Base.subproj/module.modulemap index c8365ffe7c..c4174db2d4 100644 --- a/CoreFoundation/Base.subproj/module.modulemap +++ b/CoreFoundation/Base.subproj/module.modulemap @@ -1,9 +1,5 @@ module CoreFoundation [extern_c] [system] { umbrella header "CoreFoundation.h" explicit module CFPlugInCOM { header "CFPlugInCOM.h" } - - export * - module * { - export * - } + } diff --git a/CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap b/CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap index e171285aef..bd86bad575 100644 Binary files a/CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap and b/CoreFoundation/CharacterSets/CFCharacterSetBitmaps.bitmap differ diff --git a/CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data b/CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data index 23d2c5064d..bf0bdd3105 100644 Binary files a/CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data and b/CoreFoundation/CharacterSets/CFUniCharPropertyDatabase.data differ diff --git a/CoreFoundation/CharacterSets/CFUnicodeData-B.mapping b/CoreFoundation/CharacterSets/CFUnicodeData-B.mapping index af5bdc7701..c851efd226 100644 Binary files a/CoreFoundation/CharacterSets/CFUnicodeData-B.mapping and b/CoreFoundation/CharacterSets/CFUnicodeData-B.mapping differ diff --git a/CoreFoundation/CharacterSets/CFUnicodeData-L.mapping b/CoreFoundation/CharacterSets/CFUnicodeData-L.mapping index 8acb0d8c43..3bcc72f2c8 100644 Binary files a/CoreFoundation/CharacterSets/CFUnicodeData-L.mapping and b/CoreFoundation/CharacterSets/CFUnicodeData-L.mapping differ diff --git a/CoreFoundation/Collections.subproj/CFArray.c b/CoreFoundation/Collections.subproj/CFArray.c index b82c6712a6..6a5e3c4cc0 100644 --- a/CoreFoundation/Collections.subproj/CFArray.c +++ b/CoreFoundation/Collections.subproj/CFArray.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFArray.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -46,7 +41,7 @@ struct __CFArray { CFIndex _count; /* number of objects */ CFIndex _mutations; int32_t _mutInProgress; - __strong void *_store; /* can be NULL when MutableDeque */ + void *_store; /* can be NULL when MutableDeque */ }; /* Flag bits */ @@ -61,29 +56,6 @@ enum { /* Bits 2-3 */ __kCFArrayHasCustomCallBacks = 3 /* callbacks are at end of header */ }; -/* - Bits 4 & 5 are reserved for GC use. - Bit 4, if set, indicates that the array is weak. - Bit 5 marks whether finalization has occured and, thus, whether to continue to do special retain/release processing of elements. - */ - -CF_INLINE bool isStrongMemory(CFTypeRef collection) { - return __CFBitfieldGetValue(((const CFRuntimeBase *)collection)->_cfinfo[CF_INFO_BITS], 4, 4) == 0; -} - -CF_INLINE bool isWeakMemory(CFTypeRef collection) { - return __CFBitfieldGetValue(((const CFRuntimeBase *)collection)->_cfinfo[CF_INFO_BITS], 4, 4) != 0; -} - -CF_INLINE bool hasBeenFinalized(CFTypeRef collection) { - return __CFBitfieldGetValue(((const CFRuntimeBase *)collection)->_cfinfo[CF_INFO_BITS], 5, 5) != 0; -} -#if DEPLOYMENT_TARGET_MACOSX -CF_INLINE void markFinalized(CFTypeRef collection) { - __CFBitfieldSetValue(((CFRuntimeBase *)collection)->_cfinfo[CF_INFO_BITS], 5, 5, 1); -} -#endif - CF_INLINE CFIndex __CFArrayGetType(CFArrayRef array) { return __CFBitfieldGetValue(((const CFRuntimeBase *)array)->_cfinfo[CF_INFO_BITS], 1, 0); } @@ -187,38 +159,35 @@ static void __CFArrayReleaseValues(CFArrayRef array, CFRange range, bool release CFIndex idx; switch (__CFArrayGetType(array)) { case __kCFArrayImmutable: - if (NULL != cb->release && 0 < range.length && !hasBeenFinalized(array)) { - // if we've been finalized then we know that - // 1) we're using the standard callback on GC memory - // 2) the slots don't' need to be zeroed + if (NULL != cb->release && 0 < range.length) { struct __CFArrayBucket *buckets = __CFArrayGetBucketsPtr(array); allocator = __CFGetAllocator(array); for (idx = 0; idx < range.length; idx++) { INVOKE_CALLBACK2(cb->release, allocator, buckets[idx + range.location]._item); - buckets[idx + range.location]._item = NULL; // GC: break strong reference. + buckets[idx + range.location]._item = NULL; } } break; case __kCFArrayDeque: { struct __CFArrayDeque *deque = (struct __CFArrayDeque *)array->_store; - if (0 < range.length && NULL != deque && !hasBeenFinalized(array)) { + if (0 < range.length && NULL != deque) { struct __CFArrayBucket *buckets = __CFArrayGetBucketsPtr(array); if (NULL != cb->release) { allocator = __CFGetAllocator(array); for (idx = 0; idx < range.length; idx++) { INVOKE_CALLBACK2(cb->release, allocator, buckets[idx + range.location]._item); - buckets[idx + range.location]._item = NULL; // GC: break strong reference. + buckets[idx + range.location]._item = NULL; } } else { for (idx = 0; idx < range.length; idx++) { - buckets[idx + range.location]._item = NULL; // GC: break strong reference. + buckets[idx + range.location]._item = NULL; } } } if (releaseStorageIfPossible && 0 == range.location && __CFArrayGetCount(array) == range.length) { allocator = __CFGetAllocator(array); - if (NULL != deque) if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) CFAllocatorDeallocate(allocator, deque); - __CFArraySetCount(array, 0); // GC: _count == 0 ==> _store == NULL. + if (NULL != deque) CFAllocatorDeallocate(allocator, deque); + __CFArraySetCount(array, 0); ((struct __CFArray *)array)->_store = NULL; } break; @@ -228,9 +197,9 @@ static void __CFArrayReleaseValues(CFArrayRef array, CFRange range, bool release #if defined(DEBUG) CF_INLINE void __CFArrayValidateRange(CFArrayRef array, CFRange range, const char *func) { - CFAssert(0 <= range.location && range.location <= CFArrayGetCount(array), __kCFLogAssertion, "%s(): range.location index (%d) out of bounds (0, %d)", func, range.location, CFArrayGetCount(array)); - CFAssert(0 <= range.length, __kCFLogAssertion, "%s(): range.length (%d) cannot be less than zero", func, range.length); - CFAssert(range.location + range.length <= CFArrayGetCount(array), __kCFLogAssertion, "%s(): ending index (%d) out of bounds (0, %d)", func, range.location + range.length, CFArrayGetCount(array)); + CFAssert3(0 <= range.location && range.location <= CFArrayGetCount(array), __kCFLogAssertion, "%s(): range.location index (%ld) out of bounds (0, %ld)", func, range.location, CFArrayGetCount(array)); + CFAssert2(0 <= range.length, __kCFLogAssertion, "%s(): range.length (%ld) cannot be less than zero", func, range.length); + CFAssert3(range.location + range.length <= CFArrayGetCount(array), __kCFLogAssertion, "%s(): ending index (%ld) out of bounds (0, %ld)", func, range.location + range.length, CFArrayGetCount(array)); } #else #define __CFArrayValidateRange(a,r,f) @@ -303,28 +272,6 @@ static CFStringRef __CFArrayCopyDescription(CFTypeRef cf) { static void __CFArrayDeallocate(CFTypeRef cf) { CFArrayRef array = (CFArrayRef)cf; BEGIN_MUTATION(array); -#if DEPLOYMENT_TARGET_MACOSX - // Under GC, keep contents alive when we know we can, either standard callbacks or NULL - // if (__CFBitfieldGetValue(cf->info, 5, 4)) return; // bits only ever set under GC - CFAllocatorRef allocator = __CFGetAllocator(array); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - // XXX_PCB keep array intact during finalization. - const CFArrayCallBacks *cb = __CFArrayGetCallBacks(array); - if (cb->retain == NULL && cb->release == NULL) { - END_MUTATION(array); - return; - } - if (cb == &kCFTypeArrayCallBacks || cb->release == kCFTypeArrayCallBacks.release) { - markFinalized(cf); - for (CFIndex idx = 0; idx < __CFArrayGetCount(array); idx++) { - const void *item = CFArrayGetValueAtIndex(array, 0 + idx); - kCFTypeArrayCallBacks.release(kCFAllocatorSystemDefault, item); - } - END_MUTATION(array); - return; - } - } -#endif __CFArrayReleaseValues(array, CFRangeMake(0, __CFArrayGetCount(array)), true); END_MUTATION(array); } @@ -344,7 +291,7 @@ static const CFRuntimeClass __CFArrayClass = { }; CFTypeID CFArrayGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFArrayTypeID = _CFRuntimeRegisterClass(&__CFArrayClass); }); @@ -355,11 +302,6 @@ static CFArrayRef __CFArrayInit(CFAllocatorRef allocator, UInt32 flags, CFIndex struct __CFArray *memory; UInt32 size; __CFBitfieldSetValue(flags, 31, 2, 0); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (!callBacks || (callBacks->retain == NULL && callBacks->release == NULL)) { - __CFBitfieldSetValue(flags, 4, 4, 1); // setWeak - } - } if (__CFArrayCallBacksMatchNull(callBacks)) { __CFBitfieldSetValue(flags, 3, 2, __kCFArrayHasNullCallBacks); } else if (__CFArrayCallBacksMatchCFType(callBacks)) { @@ -383,9 +325,6 @@ static CFArrayRef __CFArrayInit(CFAllocatorRef allocator, UInt32 flags, CFIndex __CFArraySetCount((CFArrayRef)memory, 0); switch (__CFBitfieldGetValue(flags, 1, 0)) { case __kCFArrayImmutable: - if (isWeakMemory(memory)) { // if weak, don't scan - auto_zone_set_unscanned(objc_collectableZone(), memory); - } if (__CFOASafe) __CFSetLastAllocationEventName(memory, "CFArray (immutable)"); break; case __kCFArrayDeque: @@ -407,7 +346,7 @@ static CFArrayRef __CFArrayInit(CFAllocatorRef allocator, UInt32 flags, CFIndex } CF_PRIVATE CFArrayRef __CFArrayCreateTransfer(CFAllocatorRef allocator, const void **values, CFIndex numValues) { - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%d) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); UInt32 flags = __kCFArrayImmutable; __CFBitfieldSetValue(flags, 31, 2, 0); __CFBitfieldSetValue(flags, 3, 2, __kCFArrayHasCFTypeCallBacks); @@ -428,25 +367,21 @@ CF_PRIVATE CFArrayRef __CFArrayCreate0(CFAllocatorRef allocator, const void **va CFArrayRef result; const CFArrayCallBacks *cb; struct __CFArrayBucket *buckets; - CFAllocatorRef bucketsAllocator; - void* bucketsBase; CFIndex idx; - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%d) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); result = __CFArrayInit(allocator, __kCFArrayImmutable, numValues, callBacks); cb = __CFArrayGetCallBacks(result); buckets = __CFArrayGetBucketsPtr(result); - bucketsAllocator = isStrongMemory(result) ? allocator : kCFAllocatorNull; - bucketsBase = CF_IS_COLLECTABLE_ALLOCATOR(bucketsAllocator) ? (void *)auto_zone_base_pointer(objc_collectableZone(), buckets) : NULL; if (NULL != cb->retain) { for (idx = 0; idx < numValues; idx++) { - __CFAssignWithWriteBarrier((void **)&buckets->_item, (void *)INVOKE_CALLBACK2(cb->retain, allocator, *values)); + *((void **)&buckets->_item) = (void *)INVOKE_CALLBACK2(cb->retain, allocator, *values); values++; buckets++; } } else { for (idx = 0; idx < numValues; idx++) { - __CFAssignWithWriteBarrier((void **)&buckets->_item, (void *)*values); + *((void **)&buckets->_item) = (void *)*values; values++; buckets++; } @@ -456,8 +391,8 @@ CF_PRIVATE CFArrayRef __CFArrayCreate0(CFAllocatorRef allocator, const void **va } CF_PRIVATE CFMutableArrayRef __CFArrayCreateMutable0(CFAllocatorRef allocator, CFIndex capacity, const CFArrayCallBacks *callBacks) { - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%d) cannot be less than zero", __PRETTY_FUNCTION__, capacity); - CFAssert(capacity <= LONG_MAX / sizeof(void *), __kCFLogAssertion, "%s(): capacity (%d) is too large for this architecture", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(capacity <= LONG_MAX / sizeof(void *), __kCFLogAssertion, "%s(): capacity (%ld) is too large for this architecture", __PRETTY_FUNCTION__, capacity); return (CFMutableArrayRef)__CFArrayInit(allocator, __kCFArrayDeque, capacity, callBacks); } @@ -465,8 +400,6 @@ CF_PRIVATE CFArrayRef __CFArrayCreateCopy0(CFAllocatorRef allocator, CFArrayRef CFArrayRef result; const CFArrayCallBacks *cb; struct __CFArrayBucket *buckets; - CFAllocatorRef bucketsAllocator; - void* bucketsBase; CFIndex numValues = CFArrayGetCount(array); CFIndex idx; if (CF_IS_OBJC(CFArrayGetTypeID(), array) || CF_IS_SWIFT(CFArrayGetTypeID(), array)) { @@ -475,10 +408,8 @@ CF_PRIVATE CFArrayRef __CFArrayCreateCopy0(CFAllocatorRef allocator, CFArrayRef cb = __CFArrayGetCallBacks(array); } result = __CFArrayInit(allocator, __kCFArrayImmutable, numValues, cb); - cb = __CFArrayGetCallBacks(result); // GC: use the new array's callbacks so we don't leak. + cb = __CFArrayGetCallBacks(result); buckets = __CFArrayGetBucketsPtr(result); - bucketsAllocator = isStrongMemory(result) ? allocator : kCFAllocatorNull; - bucketsBase = CF_IS_COLLECTABLE_ALLOCATOR(bucketsAllocator) ? (void *)auto_zone_base_pointer(objc_collectableZone(), buckets) : NULL; for (idx = 0; idx < numValues; idx++) { const void *value = CFArrayGetValueAtIndex(array, idx); if (NULL != cb->retain) { @@ -577,7 +508,7 @@ const void *CFArrayGetValueAtIndex(CFArrayRef array, CFIndex idx) { CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), const void *, (CFSwiftRef)array, NSArray.objectAtIndex, idx); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), const void *, (NSArray *)array, objectAtIndex:idx); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(0 <= idx && idx < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert2(0 <= idx && idx < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); CHECK_FOR_MUTATION(array); return __CFArrayGetBucketAtIndex(array, idx)->_item; } @@ -595,13 +526,13 @@ void CFArrayGetValues(CFArrayRef array, CFRange range, const void **values) { CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSArray *)array, getObjects:(id *)values range:NSMakeRange(range.location, range.length)); __CFGenericValidateType(array, CFArrayGetTypeID()); __CFArrayValidateRange(array, range, __PRETTY_FUNCTION__); - CFAssert(NULL != values, __kCFLogAssertion, "%s(): pointer to values may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != values, __kCFLogAssertion, "%s(): pointer to values may not be NULL", __PRETTY_FUNCTION__); CHECK_FOR_MUTATION(array); if (0 < range.length) { switch (__CFArrayGetType(array)) { case __kCFArrayImmutable: case __kCFArrayDeque: - objc_memmove_collectable(values, __CFArrayGetBucketsPtr(array) + range.location, range.length * sizeof(struct __CFArrayBucket)); + memmove(values, __CFArrayGetBucketsPtr(array) + range.location, range.length * sizeof(struct __CFArrayBucket)); break; } } @@ -639,7 +570,7 @@ void CFArrayApplyFunction(CFArrayRef array, CFRange range, CFArrayApplierFunctio FAULT_CALLBACK((void **)&(applier)); __CFGenericValidateType(array, CFArrayGetTypeID()); __CFArrayValidateRange(array, range, __PRETTY_FUNCTION__); - CFAssert(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); CHECK_FOR_MUTATION(array); for (idx = 0; idx < range.length; idx++) { const void *item = CFArrayGetValueAtIndex(array, range.location + idx); @@ -680,7 +611,7 @@ void CFArrayAppendValue(CFMutableArrayRef array, const void *value) { CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, addObject:(id)value); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); CHECK_FOR_MUTATION(array); _CFArrayReplaceValues(array, CFRangeMake(__CFArrayGetCount(array), 0), &value, 1); } @@ -689,8 +620,8 @@ void CFArraySetValueAtIndex(CFMutableArrayRef array, CFIndex idx, const void *va CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), void, (CFSwiftRef)array, NSMutableArray.setObject, idx, value); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, setObject:(id)value atIndex:(NSUInteger)idx); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); - CFAssert(0 <= idx && idx <= __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx && idx <= __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); CHECK_FOR_MUTATION(array); if (idx == __CFArrayGetCount(array)) { _CFArrayReplaceValues(array, CFRangeMake(idx, 0), &value, 1); @@ -700,12 +631,12 @@ void CFArraySetValueAtIndex(CFMutableArrayRef array, CFIndex idx, const void *va const CFArrayCallBacks *cb = __CFArrayGetCallBacks(array); CFAllocatorRef allocator = __CFGetAllocator(array); struct __CFArrayBucket *bucket = __CFArrayGetBucketAtIndex(array, idx); - if (NULL != cb->retain && !hasBeenFinalized(array)) { + if (NULL != cb->retain) { value = (void *)INVOKE_CALLBACK2(cb->retain, allocator, value); } old_value = bucket->_item; - __CFAssignWithWriteBarrier((void **)&bucket->_item, (void *)value); // GC: handles deque/CFStorage cases. - if (NULL != cb->release && !hasBeenFinalized(array)) { + __CFAssignWithWriteBarrier((void **)&bucket->_item, (void *)value); + if (NULL != cb->release) { INVOKE_CALLBACK2(cb->release, allocator, old_value); } array->_mutations++; @@ -717,8 +648,8 @@ void CFArrayInsertValueAtIndex(CFMutableArrayRef array, CFIndex idx, const void CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), void, (CFSwiftRef)array, NSMutableArray.insertObject, idx, value); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, insertObject:(id)value atIndex:(NSUInteger)idx); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); - CFAssert(0 <= idx && idx <= __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx && idx <= __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); CHECK_FOR_MUTATION(array); _CFArrayReplaceValues(array, CFRangeMake(idx, 0), &value, 1); } @@ -731,9 +662,9 @@ void CFArrayExchangeValuesAtIndices(CFMutableArrayRef array, CFIndex idx1, CFInd CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), void, (CFSwiftRef)array, NSMutableArray.exchangeObjectAtIndex, idx1, idx2); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(0 <= idx1 && idx1 < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index #1 (%d) out of bounds", __PRETTY_FUNCTION__, idx1); - CFAssert(0 <= idx2 && idx2 < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index #2 (%d) out of bounds", __PRETTY_FUNCTION__, idx2); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx1 && idx1 < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index #1 (%ld) out of bounds", __PRETTY_FUNCTION__, idx1); + CFAssert2(0 <= idx2 && idx2 < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index #2 (%ld) out of bounds", __PRETTY_FUNCTION__, idx2); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); CHECK_FOR_MUTATION(array); BEGIN_MUTATION(array); bucket1 = __CFArrayGetBucketAtIndex(array, idx1); @@ -750,8 +681,8 @@ void CFArrayRemoveValueAtIndex(CFMutableArrayRef array, CFIndex idx) { CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), void, (CFSwiftRef)array, NSMutableArray.removeObjectAtIndex, idx); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, removeObjectAtIndex:(NSUInteger)idx); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); - CFAssert(0 <= idx && idx < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx && idx < __CFArrayGetCount(array), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); CHECK_FOR_MUTATION(array); _CFArrayReplaceValues(array, CFRangeMake(idx, 1), NULL, 0); } @@ -760,7 +691,7 @@ void CFArrayRemoveAllValues(CFMutableArrayRef array) { CF_SWIFT_FUNCDISPATCHV(CFArrayGetTypeID(), void, (CFSwiftRef)array, NSMutableArray.removeAllObjects); CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, removeAllObjects); __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); CHECK_FOR_MUTATION(array); BEGIN_MUTATION(array); __CFArrayReleaseValues(array, CFRangeMake(0, __CFArrayGetCount(array)), true); @@ -795,8 +726,7 @@ static void __CFArrayRepositionDequeRegions(CFMutableArrayRef array, CFRange ran CFIndex capacity = __CFArrayDequeRoundUpCapacity(futureCnt + wiggle); CFIndex size = sizeof(struct __CFArrayDeque) + capacity * sizeof(struct __CFArrayBucket); CFAllocatorRef allocator = __CFGetAllocator(array); - Boolean collectableMemory = CF_IS_COLLECTABLE_ALLOCATOR(allocator); - struct __CFArrayDeque *newDeque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, isStrongMemory(array) ? __kCFAllocatorGCScannedMemory : 0); + struct __CFArrayDeque *newDeque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, 0); if (__CFOASafe) __CFSetLastAllocationEventName(newDeque, "CFArray (store-deque)"); struct __CFArrayBucket *newBuckets = (struct __CFArrayBucket *)((uint8_t *)newDeque + sizeof(struct __CFArrayDeque)); CFIndex oldL = L; @@ -805,11 +735,10 @@ static void __CFArrayRepositionDequeRegions(CFMutableArrayRef array, CFRange ran CFIndex newC0 = newL + A + newCount; newDeque->_leftIdx = newL; newDeque->_capacity = capacity; - if (0 < A) objc_memmove_collectable(newBuckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); - if (0 < C) objc_memmove_collectable(newBuckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); + if (0 < A) memmove(newBuckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); + if (0 < C) memmove(newBuckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); __CFAssignWithWriteBarrier((void **)&array->_store, (void *)newDeque); - if (!collectableMemory && deque) CFAllocatorDeallocate(allocator, deque); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) auto_zone_release(objc_collectableZone(), newDeque); + if (deque) CFAllocatorDeallocate(allocator, deque); //printf("3: array %p store is now %p (%lx)\n", array, array->_store, *(unsigned long *)(array->_store)); return; } @@ -819,8 +748,7 @@ static void __CFArrayRepositionDequeRegions(CFMutableArrayRef array, CFRange ran // inserting: C is smaller and R has room CFIndex oldC0 = L + A + B; CFIndex newC0 = L + A + newCount; - if (0 < C) objc_memmove_collectable(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); - // GrP GC: zero-out newly exposed space on the right, if any + if (0 < C) memmove(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); if (oldC0 > newC0) memset(buckets + newC0 + C, 0, (oldC0 - newC0) * sizeof(struct __CFArrayBucket)); } else if ((numNewElems < 0) || (numNewElems <= L && A <= C)) { // move A // deleting: A is smaller or equal (covers remaining delete cases) @@ -828,8 +756,7 @@ static void __CFArrayRepositionDequeRegions(CFMutableArrayRef array, CFRange ran CFIndex oldL = L; CFIndex newL = L - numNewElems; deque->_leftIdx = newL; - if (0 < A) objc_memmove_collectable(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); - // GrP GC: zero-out newly exposed space on the left, if any + if (0 < A) memmove(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); if (newL > oldL) memset(buckets + oldL, 0, (newL - oldL) * sizeof(struct __CFArrayBucket)); } else { // now, must be inserting, and either: @@ -843,14 +770,12 @@ static void __CFArrayRepositionDequeRegions(CFMutableArrayRef array, CFRange ran CFIndex newC0 = newL + A + newCount; deque->_leftIdx = newL; if (newL < oldL) { - if (0 < A) objc_memmove_collectable(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); - if (0 < C) objc_memmove_collectable(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); - // GrP GC: zero-out newly exposed space on the right, if any + if (0 < A) memmove(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); + if (0 < C) memmove(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); if (oldC0 > newC0) memset(buckets + newC0 + C, 0, (oldC0 - newC0) * sizeof(struct __CFArrayBucket)); } else { - if (0 < C) objc_memmove_collectable(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); - if (0 < A) objc_memmove_collectable(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); - // GrP GC: zero-out newly exposed space on the left, if any + if (0 < C) memmove(buckets + newC0, buckets + oldC0, C * sizeof(struct __CFArrayBucket)); + if (0 < A) memmove(buckets + newL, buckets + oldL, A * sizeof(struct __CFArrayBucket)); if (newL > oldL) memset(buckets + oldL, 0, (newL - oldL) * sizeof(struct __CFArrayBucket)); } } @@ -869,8 +794,8 @@ static void __CFArrayHandleOutOfMemory(CFTypeRef obj, CFIndex numBytes) { void _CFArraySetCapacity(CFMutableArrayRef array, CFIndex cap) { if (CF_IS_OBJC(CFArrayGetTypeID(), array) || CF_IS_SWIFT(CFArrayGetTypeID(), array)) return; __CFGenericValidateType(array, CFArrayGetTypeID()); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); - CFAssert(__CFArrayGetCount(array) <= cap, __kCFLogAssertion, "%s(): desired capacity (%d) is less than count (%d)", __PRETTY_FUNCTION__, cap, __CFArrayGetCount(array)); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert3(__CFArrayGetCount(array) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, __CFArrayGetCount(array)); CHECK_FOR_MUTATION(array); BEGIN_MUTATION(array); // Currently, attempting to set the capacity of an array which is the CFStorage @@ -882,24 +807,22 @@ void _CFArraySetCapacity(CFMutableArrayRef array, CFIndex cap) { CFIndex capacity = __CFArrayDequeRoundUpCapacity(cap); CFIndex size = sizeof(struct __CFArrayDeque) + capacity * sizeof(struct __CFArrayBucket); CFAllocatorRef allocator = __CFGetAllocator(array); - Boolean collectableMemory = CF_IS_COLLECTABLE_ALLOCATOR(allocator); if (NULL == deque) { - deque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, isStrongMemory(array) ? __kCFAllocatorGCScannedMemory : 0); + deque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, 0); if (NULL == deque) __CFArrayHandleOutOfMemory(array, size); if (__CFOASafe) __CFSetLastAllocationEventName(deque, "CFArray (store-deque)"); deque->_leftIdx = capacity / 2; } else { struct __CFArrayDeque *olddeque = deque; CFIndex oldcap = deque->_capacity; - deque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, isStrongMemory(array) ? __kCFAllocatorGCScannedMemory : 0); + deque = (struct __CFArrayDeque *)CFAllocatorAllocate(allocator, size, 0); if (NULL == deque) __CFArrayHandleOutOfMemory(array, size); - objc_memmove_collectable(deque, olddeque, sizeof(struct __CFArrayDeque) + oldcap * sizeof(struct __CFArrayBucket)); - if (!collectableMemory) CFAllocatorDeallocate(allocator, olddeque); + memmove(deque, olddeque, sizeof(struct __CFArrayDeque) + oldcap * sizeof(struct __CFArrayBucket)); + CFAllocatorDeallocate(allocator, olddeque); if (__CFOASafe) __CFSetLastAllocationEventName(deque, "CFArray (store-deque)"); } deque->_capacity = capacity; __CFAssignWithWriteBarrier((void **)&array->_store, (void *)deque); - if (collectableMemory) auto_zone_release(objc_collectableZone(), deque); } END_MUTATION(array); } @@ -910,8 +833,8 @@ void CFArrayReplaceValues(CFMutableArrayRef array, CFRange range, const void **n CF_OBJC_FUNCDISPATCHV(CFArrayGetTypeID(), void, (NSMutableArray *)array, replaceObjectsInRange:NSMakeRange(range.location, range.length) withObjects:(id *)newValues count:(NSUInteger)newCount); __CFGenericValidateType(array, CFArrayGetTypeID()); __CFArrayValidateRange(array, range, __PRETTY_FUNCTION__); - CFAssert(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); - CFAssert(0 <= newCount, __kCFLogAssertion, "%s(): newCount (%d) cannot be less than zero", __PRETTY_FUNCTION__, newCount); + CFAssert1(__CFArrayGetType(array) != __kCFArrayImmutable, __kCFLogAssertion, "%s(): array is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= newCount, __kCFLogAssertion, "%s(): newCount (%ld) cannot be less than zero", __PRETTY_FUNCTION__, newCount); CHECK_FOR_MUTATION(array); return _CFArrayReplaceValues(array, range, newValues, newCount); } @@ -926,13 +849,13 @@ void _CFArrayReplaceValues(CFMutableArrayRef array, CFRange range, const void ** const void **newv, *buffer[256]; cnt = __CFArrayGetCount(array); futureCnt = cnt - range.length + newCount; - CFAssert(newCount <= futureCnt, __kCFLogAssertion, "%s(): internal error 1", __PRETTY_FUNCTION__); + CFAssert1(newCount <= futureCnt, __kCFLogAssertion, "%s(): internal error 1", __PRETTY_FUNCTION__); cb = __CFArrayGetCallBacks(array); CFAllocatorRef allocator = __CFGetAllocator(array); /* Retain new values if needed, possibly allocating a temporary buffer for them */ - if (NULL != cb->retain && !hasBeenFinalized(array)) { - newv = (newCount <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, newCount * sizeof(void *), 0); // GC OK + if (NULL != cb->retain) { + newv = (newCount <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, newCount * sizeof(void *), 0); if (newv != buffer && __CFOASafe) __CFSetLastAllocationEventName(newv, "CFArray (temp)"); for (idx = 0; idx < newCount; idx++) { newv[idx] = (void *)INVOKE_CALLBACK2(cb->retain, allocator, (void *)newValues[idx]); @@ -963,12 +886,11 @@ void _CFArrayReplaceValues(CFMutableArrayRef array, CFRange range, const void ** struct __CFArrayDeque *deque; CFIndex capacity = __CFArrayDequeRoundUpCapacity(futureCnt); CFIndex size = sizeof(struct __CFArrayDeque) + capacity * sizeof(struct __CFArrayBucket); - deque = (struct __CFArrayDeque *)CFAllocatorAllocate((allocator), size, isStrongMemory(array) ? __kCFAllocatorGCScannedMemory : 0); + deque = (struct __CFArrayDeque *)CFAllocatorAllocate((allocator), size, 0); if (__CFOASafe) __CFSetLastAllocationEventName(deque, "CFArray (store-deque)"); deque->_leftIdx = (capacity - newCount) / 2; deque->_capacity = capacity; __CFAssignWithWriteBarrier((void **)&array->_store, (void *)deque); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) auto_zone_release(objc_collectableZone(), deque); // GC: now safe to unroot the array body. } } else { // Deque // reposition regions A and C for new region B elements in gap @@ -983,7 +905,7 @@ void _CFArrayReplaceValues(CFMutableArrayRef array, CFRange range, const void ** } else { // Deque struct __CFArrayDeque *deque = (struct __CFArrayDeque *)array->_store; struct __CFArrayBucket *raw_buckets = (struct __CFArrayBucket *)((uint8_t *)deque + sizeof(struct __CFArrayDeque)); - objc_memmove_collectable(raw_buckets + deque->_leftIdx + range.location, newv, newCount * sizeof(struct __CFArrayBucket)); + memmove(raw_buckets + deque->_leftIdx + range.location, newv, newCount * sizeof(struct __CFArrayBucket)); } } __CFArraySetCount(array, futureCnt); @@ -1023,7 +945,7 @@ CF_PRIVATE void _CFArraySortValues(CFMutableArrayRef array, CFComparatorFunction } // implemented abstractly, careful! const void **values, *buffer[256]; - values = (range.length <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, range.length * sizeof(void *), 0); // GC OK + values = (range.length <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, range.length * sizeof(void *), 0); CFArrayGetValues(array, range, values); struct _acompareContext ctx; ctx.func = comparator; @@ -1036,11 +958,11 @@ CF_PRIVATE void _CFArraySortValues(CFMutableArrayRef array, CFComparatorFunction void CFArraySortValues(CFMutableArrayRef array, CFRange range, CFComparatorFunction comparator, void *context) { FAULT_CALLBACK((void **)&(comparator)); __CFArrayValidateRange(array, range, __PRETTY_FUNCTION__); - CFAssert(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); Boolean immutable = false; if (CF_IS_OBJC(CFArrayGetTypeID(), array) || CF_IS_SWIFT(CFArrayGetTypeID(), array)) { BOOL result; - result = CF_OBJC_CALLV((NSMutableArray *)array, isKindOfClass:[NSMutableArray class]); + result = CF_OBJC_CALLV((NSMutableArray *)array, isKindOfClass:[NSMutableArray class]); // TODO: Fixme for swift (we need a isKindOfClass replacement: (array as? NSMutableArray) != nil) immutable = !result; } else if (__kCFArrayImmutable == __CFArrayGetType(array)) { immutable = true; @@ -1060,7 +982,7 @@ void CFArraySortValues(CFMutableArrayRef array, CFRange range, CFComparatorFunct } // implemented abstractly, careful! const void **values, *buffer[256]; - values = (range.length <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, range.length * sizeof(void *), 0); // GC OK + values = (range.length <= 256) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, range.length * sizeof(void *), 0); CFArrayGetValues(array, range, values); struct _acompareContext ctx; ctx.func = comparator; @@ -1073,7 +995,7 @@ void CFArraySortValues(CFMutableArrayRef array, CFRange range, CFComparatorFunct CFIndex CFArrayBSearchValues(CFArrayRef array, CFRange range, const void *value, CFComparatorFunction comparator, void *context) { FAULT_CALLBACK((void **)&(comparator)); __CFArrayValidateRange(array, range, __PRETTY_FUNCTION__); - CFAssert(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); // implemented abstractly, careful! if (range.length <= 0) return range.location; const void *item = CFArrayGetValueAtIndex(array, range.location + range.length - 1); diff --git a/CoreFoundation/Collections.subproj/CFArray.h b/CoreFoundation/Collections.subproj/CFArray.h index 177895b675..06b603c330 100644 --- a/CoreFoundation/Collections.subproj/CFArray.h +++ b/CoreFoundation/Collections.subproj/CFArray.h @@ -1,15 +1,5 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFArray.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. All rights reserved. */ /*! @@ -394,7 +384,7 @@ void CFArrayGetValues(CFArrayRef theArray, CFRange range, const void **values); undefined. */ CF_EXPORT -void CFArrayApplyFunction(CFArrayRef theArray, CFRange range, CFArrayApplierFunction applier, void *context); +void CFArrayApplyFunction(CFArrayRef theArray, CFRange range, CFArrayApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFArrayGetFirstIndexOfValue diff --git a/CoreFoundation/Collections.subproj/CFBag.c b/CoreFoundation/Collections.subproj/CFBag.c index ac3139f08f..3cbedda04e 100644 --- a/CoreFoundation/Collections.subproj/CFBag.c +++ b/CoreFoundation/Collections.subproj/CFBag.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBag.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Michael LeHew Machine generated from Notes/HashingCode.template */ @@ -109,7 +104,7 @@ static const CFRuntimeClass __CFBagClass = { }; CFTypeID CFBagGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBagTypeID = _CFRuntimeRegisterClass(&__CFBagClass); }); @@ -121,76 +116,6 @@ static CFBasicHashRef __CFBagCreateGeneric(CFAllocatorRef allocator, const CFHas CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { // all this crap is just for figuring out two flags for GC in the way done historically; it probably simplifies down to three lines, but we let the compiler worry about that - Boolean set_cb = false; - Boolean std_cb = false; - const_any_pointer_t (*key_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*key_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - const_any_pointer_t (*value_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*value_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - - if ((NULL == keyCallBacks || 0 == keyCallBacks->version) && (!useValueCB || NULL == valueCallBacks || 0 == valueCallBacks->version)) { - Boolean keyRetainNull = NULL == keyCallBacks || NULL == keyCallBacks->retain; - Boolean keyReleaseNull = NULL == keyCallBacks || NULL == keyCallBacks->release; - Boolean keyEquateNull = NULL == keyCallBacks || NULL == keyCallBacks->equal; - Boolean keyHashNull = NULL == keyCallBacks || NULL == keyCallBacks->hash; - Boolean keyDescribeNull = NULL == keyCallBacks || NULL == keyCallBacks->copyDescription; - - Boolean valueRetainNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->retain)) || (!useValueCB && keyRetainNull); - Boolean valueReleaseNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->release)) || (!useValueCB && keyReleaseNull); - Boolean valueEquateNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->equal)) || (!useValueCB && keyEquateNull); - Boolean valueDescribeNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeNull); - - Boolean keyRetainStd = keyRetainNull || __CFTypeCollectionRetain == keyCallBacks->retain; - Boolean keyReleaseStd = keyReleaseNull || __CFTypeCollectionRelease == keyCallBacks->release; - Boolean keyEquateStd = keyEquateNull || CFEqual == keyCallBacks->equal; - Boolean keyHashStd = keyHashNull || CFHash == keyCallBacks->hash; - Boolean keyDescribeStd = keyDescribeNull || CFCopyDescription == keyCallBacks->copyDescription; - - Boolean valueRetainStd = (useValueCB && (valueRetainNull || __CFTypeCollectionRetain == valueCallBacks->retain)) || (!useValueCB && keyRetainStd); - Boolean valueReleaseStd = (useValueCB && (valueReleaseNull || __CFTypeCollectionRelease == valueCallBacks->release)) || (!useValueCB && keyReleaseStd); - Boolean valueEquateStd = (useValueCB && (valueEquateNull || CFEqual == valueCallBacks->equal)) || (!useValueCB && keyEquateStd); - Boolean valueDescribeStd = (useValueCB && (valueDescribeNull || CFCopyDescription == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeStd); - - if (keyRetainStd && keyReleaseStd && keyEquateStd && keyHashStd && keyDescribeStd && valueRetainStd && valueReleaseStd && valueEquateStd && valueDescribeStd) { - set_cb = true; - if (!(keyRetainNull || keyReleaseNull || keyEquateNull || keyHashNull || keyDescribeNull || valueRetainNull || valueReleaseNull || valueEquateNull || valueDescribeNull)) { - std_cb = true; - } else { - // just set these to tickle the GC Strong logic below in a way that mimics past practice - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - } - } - - if (!set_cb) { - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - - if (std_cb || value_retain != NULL || value_release != NULL) { - flags |= kCFBasicHashStrongValues; - } - if (std_cb || key_retain != NULL || key_release != NULL) { - flags |= kCFBasicHashStrongKeys; - } - } - CFBasicHashCallbacks callbacks; callbacks.retainKey = keyCallBacks ? (uintptr_t (*)(CFAllocatorRef, uintptr_t))keyCallBacks->retain : NULL; @@ -216,7 +141,7 @@ CF_PRIVATE CFHashRef __CFBagCreateTransfer(CFAllocatorRef allocator, const_any_p const_any_pointer_t *vlist = klist; #endif CFTypeID typeID = CFBagGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); @@ -254,7 +179,7 @@ CFHashRef CFBagCreate(CFAllocatorRef allocator, const_any_pointer_t *klist, CFIn const CFBagValueCallBacks *valueCallBacks = 0; #endif CFTypeID typeID = CFBagGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFBasicHashRef ht = __CFBagCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; if (0 < numValues) CFBasicHashSetCapacity(ht, numValues); @@ -275,7 +200,7 @@ CFMutableHashRef CFBagCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFBagValueCallBacks *valueCallBacks = 0; #endif CFTypeID typeID = CFBagGetTypeID(); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = __CFBagCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; _CFRuntimeSetInstanceTypeIDAndIsa(ht, typeID); @@ -285,52 +210,32 @@ CFMutableHashRef CFBagCreateMutable(CFAllocatorRef allocator, CFIndex capacity, CFHashRef CFBagCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFTypeID typeID = CFBagGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFBag cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFBag cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); Boolean markImmutable = false; CFBasicHashRef ht = NULL; if (CF_IS_OBJC(typeID, other)) { - if (objc_collectingEnabled()) { - CFIndex numValues = CFBagGetCount(other); - const_any_pointer_t vbuffer[256], kbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); -#if CFSet || CFBag - const_any_pointer_t *klist = vlist; - CFBagGetValues(other, vlist); -#endif -#if CFDictionary - const_any_pointer_t *klist = (numValues <= 256) ? kbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - CFDictionaryGetKeysAndValues(other, klist, vlist); -#endif - ht = __CFBagCreateGeneric(allocator, & kCFTypeBagKeyCallBacks, CFDictionary ? & kCFTypeBagValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (klist != kbuffer && klist != vlist) CFAllocatorDeallocate(kCFAllocatorSystemDefault, klist); - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; - } - else { // non-GC #if CFDictionary || CFSet - ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); + ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); #elif CFBag - CFIndex numValues = CFBagGetCount(other); - const_any_pointer_t vbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - const_any_pointer_t *klist = vlist; - CFBagGetValues(other, vlist); - ht = __CFBagCreateGeneric(allocator, & kCFTypeBagKeyCallBacks, CFDictionary ? & kCFTypeBagValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; -#endif // CFBag + CFIndex numValues = CFBagGetCount(other); + const_any_pointer_t vbuffer[256]; + const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); + const_any_pointer_t *klist = vlist; + CFBagGetValues(other, vlist); + ht = __CFBagCreateGeneric(allocator, & kCFTypeBagKeyCallBacks, CFDictionary ? & kCFTypeBagValueCallBacks : NULL, CFDictionary); + if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); + for (CFIndex idx = 0; ht && idx < numValues; idx++) { + CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); } - } - else { // non-objc types + if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); + markImmutable = true; +#endif // CFBag + } else if (CF_IS_SWIFT(typeID, other)) { +#if CFDictionary || CFSet + ht = (CFBasicHashRef)CF_SWIFT_CALLV(other, NSObject.copyWithZone, nil); +#endif + } else { // non-objc types ht = CFBasicHashCreateCopy(allocator, (CFBasicHashRef)other); markImmutable = true; } @@ -345,11 +250,11 @@ CFHashRef CFBagCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFMutableHashRef CFBagCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFHashRef other) { CFTypeID typeID = CFBagGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFBag cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFBag cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = NULL; - if (CF_IS_OBJC(typeID, other)) { + if (CF_IS_OBJC(typeID, other) || CF_IS_SWIFT(typeID, other)) { CFIndex numValues = CFBagGetCount(other); const_any_pointer_t vbuffer[256], kbuffer[256]; const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); @@ -379,9 +284,11 @@ CFMutableHashRef CFBagCreateMutableCopy(CFAllocatorRef allocator, CFIndex capaci CFIndex CFBagGetCount(CFHashRef hc) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.count); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (NSDictionary *)hc, count); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.count); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (NSSet *)hc, count); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); @@ -395,9 +302,11 @@ CFIndex CFBagGetCountOfKey(CFHashRef hc, const_any_pointer_t key) { CFIndex CFBagGetCountOfValue(CFHashRef hc, const_any_pointer_t key) { #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.countForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (NSDictionary *)hc, countForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.countForKey, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (NSSet *)hc, countForObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); @@ -411,9 +320,11 @@ Boolean CFBagContainsKey(CFHashRef hc, const_any_pointer_t key) { Boolean CFBagContainsValue(CFHashRef hc, const_any_pointer_t key) { #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), char, (CFSwiftRef)hc, NSDictionary.containsKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), char, (NSDictionary *)hc, containsKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), char, (CFSwiftRef)hc, NSSet.containsObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), char, (NSSet *)hc, containsObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); @@ -422,9 +333,11 @@ Boolean CFBagContainsValue(CFHashRef hc, const_any_pointer_t key) { const_any_pointer_t CFBagGetValue(CFHashRef hc, const_any_pointer_t key) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), const_any_pointer_t, (CFSwiftRef)hc, NSDictionary.objectForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), const_any_pointer_t, (NSDictionary *)hc, objectForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), const_any_pointer_t, (CFSwiftRef)hc, NSSet.member, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), const_any_pointer_t, (NSSet *)hc, member:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); @@ -434,20 +347,18 @@ const_any_pointer_t CFBagGetValue(CFHashRef hc, const_any_pointer_t key) { Boolean CFBagGetValueIfPresent(CFHashRef hc, const_any_pointer_t key, const_any_pointer_t *value) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), Boolean, (CFSwiftRef)hc, NSDictionary.__getValue, value, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), Boolean, (NSDictionary *)hc, __getValue:(id *)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), Boolean, (CFSwiftRef)hc, NSSet.__getValue, value, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), Boolean, (NSSet *)hc, __getValue:(id *)value forObj:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (value) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongValues)) { - __CFAssignWithWriteBarrier((void **)value, (void *)bkt.weak_value); - } else { - *value = (const_any_pointer_t)bkt.weak_value; - } + *value = (const_any_pointer_t)bkt.weak_value; } return true; } @@ -456,12 +367,14 @@ Boolean CFBagGetValueIfPresent(CFHashRef hc, const_any_pointer_t key, const_any_ #if CFDictionary CFIndex CFDictionaryGetCountOfValue(CFHashRef hc, const_any_pointer_t value) { + CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.count); CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), CFIndex, (NSDictionary *)hc, countForObject:(id)value); __CFGenericValidateType(hc, CFBagGetTypeID()); return CFBasicHashGetCountOfValue((CFBasicHashRef)hc, (uintptr_t)value); } Boolean CFDictionaryContainsValue(CFHashRef hc, const_any_pointer_t value) { + CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), char, (CFSwiftRef)hc, NSDictionary.containsObject, value); CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), char, (NSDictionary *)hc, containsObject:(id)value); __CFGenericValidateType(hc, CFBagGetTypeID()); return (0 < CFBasicHashGetCountOfValue((CFBasicHashRef)hc, (uintptr_t)value)); @@ -472,11 +385,7 @@ CF_EXPORT Boolean CFDictionaryGetKeyIfPresent(CFHashRef hc, const_any_pointer_t CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (actualkey) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongKeys)) { - __CFAssignWithWriteBarrier((void **)actualkey, (void *)bkt.weak_key); - } else { - *actualkey = (const_any_pointer_t)bkt.weak_key; - } + *actualkey = (const_any_pointer_t)bkt.weak_key; } return true; } @@ -492,36 +401,25 @@ void CFBagGetValues(CFHashRef hc, const_any_pointer_t *keybuf) { const_any_pointer_t *valuebuf = 0; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSDictionary.getObjects, valuebuf, keybuf); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSDictionary *)hc, getObjects:(id *)valuebuf andKeys:(id *)keybuf); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSSet.getObjects, keybuf); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSSet *)hc, getObjects:(id *)keybuf); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - if (kCFUseCollectableAllocator) { - CFOptionFlags flags = CFBasicHashGetFlags((CFBasicHashRef)hc); - __block const_any_pointer_t *keys = keybuf; - __block const_any_pointer_t *values = valuebuf; - CFBasicHashApply((CFBasicHashRef)hc, ^(CFBasicHashBucket bkt) { - for (CFIndex cnt = bkt.count; cnt--;) { - if (keybuf && (flags & kCFBasicHashStrongKeys)) { __CFAssignWithWriteBarrier((void **)keys, (void *)bkt.weak_key); keys++; } - if (keybuf && !(flags & kCFBasicHashStrongKeys)) { *keys++ = (const_any_pointer_t)bkt.weak_key; } - if (valuebuf && (flags & kCFBasicHashStrongValues)) { __CFAssignWithWriteBarrier((void **)values, (void *)bkt.weak_value); values++; } - if (valuebuf && !(flags & kCFBasicHashStrongValues)) { *values++ = (const_any_pointer_t)bkt.weak_value; } - } - return (Boolean)true; - }); - } else { - CFBasicHashGetElements((CFBasicHashRef)hc, CFBagGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); - } + CFBasicHashGetElements((CFBasicHashRef)hc, CFBagGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); } void CFBagApplyFunction(CFHashRef hc, CFBagApplierFunction applier, any_pointer_t context) { FAULT_CALLBACK((void **)&(applier)); #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSDictionary.__apply, applier, context); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSDictionary *)hc, __apply:(void (*)(const void *, const void *, void *))applier context:(void *)context); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSSet.__apply, applier, context); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSSet *)hc, __applyValues:(void (*)(const void *, void *))applier context:(void *)context); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); @@ -543,6 +441,7 @@ void CFBagApplyFunction(CFHashRef hc, CFBagApplierFunction applier, any_pointer_ // This function is for Foundation's benefit; no one else should use it. CF_EXPORT unsigned long _CFBagFastEnumeration(CFHashRef hc, struct __objcFastEnumerationStateEquivalent *state, void *stackbuffer, unsigned long count) { + if (CF_IS_SWIFT(CFBagGetTypeID(), hc)) return 0; if (CF_IS_OBJC(CFBagGetTypeID(), hc)) return 0; __CFGenericValidateType(hc, CFBagGetTypeID()); return __CFBasicHashFastEnumeration((CFBasicHashRef)hc, (struct __objcFastEnumerationStateEquivalent2 *)state, stackbuffer, count); @@ -550,6 +449,7 @@ CF_EXPORT unsigned long _CFBagFastEnumeration(CFHashRef hc, struct __objcFastEnu // This function is for Foundation's benefit; no one else should use it. CF_EXPORT Boolean _CFBagIsMutable(CFHashRef hc) { + if (CF_IS_SWIFT(CFBagGetTypeID(), hc)) return false; if (CF_IS_OBJC(CFBagGetTypeID(), hc)) return false; __CFGenericValidateType(hc, CFBagGetTypeID()); return CFBasicHashIsMutable((CFBasicHashRef)hc); @@ -557,10 +457,11 @@ CF_EXPORT Boolean _CFBagIsMutable(CFHashRef hc) { // This function is for Foundation's benefit; no one else should use it. CF_EXPORT void _CFBagSetCapacity(CFMutableHashRef hc, CFIndex cap) { + if (CF_IS_SWIFT(CFBagGetTypeID(), hc)) return; if (CF_IS_OBJC(CFBagGetTypeID(), hc)) return; __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); - CFAssert(CFBagGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFBagGetCount(hc)); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert3(CFBagGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFBagGetCount(hc)); CFBasicHashSetCapacity((CFBasicHashRef)hc, cap); } @@ -598,13 +499,15 @@ void CFBagAddValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.__addObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableDictionary *)hc, __addObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.addObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableSet *)hc, addObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -621,13 +524,15 @@ void CFBagReplaceValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.replaceObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableDictionary *)hc, replaceObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.replaceObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableSet *)hc, replaceObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -644,13 +549,15 @@ void CFBagSetValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.__setObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableDictionary *)hc, __setObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.setObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableSet *)hc, setObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -662,13 +569,15 @@ void CFBagSetValue(CFMutableHashRef hc, const_any_pointer_t key) { void CFBagRemoveValue(CFMutableHashRef hc, const_any_pointer_t key) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.removeObjectForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableDictionary *)hc, removeObjectForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableSet *)hc, removeObject:(id)key); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -679,13 +588,15 @@ void CFBagRemoveValue(CFMutableHashRef hc, const_any_pointer_t key) { void CFBagRemoveAllValues(CFMutableHashRef hc) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.removeAllObjects); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableDictionary *)hc, removeAllObjects); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFBagGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeAllObjects); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFBagGetTypeID(), void, (NSMutableSet *)hc, removeAllObjects); #endif __CFGenericValidateType(hc, CFBagGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } diff --git a/CoreFoundation/Collections.subproj/CFBag.h b/CoreFoundation/Collections.subproj/CFBag.h index 5d0f21017a..46353fd86c 100644 --- a/CoreFoundation/Collections.subproj/CFBag.h +++ b/CoreFoundation/Collections.subproj/CFBag.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBag.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBAG__) @@ -78,7 +73,7 @@ CF_EXPORT void CFBagGetValues(CFBagRef theBag, const void **values); CF_EXPORT -void CFBagApplyFunction(CFBagRef theBag, CFBagApplierFunction applier, void *context); +void CFBagApplyFunction(CFBagRef theBag, CFBagApplierFunction CF_NOESCAPE applier, void *context); CF_EXPORT void CFBagAddValue(CFMutableBagRef theBag, const void *value); diff --git a/CoreFoundation/Collections.subproj/CFBasicHash.c b/CoreFoundation/Collections.subproj/CFBasicHash.c index 9a876b716b..83eabd067d 100644 --- a/CoreFoundation/Collections.subproj/CFBasicHash.c +++ b/CoreFoundation/Collections.subproj/CFBasicHash.c @@ -1,27 +1,21 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBasicHash.m - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ #include "CFBasicHash.h" #include #include +#include #include -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED #if __HAS_DISPATCH__ #include #endif -#endif #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED #define __SetLastAllocationEventName(A, B) do { if (__CFOASafe && (A)) __CFSetLastAllocationEventName(A, B); } while (0) @@ -29,7 +23,7 @@ #define __SetLastAllocationEventName(A, B) do { } while (0) #endif -#define __AssignWithWriteBarrier(location, value) objc_assign_strongCast((id)value, (id *)location) +#define __AssignWithWriteBarrier(location, value) do { *location = value; } while (0) #define ENABLE_DTRACE_PROBES 0 #define ENABLE_MEMORY_COUNTERS 0 @@ -264,24 +258,11 @@ static const uintptr_t __CFBasicHashPrimitiveRoots[64] = { }; CF_INLINE void *__CFBasicHashAllocateMemory(CFConstBasicHashRef ht, CFIndex count, CFIndex elem_size, Boolean strong, Boolean compactable) { - CFAllocatorRef allocator = CFGetAllocator(ht); - void *new_mem = NULL; - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - new_mem = auto_zone_allocate_object(objc_collectableZone(), count * elem_size, strong ? (compactable ? AUTO_POINTERS_ONLY : AUTO_MEMORY_SCANNED) : AUTO_UNSCANNED, false, false); - } else { - new_mem = CFAllocatorAllocate(allocator, count * elem_size, 0); - } - return new_mem; + return CFAllocatorAllocate(CFGetAllocator(ht), count * elem_size, 0); } CF_INLINE void *__CFBasicHashAllocateMemory2(CFAllocatorRef allocator, CFIndex count, CFIndex elem_size, Boolean strong, Boolean compactable) { - void *new_mem = NULL; - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - new_mem = auto_zone_allocate_object(objc_collectableZone(), count * elem_size, strong ? (compactable ? AUTO_POINTERS_ONLY : AUTO_MEMORY_SCANNED) : AUTO_UNSCANNED, false, false); - } else { - new_mem = CFAllocatorAllocate(allocator, count * elem_size, 0); - } - return new_mem; + return CFAllocatorAllocate(allocator, count * elem_size, 0); } #define __CFBasicHashSubABZero 0xa7baadb1 @@ -297,18 +278,18 @@ struct __CFBasicHash { CFRuntimeBase base; struct { // 192 bits uint16_t mutations; - uint8_t hash_style:2; - uint8_t keys_offset:1; - uint8_t counts_offset:2; - uint8_t counts_width:2; - uint8_t hashes_offset:2; - uint8_t strong_values:1; - uint8_t strong_keys:1; - uint8_t weak_values:1; - uint8_t weak_keys:1; - uint8_t int_values:1; - uint8_t int_keys:1; - uint8_t indirect_keys:1; + uint16_t hash_style:2; + uint16_t keys_offset:1; + uint16_t counts_offset:2; + uint16_t counts_width:2; + uint16_t hashes_offset:2; + uint16_t strong_values:1; + uint16_t strong_keys:1; + uint16_t weak_values:1; + uint16_t weak_keys:1; + uint16_t int_values:1; + uint16_t int_keys:1; + uint16_t indirect_keys:1; uint32_t used_buckets; /* number of used buckets */ uint64_t deleted:16; uint64_t num_buckets_idx:8; /* index to number of buckets */ @@ -334,7 +315,7 @@ static void *CFBasicHashCallBackPtrs[(1UL << 10)]; static int32_t CFBasicHashCallBackPtrsCount = 0; static int32_t CFBasicHashGetPtrIndex(void *ptr) { - static dispatch_once_t once = 0; + static dispatch_once_t once; dispatch_once(&once, ^{ CFBasicHashCallBackPtrs[0] = NULL; CFBasicHashCallBackPtrs[1] = (void *)CFCopyDescription; @@ -569,9 +550,7 @@ CF_INLINE void __CFBasicHashBumpCounts(CFBasicHashRef ht) { counts16[idx2] = counts08[idx2]; } __CFBasicHashSetCounts(ht, counts16); - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - CFAllocatorDeallocate(allocator, counts08); - } + CFAllocatorDeallocate(allocator, counts08); break; } case 1: { @@ -585,9 +564,7 @@ CF_INLINE void __CFBasicHashBumpCounts(CFBasicHashRef ht) { counts32[idx2] = counts16[idx2]; } __CFBasicHashSetCounts(ht, counts32); - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - CFAllocatorDeallocate(allocator, counts16); - } + CFAllocatorDeallocate(allocator, counts16); break; } case 2: { @@ -601,9 +578,7 @@ CF_INLINE void __CFBasicHashBumpCounts(CFBasicHashRef ht) { counts64[idx2] = counts32[idx2]; } __CFBasicHashSetCounts(ht, counts64); - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - CFAllocatorDeallocate(allocator, counts32); - } + CFAllocatorDeallocate(allocator, counts32); break; } case 3: { @@ -1047,7 +1022,7 @@ static volatile int64_t __CFBasicHashPeakSize = 0ULL; static volatile int32_t __CFBasicHashSizes[64] = {0}; #endif -static void __CFBasicHashDrain(CFBasicHashRef ht, Boolean forFinalization) { +static void __CFBasicHashDrain(CFBasicHashRef ht) { #if ENABLE_MEMORY_COUNTERS OSAtomicAdd64Barrier(-1 * (int64_t) CFBasicHashGetSize(ht, true), & __CFBasicHashTotalSize); #endif @@ -1055,57 +1030,52 @@ static void __CFBasicHashDrain(CFBasicHashRef ht, Boolean forFinalization) { CFIndex old_num_buckets = __CFBasicHashTableSizes[ht->bits.num_buckets_idx]; CFAllocatorRef allocator = CFGetAllocator(ht); - Boolean nullify = (!forFinalization || !CF_IS_COLLECTABLE_ALLOCATOR(allocator)); CFBasicHashValue *old_values = NULL, *old_keys = NULL; void *old_counts = NULL; uintptr_t *old_hashes = NULL; old_values = __CFBasicHashGetValues(ht); - if (nullify) __CFBasicHashSetValues(ht, NULL); + __CFBasicHashSetValues(ht, NULL); if (ht->bits.keys_offset) { old_keys = __CFBasicHashGetKeys(ht); - if (nullify) __CFBasicHashSetKeys(ht, NULL); + __CFBasicHashSetKeys(ht, NULL); } if (ht->bits.counts_offset) { old_counts = __CFBasicHashGetCounts(ht); - if (nullify) __CFBasicHashSetCounts(ht, NULL); + __CFBasicHashSetCounts(ht, NULL); } if (__CFBasicHashHasHashCache(ht)) { old_hashes = __CFBasicHashGetHashes(ht); - if (nullify) __CFBasicHashSetHashes(ht, NULL); + __CFBasicHashSetHashes(ht, NULL); } - if (nullify) { - ht->bits.mutations++; - ht->bits.num_buckets_idx = 0; - ht->bits.used_buckets = 0; - ht->bits.deleted = 0; - } - - for (CFIndex idx = 0; idx < old_num_buckets; idx++) { - uintptr_t stack_value = old_values[idx].neutral; - if (stack_value != 0UL && stack_value != ~0UL) { - uintptr_t old_value = stack_value; - if (__CFBasicHashSubABZero == old_value) old_value = 0UL; - if (__CFBasicHashSubABOne == old_value) old_value = ~0UL; - __CFBasicHashEjectValue(ht, old_value); - if (old_keys) { - uintptr_t old_key = old_keys[idx].neutral; - if (__CFBasicHashSubABZero == old_key) old_key = 0UL; - if (__CFBasicHashSubABOne == old_key) old_key = ~0UL; - __CFBasicHashEjectKey(ht, old_key); - } + ht->bits.mutations++; + ht->bits.num_buckets_idx = 0; + ht->bits.used_buckets = 0; + ht->bits.deleted = 0; + + for (CFIndex idx = 0; idx < old_num_buckets; idx++) { + uintptr_t stack_value = old_values[idx].neutral; + if (stack_value != 0UL && stack_value != ~0UL) { + uintptr_t old_value = stack_value; + if (__CFBasicHashSubABZero == old_value) old_value = 0UL; + if (__CFBasicHashSubABOne == old_value) old_value = ~0UL; + __CFBasicHashEjectValue(ht, old_value); + if (old_keys) { + uintptr_t old_key = old_keys[idx].neutral; + if (__CFBasicHashSubABZero == old_key) old_key = 0UL; + if (__CFBasicHashSubABOne == old_key) old_key = ~0UL; + __CFBasicHashEjectKey(ht, old_key); } } - - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - CFAllocatorDeallocate(allocator, old_values); - CFAllocatorDeallocate(allocator, old_keys); - CFAllocatorDeallocate(allocator, old_counts); - CFAllocatorDeallocate(allocator, old_hashes); } + CFAllocatorDeallocate(allocator, old_values); + CFAllocatorDeallocate(allocator, old_keys); + CFAllocatorDeallocate(allocator, old_counts); + CFAllocatorDeallocate(allocator, old_hashes); + #if ENABLE_MEMORY_COUNTERS int64_t size_now = OSAtomicAdd64Barrier((int64_t) CFBasicHashGetSize(ht, true), & __CFBasicHashTotalSize); while (__CFBasicHashPeakSize < size_now && !OSAtomicCompareAndSwap64Barrier(__CFBasicHashPeakSize, size_now, & __CFBasicHashPeakSize)); @@ -1204,7 +1174,7 @@ static void __CFBasicHashRehash(CFBasicHashRef ht, CFIndex newItemCount) { if (old_keys) { __CFBasicHashSetKey(ht, bkt_idx, stack_key, false, false); } - if (old_counts) { + if (old_counts && new_counts) { switch (ht->bits.counts_width) { case 0: ((uint8_t *)new_counts)[bkt_idx] = ((uint8_t *)old_counts)[idx]; break; case 1: ((uint16_t *)new_counts)[bkt_idx] = ((uint16_t *)old_counts)[idx]; break; @@ -1212,7 +1182,7 @@ static void __CFBasicHashRehash(CFBasicHashRef ht, CFIndex newItemCount) { case 3: ((uint64_t *)new_counts)[bkt_idx] = ((uint64_t *)old_counts)[idx]; break; } } - if (old_hashes) { + if (old_hashes && new_hashes) { new_hashes[bkt_idx] = old_hashes[idx]; } } @@ -1220,12 +1190,10 @@ static void __CFBasicHashRehash(CFBasicHashRef ht, CFIndex newItemCount) { } CFAllocatorRef allocator = CFGetAllocator(ht); - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - CFAllocatorDeallocate(allocator, old_values); - CFAllocatorDeallocate(allocator, old_keys); - CFAllocatorDeallocate(allocator, old_counts); - CFAllocatorDeallocate(allocator, old_hashes); - } + CFAllocatorDeallocate(allocator, old_values); + CFAllocatorDeallocate(allocator, old_keys); + CFAllocatorDeallocate(allocator, old_counts); + CFAllocatorDeallocate(allocator, old_hashes); if (COCOA_HASHTABLE_REHASH_END_ENABLED()) COCOA_HASHTABLE_REHASH_END(ht, CFBasicHashGetNumBuckets(ht), CFBasicHashGetSize(ht, true)); @@ -1395,7 +1363,7 @@ CF_PRIVATE CFIndex CFBasicHashRemoveValueAtIndex(CFBasicHashRef ht, CFIndex idx) CF_PRIVATE void CFBasicHashRemoveAllValues(CFBasicHashRef ht) { if (!CFBasicHashIsMutable(ht)) HALT; if (0 == ht->bits.num_buckets_idx) return; - __CFBasicHashDrain(ht, false); + __CFBasicHashDrain(ht); } CF_PRIVATE Boolean CFBasicHashAddIntValueAndInc(CFBasicHashRef ht, uintptr_t stack_key, uintptr_t int_value) { @@ -1541,7 +1509,7 @@ CF_PRIVATE void __CFBasicHashDeallocate(CFTypeRef cf) { CFBasicHashRef ht = (CFBasicHashRef)cf; if (ht->bits.finalized) HALT; ht->bits.finalized = 1; - __CFBasicHashDrain(ht, true); + __CFBasicHashDrain(ht); #if ENABLE_MEMORY_COUNTERS OSAtomicAdd64Barrier(-1, &__CFBasicHashTotalCount); OSAtomicAdd32Barrier(-1, &__CFBasicHashSizes[ht->bits.num_buckets_idx]); @@ -1563,7 +1531,7 @@ static const CFRuntimeClass __CFBasicHashClass = { }; CF_PRIVATE CFTypeID CFBasicHashGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBasicHashTypeID = _CFRuntimeRegisterClass(&__CFBasicHashClass); }); return __kCFBasicHashTypeID; } @@ -1649,8 +1617,8 @@ CF_PRIVATE CFBasicHashRef CFBasicHashCreateCopy(CFAllocatorRef allocator, CFCons uintptr_t *new_hashes = NULL; if (0 < new_num_buckets) { - Boolean strongValues = CFBasicHashHasStrongValues(src_ht) && !(kCFUseCollectableAllocator && !CF_IS_COLLECTABLE_ALLOCATOR(allocator)); - Boolean strongKeys = CFBasicHashHasStrongKeys(src_ht) && !(kCFUseCollectableAllocator && !CF_IS_COLLECTABLE_ALLOCATOR(allocator)); + Boolean strongValues = CFBasicHashHasStrongValues(src_ht); + Boolean strongKeys = CFBasicHashHasStrongKeys(src_ht); new_values = (CFBasicHashValue *)__CFBasicHashAllocateMemory2(allocator, new_num_buckets, sizeof(CFBasicHashValue), strongValues, 0); if (!new_values) return NULL; // in this unusual circumstance, leak previously allocated blocks for now __SetLastAllocationEventName(new_values, "CFBasicHash (value-store)"); @@ -1675,12 +1643,6 @@ CF_PRIVATE CFBasicHashRef CFBasicHashCreateCopy(CFAllocatorRef allocator, CFCons if (NULL == ht) return NULL; // in this unusual circumstance, leak previously allocated blocks for now memmove((uint8_t *)ht + sizeof(CFRuntimeBase), (uint8_t *)src_ht + sizeof(CFRuntimeBase), sizeof(ht->bits)); - if (kCFUseCollectableAllocator && !CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - ht->bits.strong_values = 0; - ht->bits.strong_keys = 0; - ht->bits.weak_values = 0; - ht->bits.weak_keys = 0; - } ht->bits.finalized = 0; ht->bits.mutations = 1; diff --git a/CoreFoundation/Collections.subproj/CFBasicHash.h b/CoreFoundation/Collections.subproj/CFBasicHash.h index 8337c10c87..14f39f425f 100644 --- a/CoreFoundation/Collections.subproj/CFBasicHash.h +++ b/CoreFoundation/Collections.subproj/CFBasicHash.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBasicHash.h - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #include @@ -106,8 +101,8 @@ CFBasicHashBucket CFBasicHashFindBucket(CFConstBasicHashRef ht, uintptr_t stack_ CFIndex CFBasicHashGetCountOfKey(CFConstBasicHashRef ht, uintptr_t stack_key); CFIndex CFBasicHashGetCountOfValue(CFConstBasicHashRef ht, uintptr_t stack_value); Boolean CFBasicHashesAreEqual(CFConstBasicHashRef ht1, CFConstBasicHashRef ht2); -void CFBasicHashApply(CFConstBasicHashRef ht, Boolean (^block)(CFBasicHashBucket)); -void CFBasicHashApplyIndexed(CFConstBasicHashRef ht, CFRange range, Boolean (^block)(CFBasicHashBucket)); +void CFBasicHashApply(CFConstBasicHashRef ht, Boolean (CF_NOESCAPE ^block)(CFBasicHashBucket)); +void CFBasicHashApplyIndexed(CFConstBasicHashRef ht, CFRange range, Boolean (CF_NOESCAPE ^block)(CFBasicHashBucket)); void CFBasicHashGetElements(CFConstBasicHashRef ht, CFIndex bufferslen, uintptr_t *weak_values, uintptr_t *weak_keys); Boolean CFBasicHashAddValue(CFBasicHashRef ht, uintptr_t stack_key, uintptr_t stack_value); diff --git a/CoreFoundation/Collections.subproj/CFBasicHashFindBucket.m b/CoreFoundation/Collections.subproj/CFBasicHashFindBucket.m index 2815b28206..4805206166 100644 --- a/CoreFoundation/Collections.subproj/CFBasicHashFindBucket.m +++ b/CoreFoundation/Collections.subproj/CFBasicHashFindBucket.m @@ -1,28 +1,10 @@ -/* - * Copyright (c) 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - /* CFBasicHashFindBucket.m - Copyright (c) 2009-2015, Apple Inc. All rights reserved. + Copyright (c) 2009-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ diff --git a/CoreFoundation/Collections.subproj/CFBinaryHeap.c b/CoreFoundation/Collections.subproj/CFBinaryHeap.c index c9744346e3..a39ca58f27 100644 --- a/CoreFoundation/Collections.subproj/CFBinaryHeap.c +++ b/CoreFoundation/Collections.subproj/CFBinaryHeap.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBinaryHeap.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -77,12 +72,6 @@ enum { /* bits 1-0 */ kCFBinaryHeapMutable = 0x1, /* changeable and variable capacity */ }; -/* Bits 4-5 are used by GC */ - -CF_INLINE bool isStrongMemory_Heap(CFTypeRef collection) { - return __CFBitfieldGetValue(((const CFRuntimeBase *)collection)->_cfinfo[CF_INFO_BITS], 4, 4) == 0; -} - CF_INLINE UInt32 __CFBinaryHeapMutableVariety(const void *cf) { return __CFBitfieldGetValue(((const CFRuntimeBase *)cf)->_cfinfo[CF_INFO_BITS], 3, 2); } @@ -107,7 +96,7 @@ static Boolean __CFBinaryHeapEqual(CFTypeRef cf1, CFTypeRef cf2) { compare = heap1->_callbacks.compare; if (compare != heap2->_callbacks.compare) return false; if (0 == cnt) return true; /* after function comparison */ - list1 = (cnt <= 128) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * cnt * sizeof(void *), 0); // GC OK + list1 = (cnt <= 128) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * cnt * sizeof(void *), 0); if (__CFOASafe && list1 != buffer) __CFSetLastAllocationEventName(list1, "CFBinaryHeap (temp)"); list2 = (cnt <= 128) ? buffer + 128 : list1 + cnt; CFBinaryHeapGetValues(heap1, list1); @@ -122,7 +111,7 @@ static Boolean __CFBinaryHeapEqual(CFTypeRef cf1, CFTypeRef cf2) { if (!compare(val1, val2, heap1->_context.info)) return false; } } - if (list1 != buffer) CFAllocatorDeallocate(CFGetAllocator(heap1), list1); // GC OK + if (list1 != buffer) CFAllocatorDeallocate(CFGetAllocator(heap1), list1); return true; } @@ -140,7 +129,7 @@ static CFStringRef __CFBinaryHeapCopyDescription(CFTypeRef cf) { cnt = __CFBinaryHeapCount(heap); result = CFStringCreateMutable(CFGetAllocator(heap), 0); CFStringAppendFormat(result, NULL, CFSTR("{count = %lu, capacity = %lu, objects = (\n"), cf, CFGetAllocator(heap), (unsigned long)cnt, (unsigned long)__CFBinaryHeapCapacity(heap)); - list = (cnt <= 128) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, cnt * sizeof(void *), 0); // GC OK + list = (cnt <= 128) ? (const void **)buffer : (const void **)CFAllocatorAllocate(kCFAllocatorSystemDefault, cnt * sizeof(void *), 0); if (__CFOASafe && list != buffer) __CFSetLastAllocationEventName(list, "CFBinaryHeap (temp)"); CFBinaryHeapGetValues(heap, list); for (idx = 0; idx < cnt; idx++) { @@ -157,22 +146,18 @@ static CFStringRef __CFBinaryHeapCopyDescription(CFTypeRef cf) { } } CFStringAppend(result, CFSTR(")}")); - if (list != buffer) CFAllocatorDeallocate(CFGetAllocator(heap), list); // GC OK + if (list != buffer) CFAllocatorDeallocate(CFGetAllocator(heap), list); return result; } static void __CFBinaryHeapDeallocate(CFTypeRef cf) { CFBinaryHeapRef heap = (CFBinaryHeapRef)cf; CFAllocatorRef allocator = CFGetAllocator(heap); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (heap->_callbacks.retain == NULL && heap->_callbacks.release == NULL) - return; // GC: keep heap intact during finalization. - } // CF: should make the heap mutable here first, a la CFArrayDeallocate CFBinaryHeapRemoveAllValues(heap); // CF: does not release the context info if (__CFBinaryHeapMutableVariety(heap) == kCFBinaryHeapMutable) { - _CFAllocatorDeallocateGC(allocator, heap->_buckets); + CFAllocatorDeallocate(allocator, heap->_buckets); } } @@ -191,7 +176,7 @@ static const CFRuntimeClass __CFBinaryHeapClass = { }; CFTypeID CFBinaryHeapGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBinaryHeapTypeID = _CFRuntimeRegisterClass(&__CFBinaryHeapClass); }); return __kCFBinaryHeapTypeID; } @@ -201,14 +186,9 @@ static CFBinaryHeapRef __CFBinaryHeapInit(CFAllocatorRef allocator, UInt32 flags CFIndex idx; CFIndex size; - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%d) cannot be less than zero", __PRETTY_FUNCTION__, capacity); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%d) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); size = sizeof(struct __CFBinaryHeap) - sizeof(CFRuntimeBase); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - if (!callBacks || (callBacks->retain == NULL && callBacks->release == NULL)) { - __CFBitfieldSetValue(flags, 4, 4, 1); // setWeak - } - } memory = (CFBinaryHeapRef)_CFRuntimeCreateInstance(allocator, CFBinaryHeapGetTypeID(), size, NULL); if (NULL == memory) { @@ -216,8 +196,8 @@ static CFBinaryHeapRef __CFBinaryHeapInit(CFAllocatorRef allocator, UInt32 flags } __CFBinaryHeapSetCapacity(memory, __CFBinaryHeapRoundUpCapacity(1)); __CFBinaryHeapSetNumBuckets(memory, __CFBinaryHeapNumBucketsForCapacity(__CFBinaryHeapRoundUpCapacity(1))); - void *buckets = _CFAllocatorAllocateGC(allocator, __CFBinaryHeapNumBuckets(memory) * sizeof(struct __CFBinaryHeapBucket), isStrongMemory_Heap(memory) ? __kCFAllocatorGCScannedMemory : 0); - __CFAssignWithWriteBarrier((void **)&memory->_buckets, buckets); + void *buckets = CFAllocatorAllocate(allocator, __CFBinaryHeapNumBuckets(memory) * sizeof(struct __CFBinaryHeapBucket), 0); + *((void **)&memory->_buckets) = buckets; if (__CFOASafe) __CFSetLastAllocationEventName(memory->_buckets, "CFBinaryHeap (store)"); if (NULL == memory->_buckets) { CFRelease(memory); @@ -294,14 +274,14 @@ Boolean CFBinaryHeapContainsValue(CFBinaryHeapRef heap, const void *value) { const void *CFBinaryHeapGetMinimum(CFBinaryHeapRef heap) { __CFGenericValidateType(heap, CFBinaryHeapGetTypeID()); - CFAssert(0 < __CFBinaryHeapCount(heap), __kCFLogAssertion, "%s(): binary heap is empty", __PRETTY_FUNCTION__); + CFAssert1(0 < __CFBinaryHeapCount(heap), __kCFLogAssertion, "%s(): binary heap is empty", __PRETTY_FUNCTION__); return (0 < __CFBinaryHeapCount(heap)) ? heap->_buckets[0]._item : NULL; } Boolean CFBinaryHeapGetMinimumIfPresent(CFBinaryHeapRef heap, const void **value) { __CFGenericValidateType(heap, CFBinaryHeapGetTypeID()); if (0 == __CFBinaryHeapCount(heap)) return false; - if (NULL != value) __CFAssignWithWriteBarrier((void **)value, heap->_buckets[0]._item); + if (NULL != value) *((void **)value) = heap->_buckets[0]._item; return true; } @@ -310,7 +290,7 @@ void CFBinaryHeapGetValues(CFBinaryHeapRef heap, const void **values) { CFIndex idx; CFIndex cnt; __CFGenericValidateType(heap, CFBinaryHeapGetTypeID()); - CFAssert(NULL != values, __kCFLogAssertion, "%s(): pointer to values may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != values, __kCFLogAssertion, "%s(): pointer to values may not be NULL", __PRETTY_FUNCTION__); cnt = __CFBinaryHeapCount(heap); if (0 == cnt) return; heapCopy = CFBinaryHeapCreateCopy(CFGetAllocator(heap), cnt, heap); @@ -327,7 +307,7 @@ void CFBinaryHeapApplyFunction(CFBinaryHeapRef heap, CFBinaryHeapApplierFunction CFBinaryHeapRef heapCopy; CFIndex cnt; __CFGenericValidateType(heap, CFBinaryHeapGetTypeID()); - CFAssert(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); cnt = __CFBinaryHeapCount(heap); if (0 == cnt) return; heapCopy = CFBinaryHeapCreateCopy(CFGetAllocator(heap), cnt, heap); @@ -345,8 +325,8 @@ static void __CFBinaryHeapGrow(CFBinaryHeapRef heap, CFIndex numNewValues) { CFAllocatorRef allocator = CFGetAllocator(heap); __CFBinaryHeapSetCapacity(heap, capacity); __CFBinaryHeapSetNumBuckets(heap, __CFBinaryHeapNumBucketsForCapacity(capacity)); - void *buckets = _CFAllocatorReallocateGC(allocator, heap->_buckets, __CFBinaryHeapNumBuckets(heap) * sizeof(struct __CFBinaryHeapBucket), isStrongMemory_Heap(heap) ? __kCFAllocatorGCScannedMemory : 0); - __CFAssignWithWriteBarrier((void **)&heap->_buckets, buckets); + void *buckets = CFAllocatorReallocate(allocator, heap->_buckets, __CFBinaryHeapNumBuckets(heap) * sizeof(struct __CFBinaryHeapBucket), 0); + *((void **)&heap->_buckets) = buckets; if (__CFOASafe) __CFSetLastAllocationEventName(heap->_buckets, "CFBinaryHeap (store)"); if (NULL == heap->_buckets) HALT; } @@ -371,14 +351,14 @@ void CFBinaryHeapAddValue(CFBinaryHeapRef heap, const void *value) { while (0 < idx) { void *item = heap->_buckets[pidx]._item; if ((!compare && item <= value) || (compare && kCFCompareGreaterThan != compare(item, value, heap->_context.info))) break; - __CFAssignWithWriteBarrier((void **)&heap->_buckets[idx]._item, item); + *((void **)&heap->_buckets[idx]._item) = item; idx = pidx; pidx = (idx - 1) >> 1; } if (heap->_callbacks.retain) { - __CFAssignWithWriteBarrier((void **)&heap->_buckets[idx]._item, (void *)heap->_callbacks.retain(allocator, (void *)value)); + *((void **)&heap->_buckets[idx]._item) = (void *)heap->_callbacks.retain(allocator, (void *)value); } else { - __CFAssignWithWriteBarrier((void **)&heap->_buckets[idx]._item, (void *)value); + *((void **)&heap->_buckets[idx]._item) = (void *)value; } } @@ -409,11 +389,11 @@ void CFBinaryHeapRemoveMinimumValue(CFBinaryHeapRef heap) { } } if ((!compare && item > val) || (compare && kCFCompareGreaterThan == compare(item, val, heap->_context.info))) break; - __CFAssignWithWriteBarrier((void **)&heap->_buckets[idx]._item, item); + *((void **)&heap->_buckets[idx]._item) = item; idx = cidx; cidx = (idx << 1) + 1; } - __CFAssignWithWriteBarrier((void **)&heap->_buckets[idx]._item, val); + *((void **)&heap->_buckets[idx]._item) = val; } void CFBinaryHeapRemoveAllValues(CFBinaryHeapRef heap) { diff --git a/CoreFoundation/Collections.subproj/CFBinaryHeap.h b/CoreFoundation/Collections.subproj/CFBinaryHeap.h index 781ccc7614..c59cddf657 100644 --- a/CoreFoundation/Collections.subproj/CFBinaryHeap.h +++ b/CoreFoundation/Collections.subproj/CFBinaryHeap.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBinaryHeap.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @header CFBinaryHeap @@ -261,7 +256,7 @@ CF_EXPORT void CFBinaryHeapGetValues(CFBinaryHeapRef heap, const void **values) what is expected by the applier function, the behavior is undefined. */ -CF_EXPORT void CFBinaryHeapApplyFunction(CFBinaryHeapRef heap, CFBinaryHeapApplierFunction applier, void *context); +CF_EXPORT void CFBinaryHeapApplyFunction(CFBinaryHeapRef heap, CFBinaryHeapApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFBinaryHeapAddValue diff --git a/CoreFoundation/Collections.subproj/CFBitVector.c b/CoreFoundation/Collections.subproj/CFBitVector.c index 7837acc28a..0545337e52 100644 --- a/CoreFoundation/Collections.subproj/CFBitVector.c +++ b/CoreFoundation/Collections.subproj/CFBitVector.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBitVector.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -123,9 +118,9 @@ CF_INLINE void __CFFlipBitVectorBit(__CFBitVectorBucket *buckets, CFIndex idx) { #if defined(DEBUG) CF_INLINE void __CFBitVectorValidateRange(CFBitVectorRef bv, CFRange range, const char *func) { - CFAssert(0 <= range.location && range.location < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): range.location index (%d) out of bounds", func, range.location); - CFAssert(0 <= range.length, __kCFLogAssertion, "%s(): range.length (%d) cannot be less than zero", func, range.length); - CFAssert(range.location + range.length <= __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): ending index (%d) out of bounds", func, range.location + range.length); + CFAssert2(0 <= range.location && range.location < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): range.location index (%ld) out of bounds", func, range.location); + CFAssert2(0 <= range.length, __kCFLogAssertion, "%s(): range.length (%ld) cannot be less than zero", func, range.length); + CFAssert2(range.location + range.length <= __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): ending index (%ld) out of bounds", func, range.location + range.length); } #else #define __CFBitVectorValidateRange(bf,r,f) @@ -191,7 +186,7 @@ enum { static void __CFBitVectorDeallocate(CFTypeRef cf) { CFMutableBitVectorRef bv = (CFMutableBitVectorRef)cf; CFAllocatorRef allocator = CFGetAllocator(bv); - if (bv->_buckets) _CFAllocatorDeallocateGC(allocator, bv->_buckets); + if (bv->_buckets) CFAllocatorDeallocate(allocator, bv->_buckets); } static CFTypeID __kCFBitVectorTypeID = _kCFRuntimeNotATypeID; @@ -209,7 +204,7 @@ static const CFRuntimeClass __CFBitVectorClass = { }; CFTypeID CFBitVectorGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBitVectorTypeID = _CFRuntimeRegisterClass(&__CFBitVectorClass); }); return __kCFBitVectorTypeID; } @@ -217,8 +212,8 @@ CFTypeID CFBitVectorGetTypeID(void) { static CFMutableBitVectorRef __CFBitVectorInit(CFAllocatorRef allocator, CFOptionFlags flags, CFIndex capacity, const uint8_t *bytes, CFIndex numBits) CF_RETURNS_RETAINED { CFMutableBitVectorRef memory; CFIndex size; - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%d) cannot be less than zero", __PRETTY_FUNCTION__, capacity); - CFAssert(0 <= numBits, __kCFLogAssertion, "%s(): numValues (%d) cannot be less than zero", __PRETTY_FUNCTION__, numBits); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= numBits, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numBits); size = sizeof(struct __CFBitVector) - sizeof(CFRuntimeBase); memory = (CFMutableBitVectorRef)_CFRuntimeCreateInstance(allocator, CFBitVectorGetTypeID(), size, NULL); if (NULL == memory) { @@ -226,7 +221,7 @@ static CFMutableBitVectorRef __CFBitVectorInit(CFAllocatorRef allocator, CFOptio } __CFBitVectorSetCapacity(memory, __CFBitVectorRoundUpCapacity(numBits)); __CFBitVectorSetNumBuckets(memory, __CFBitVectorNumBucketsForCapacity(__CFBitVectorRoundUpCapacity(numBits))); - __CFAssignWithWriteBarrier((void **)&memory->_buckets, _CFAllocatorAllocateGC(allocator, __CFBitVectorNumBuckets(memory) * sizeof(__CFBitVectorBucket), 0)); + *((void **)&memory->_buckets) = CFAllocatorAllocate(allocator, __CFBitVectorNumBuckets(memory) * sizeof(__CFBitVectorBucket), 0); if (__CFOASafe) __CFSetLastAllocationEventName(memory->_buckets, "CFBitVector (store)"); if (NULL == memory->_buckets) { CFRelease(memory); @@ -338,7 +333,7 @@ Boolean CFBitVectorContainsBit(CFBitVectorRef bv, CFRange range, CFBit value) { CFBit CFBitVectorGetBitAtIndex(CFBitVectorRef bv, CFIndex idx) { __CFGenericValidateType(bv, CFBitVectorGetTypeID()); - CFAssert(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert2(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); return __CFBitVectorBit(bv->_buckets, idx); } @@ -427,7 +422,7 @@ static void __CFBitVectorGrow(CFMutableBitVectorRef bv, CFIndex numNewValues) { CFAllocatorRef allocator = CFGetAllocator(bv); __CFBitVectorSetCapacity(bv, capacity); __CFBitVectorSetNumBuckets(bv, __CFBitVectorNumBucketsForCapacity(capacity)); - __CFAssignWithWriteBarrier((void **)&bv->_buckets, CFAllocatorReallocate(allocator, bv->_buckets, __CFBitVectorNumBuckets(bv) * sizeof(__CFBitVectorBucket), 0)); + *((void **)&bv->_buckets) = CFAllocatorReallocate(allocator, bv->_buckets, __CFBitVectorNumBuckets(bv) * sizeof(__CFBitVectorBucket), 0); if (__CFOASafe) __CFSetLastAllocationEventName(bv->_buckets, "CFBitVector (store)"); if (NULL == bv->_buckets) HALT; } @@ -442,7 +437,7 @@ static __CFBitVectorBucket __CFBitVectorOneBits(__CFBitVectorBucket bucketValue, void CFBitVectorSetCount(CFMutableBitVectorRef bv, CFIndex count) { CFIndex cnt; - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); cnt = __CFBitVectorCount(bv); switch (__CFBitVectorMutableVariety(bv)) { case kCFBitVectorMutable: @@ -461,8 +456,8 @@ void CFBitVectorSetCount(CFMutableBitVectorRef bv, CFIndex count) { void CFBitVectorFlipBitAtIndex(CFMutableBitVectorRef bv, CFIndex idx) { __CFGenericValidateType(bv, CFBitVectorGetTypeID()); - CFAssert(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); __CFFlipBitVectorBit(bv->_buckets, idx); } @@ -473,22 +468,22 @@ static __CFBitVectorBucket __CFBitVectorFlipBits(__CFBitVectorBucket bucketValue void CFBitVectorFlipBits(CFMutableBitVectorRef bv, CFRange range) { __CFGenericValidateType(bv, CFBitVectorGetTypeID()); __CFBitVectorValidateRange(bv, range, __PRETTY_FUNCTION__); - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); if (0 == range.length) return; __CFBitVectorInternalMap(bv, range, __CFBitVectorFlipBits, NULL); } void CFBitVectorSetBitAtIndex(CFMutableBitVectorRef bv, CFIndex idx, CFBit value) { __CFGenericValidateType(bv, CFBitVectorGetTypeID()); - CFAssert(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%d) out of bounds", __PRETTY_FUNCTION__, idx); - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= idx && idx < __CFBitVectorCount(bv), __kCFLogAssertion, "%s(): index (%ld) out of bounds", __PRETTY_FUNCTION__, idx); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable, __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); __CFSetBitVectorBit(bv->_buckets, idx, value); } void CFBitVectorSetBits(CFMutableBitVectorRef bv, CFRange range, CFBit value) { __CFGenericValidateType(bv, CFBitVectorGetTypeID()); __CFBitVectorValidateRange(bv, range, __PRETTY_FUNCTION__); - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable , __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable , __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); if (0 == range.length) return; if (value) { __CFBitVectorInternalMap(bv, range, __CFBitVectorOneBits, NULL); @@ -500,7 +495,7 @@ void CFBitVectorSetBits(CFMutableBitVectorRef bv, CFRange range, CFBit value) { void CFBitVectorSetAllBits(CFMutableBitVectorRef bv, CFBit value) { CFIndex nBuckets, leftover; __CFGenericValidateType(bv, CFBitVectorGetTypeID()); - CFAssert(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable , __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFBitVectorMutableVariety(bv) == kCFBitVectorMutable , __kCFLogAssertion, "%s(): bit vector is immutable", __PRETTY_FUNCTION__); nBuckets = __CFBitVectorCount(bv) / __CF_BITS_PER_BUCKET; leftover = __CFBitVectorCount(bv) - nBuckets * __CF_BITS_PER_BUCKET; if (0 < leftover) { diff --git a/CoreFoundation/Collections.subproj/CFBitVector.h b/CoreFoundation/Collections.subproj/CFBitVector.h index 4235d63e20..7ff963532d 100644 --- a/CoreFoundation/Collections.subproj/CFBitVector.h +++ b/CoreFoundation/Collections.subproj/CFBitVector.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBitVector.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBITVECTOR__) diff --git a/CoreFoundation/Collections.subproj/CFData.c b/CoreFoundation/Collections.subproj/CFData.c index d5b136abb7..3d966f2c83 100644 --- a/CoreFoundation/Collections.subproj/CFData.c +++ b/CoreFoundation/Collections.subproj/CFData.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFData.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Kevin Perry */ @@ -75,7 +70,6 @@ enum { __kCFBytesInline = 0x04, __kCFUseAllocator = 0x08, __kCFDontDeallocate = 0x10, - __kCFAllocatesCollectable = 0x20, }; enum { @@ -90,7 +84,6 @@ CF_INLINE Boolean __CFDataIsMutable(CFDataRef data) {return __CFDataGetInfoBit(d CF_INLINE Boolean __CFDataIsGrowable(CFDataRef data) {return __CFDataGetInfoBit(data, __kCFGrowable);} CF_INLINE Boolean __CFDataBytesInline(CFDataRef data) {return __CFDataGetInfoBit(data, __kCFBytesInline);} CF_INLINE Boolean __CFDataUseAllocator(CFDataRef data) {return __CFDataGetInfoBit(data, __kCFUseAllocator);} -CF_INLINE Boolean __CFDataAllocatesCollectable(CFDataRef data) {return __CFDataGetInfoBit(data, __kCFAllocatesCollectable);} CF_INLINE UInt32 __CFMutableVariety(const void *cf) { return __CFBitfieldGetValue(((const CFRuntimeBase *)cf)->_cfinfo[CF_INFO_BITS], 1, 0); @@ -105,7 +98,7 @@ CF_INLINE UInt32 __CFMutableVarietyFromFlags(UInt32 flags) { } #define __CFGenericValidateMutabilityFlags(flags) \ - CFAssert(__CFMutableVarietyFromFlags(flags) != 0x2, __kCFLogAssertion, "%s(): flags 0x%x do not correctly specify the mutable variety", __PRETTY_FUNCTION__, flags); + CFAssert2(__CFMutableVarietyFromFlags(flags) != 0x2, __kCFLogAssertion, "%s(): flags 0x%lx do not correctly specify the mutable variety", __PRETTY_FUNCTION__, (unsigned long)flags); CF_INLINE void __CFDataSetInline(CFDataRef data, Boolean flag) { __CFBitfieldSetValue(((CFRuntimeBase *)data)->_cfinfo[CF_INFO_BITS], 2, 2, (flag ? 1 : 0)); @@ -194,9 +187,9 @@ static void __CFDataHandleOutOfMemory(CFTypeRef obj, CFIndex numBytes) { #if defined(DEBUG) CF_INLINE void __CFDataValidateRange(CFDataRef data, CFRange range, const char *func) { - CFAssert(0 <= range.location && range.location <= __CFDataLength(data), __kCFLogAssertion, "%s(): range.location index (%d) out of bounds", func, range.location); - CFAssert(0 <= range.length, __kCFLogAssertion, "%s(): length (%d) cannot be less than zero", func, range.length); - CFAssert(range.location + range.length <= __CFDataLength(data), __kCFLogAssertion, "%s(): ending index (%d) out of bounds", func, range.location + range.length); + CFAssert2(0 <= range.location && range.location <= __CFDataLength(data), __kCFLogAssertion, "%s(): range.location index (%ld) out of bounds", func, range.location); + CFAssert2(0 <= range.length, __kCFLogAssertion, "%s(): length (%ld) cannot be less than zero", func, range.length); + CFAssert2(range.location + range.length <= __CFDataLength(data), __kCFLogAssertion, "%s(): ending index (%ld) out of bounds", func, range.location + range.length); } #else #define __CFDataValidateRange(a,r,f) @@ -254,15 +247,7 @@ static Boolean __CFDataShouldAllocateCleared(CFDataRef data, CFIndex size) { if (__CFDataUseAllocator(data)) { result = false; } else { - if (__CFDataAllocatesCollectable(data)) { -#if __LP64__ - result = false; -#else - result = (size > (64 * 1024)); -#endif - } else { - result = (size > (128 * 1024)); - } + result = (size > (128 * 1024)); } return result; } @@ -276,15 +261,11 @@ static void *__CFDataAllocate(CFDataRef data, CFIndex size, Boolean clear) { bytes = CFAllocatorAllocate(allocator, size, 0); if (clear) memset((uint8_t *)bytes, 0, size); } else { - if (__CFDataAllocatesCollectable(data)) { - bytes = auto_zone_allocate_object(objc_collectableZone(), size, AUTO_MEMORY_UNSCANNED, 0, clear); - } else { - if (clear) { - bytes = calloc(1, size); - } else { - bytes = malloc(size); - } - } + if (clear) { + bytes = calloc(1, size); + } else { + bytes = malloc(size); + } } return bytes; } @@ -292,19 +273,19 @@ static void *__CFDataAllocate(CFDataRef data, CFIndex size, Boolean clear) { static void __CFDataDeallocate(CFTypeRef cf) { CFMutableDataRef data = (CFMutableDataRef)cf; if (!__CFDataBytesInline(data) && !__CFDataGetInfoBit(data, __kCFDontDeallocate)) { - CFAllocatorRef deallocator = data->_bytesDeallocator; - if (deallocator != NULL) { - _CFAllocatorDeallocateGC(deallocator, data->_bytes); - CFRelease(deallocator); - data->_bytes = NULL; - } else { - if (__CFDataUseAllocator(data)) { - _CFAllocatorDeallocateGC(__CFGetAllocator(data), data->_bytes); - } else if (!__CFDataAllocatesCollectable(data) && data->_bytes) { - free(data->_bytes); - } - data->_bytes = NULL; - } + CFAllocatorRef deallocator = data->_bytesDeallocator; + if (deallocator != NULL) { + CFAllocatorDeallocate(deallocator, data->_bytes); + CFRelease(deallocator); + data->_bytes = NULL; + } else { + if (__CFDataUseAllocator(data)) { + CFAllocatorDeallocate(__CFGetAllocator(data), data->_bytes); + } else if (data->_bytes) { + free(data->_bytes); + } + data->_bytes = NULL; + } } } @@ -323,21 +304,18 @@ static const CFRuntimeClass __CFDataClass = { }; CFTypeID CFDataGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFDataTypeID = _CFRuntimeRegisterClass(&__CFDataClass); }); return __kCFDataTypeID; } -CF_SWIFT_EXPORT void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, CFIndex capacity, const uint8_t *bytes, CFIndex length, Boolean noCopy) { +void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, CFIndex capacity, const uint8_t *bytes, CFIndex length, Boolean noCopy) { Boolean isMutable = ((flags & __kCFMutable) != 0); Boolean isGrowable = ((flags & __kCFGrowable) != 0); - Boolean isDontDeallocate = ((flags & __kCFDontDeallocate) != 0); __CFDataSetNumBytesUsed(memory, 0); __CFDataSetLength(memory, 0); - if(isDontDeallocate) { - __CFDataSetInfoBits(memory, __kCFDontDeallocate); - } + __CFDataSetInfoBits(memory, __kCFDontDeallocate); if (isMutable && isGrowable) { __CFDataSetCapacity(memory, __CFDataRoundUpCapacity(1)); @@ -369,16 +347,16 @@ CF_SWIFT_EXPORT void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, C __CFSetMutableVariety(memory, __CFMutableVarietyFromFlags(flags)); } + // NULL bytesDeallocator to this function does not mean the default allocator, it means // that there should be no deallocator, and the bytes should be copied. static CFMutableDataRef __CFDataInit(CFAllocatorRef allocator, CFOptionFlags flags, CFIndex capacity, const uint8_t *bytes, CFIndex length, CFAllocatorRef bytesDeallocator) CF_RETURNS_RETAINED { CFMutableDataRef memory; __CFGenericValidateMutabilityFlags(flags); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%d) cannot be less than zero", __PRETTY_FUNCTION__, capacity); - CFAssert(kCFFixedMutable != __CFMutableVarietyFromFlags(flags) || length <= capacity, __kCFLogAssertion, "%s(): for kCFFixedMutable type, capacity (%d) must be greater than or equal to number of initial elements (%d)", __PRETTY_FUNCTION__, capacity, length); - CFAssert(0 <= length, __kCFLogAssertion, "%s(): length (%d) cannot be less than zero", __PRETTY_FUNCTION__, length); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert3(kCFFixedMutable != __CFMutableVarietyFromFlags(flags) || length <= capacity, __kCFLogAssertion, "%s(): for kCFFixedMutable type, capacity (%ld) must be greater than or equal to number of initial elements (%ld)", __PRETTY_FUNCTION__, capacity, length); + CFAssert2(0 <= length, __kCFLogAssertion, "%s(): length (%ld) cannot be less than zero", __PRETTY_FUNCTION__, length); - Boolean collectableMemory = CF_IS_COLLECTABLE_ALLOCATOR(allocator); Boolean noCopy = bytesDeallocator != NULL; Boolean isMutable = ((flags & __kCFMutable) != 0); Boolean isGrowable = ((flags & __kCFGrowable) != 0); @@ -401,32 +379,8 @@ static CFMutableDataRef __CFDataInit(CFAllocatorRef allocator, CFOptionFlags fla __CFDataSetLength(memory, 0); __CFDataSetInfoBits(memory, (allocateInline ? __kCFBytesInline : 0) | - (useAllocator ? __kCFUseAllocator : 0) | - (collectableMemory ? __kCFAllocatesCollectable : 0)); + (useAllocator ? __kCFUseAllocator : 0)); - BOOL finalize = YES; - BOOL scan = YES; - if (collectableMemory) { - if (allocateInline) { - // We have no pointer to anything that needs to be reclaimed, so don't scan or finalize. - scan = NO; - finalize = NO; - } else if (noCopy) { - if (CF_IS_COLLECTABLE_ALLOCATOR(bytesDeallocator)) { - // We're taking responsibility for externally GC-allocated memory, so scan us, but we don't need to finalize. - finalize = NO; - } else if (bytesDeallocator == kCFAllocatorNull) { - // We don't have responsibility for these bytes, so there's no need to be scanned and we don't need to finalize. - scan = NO; - finalize = NO; - } else { - // We have a pointer to non-GC-allocated memory, so don't scan, but do finalize. - scan = NO; - } - } - if (!scan) auto_zone_set_unscanned(objc_collectableZone(), memory); - if (!finalize) auto_zone_set_nofinalize(objc_collectableZone(), memory); - } if (isMutable && isGrowable) { __CFDataSetCapacity(memory, __CFDataRoundUpCapacity(1)); __CFDataSetNumBytes(memory, __CFDataNumBytesForCapacity(__CFDataRoundUpCapacity(1))); @@ -438,18 +392,8 @@ static CFMutableDataRef __CFDataInit(CFAllocatorRef allocator, CFOptionFlags fla __CFSetMutableVariety(memory, kCFFixedMutable); } if (noCopy) { - __CFAssignWithWriteBarrier((void **)&memory->_bytes, (uint8_t *)bytes); - if (finalize) { - if ((0)) { - memory->_bytesDeallocator = bytesDeallocator; - } else { - memory->_bytesDeallocator = (CFAllocatorRef)CFRetain(bytesDeallocator); - } - } - if (CF_IS_COLLECTABLE_ALLOCATOR(bytesDeallocator) && !(0)) { - // we assume that the no-copy memory is GC-allocated with a retain count of (at least) 1 and we should release it now instead of waiting until __CFDataDeallocate. - auto_zone_release(objc_collectableZone(), memory->_bytes); - } + *((void **)&memory->_bytes) = (uint8_t *)bytes; + memory->_bytesDeallocator = (CFAllocatorRef)CFRetain(bytesDeallocator); __CFDataSetNumBytesUsed(memory, length); __CFDataSetLength(memory, length); // Mutable no-copy datas are not allowed, so don't bother setting needsToZero flag. @@ -457,7 +401,7 @@ static CFMutableDataRef __CFDataInit(CFAllocatorRef allocator, CFOptionFlags fla Boolean cleared = (isMutable && !isGrowable && !_CFExecutableLinkedOnOrAfter(CFSystemVersionSnowLeopard)); if (!allocateInline) { // assume that allocators give 16-byte aligned memory back -- it is their responsibility - __CFAssignWithWriteBarrier((void **)&memory->_bytes, __CFDataAllocate(memory, __CFDataNumBytes(memory) * sizeof(uint8_t), cleared)); + *((void **)&memory->_bytes) = __CFDataAllocate(memory, __CFDataNumBytes(memory) * sizeof(uint8_t), cleared); if (__CFOASafe) __CFSetLastAllocationEventName(memory->_bytes, "CFData (store)"); if (NULL == memory->_bytes) { CFRelease(memory); @@ -485,7 +429,7 @@ CFDataRef CFDataCreate(CFAllocatorRef allocator, const uint8_t *bytes, CFIndex l } CFDataRef CFDataCreateWithBytesNoCopy(CFAllocatorRef allocator, const uint8_t *bytes, CFIndex length, CFAllocatorRef bytesDeallocator) { - CFAssert((0 == length || bytes != NULL), __kCFLogAssertion, "%s(): bytes pointer cannot be NULL if length is non-zero", __PRETTY_FUNCTION__); + CFAssert1((0 == length || bytes != NULL), __kCFLogAssertion, "%s(): bytes pointer cannot be NULL if length is non-zero", __PRETTY_FUNCTION__); if (NULL == bytesDeallocator) bytesDeallocator = __CFGetDefaultAllocator(); return __CFDataInit(allocator, kCFImmutable, length, bytes, length, bytesDeallocator); } @@ -500,26 +444,16 @@ CF_PRIVATE CFMutableDataRef _CFDataCreateFixedMutableWithBuffer(CFAllocatorRef a } CFMutableDataRef CFDataCreateMutable(CFAllocatorRef allocator, CFIndex capacity) { - // Do not allow magic allocator for now for mutable datas, because it - // isn't remembered for proper handling later when growth of the buffer - // has to occur. - Boolean wasMagic = (0); CFMutableDataRef r = (CFMutableDataRef)__CFDataInit(allocator, (0 == capacity) ? kCFMutable : kCFFixedMutable, capacity, NULL, 0, NULL); - if (wasMagic) CFMakeCollectable(r); return r; } CFMutableDataRef CFDataCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFDataRef data) { - // Do not allow magic allocator for now for mutable datas, because it - // isn't remembered for proper handling later when growth of the buffer - // has to occur. - Boolean wasMagic = (0); CFMutableDataRef r = (CFMutableDataRef) __CFDataInit(allocator, (0 == capacity) ? kCFMutable : kCFFixedMutable, capacity, CFDataGetBytePtr(data), CFDataGetLength(data), NULL); - if (wasMagic) CFMakeCollectable(r); return r; } -CF_EXPORT CFIndex CFDataGetLength(CFDataRef data) { +CFIndex CFDataGetLength(CFDataRef data) { CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), CFIndex, (NSData *)data, length); __CFGenericValidateType(data, CFDataGetTypeID()); return __CFDataLength(data); @@ -534,7 +468,7 @@ const uint8_t *CFDataGetBytePtr(CFDataRef data) { uint8_t *CFDataGetMutableBytePtr(CFMutableDataRef data) { CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), uint8_t *, (NSMutableData *)data, mutableBytes); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); // compaction: if inline, always do the computation. return __CFDataBytesInline(data) ? (uint8_t *)__CFDataInlineBytesPtr(data) : data->_bytes; } @@ -565,24 +499,20 @@ static void __CFDataGrow(CFMutableDataRef data, CFIndex numNewValues, Boolean cl } } if (bytes == NULL) { - // If the calloc/memmove approach either failed or was never attempted, then realloc. - allocateCleared = false; - if (__CFDataUseAllocator(data)) { - bytes = CFAllocatorReallocate(allocator, oldBytes, numBytes * sizeof(uint8_t), 0); -#if DEPLOYMENT_TARGET_MACOSX - } else if (__CFDataAllocatesCollectable(data)) { - bytes = malloc_zone_realloc(objc_collectableZone(), oldBytes, numBytes * sizeof(uint8_t)); -#endif + // If the calloc/memmove approach either failed or was never attempted, then realloc. + allocateCleared = false; + if (__CFDataUseAllocator(data)) { + bytes = CFAllocatorReallocate(allocator, oldBytes, numBytes * sizeof(uint8_t), 0); } else { - bytes = realloc(oldBytes, numBytes * sizeof(uint8_t)); - } + bytes = realloc(oldBytes, numBytes * sizeof(uint8_t)); + } } if (NULL == bytes) __CFDataHandleOutOfMemory(data, numBytes * sizeof(uint8_t)); __CFDataSetCapacity(data, capacity); __CFDataSetNumBytes(data, numBytes); if (clear && !allocateCleared && oldLength < newLength) memset((uint8_t *)bytes + oldLength, 0, newLength - oldLength); __CFDataSetNeedsToZero(data, !allocateCleared); - __CFAssignWithWriteBarrier((void **)&data->_bytes, bytes); + *((void **)&data->_bytes) = bytes; if (__CFOASafe) __CFSetLastAllocationEventName(data->_bytes, "CFData (store)"); } @@ -590,7 +520,7 @@ void CFDataSetLength(CFMutableDataRef data, CFIndex newLength) { CFIndex oldLength, capacity; Boolean isGrowable; CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), void, (NSMutableData *)data, setLength:(NSUInteger)newLength); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); oldLength = __CFDataLength(data); capacity = __CFDataCapacity(data); isGrowable = __CFDataIsGrowable(data); @@ -605,7 +535,9 @@ void CFDataSetLength(CFMutableDataRef data, CFIndex newLength) { if (isGrowable) { __CFDataGrow(data, newLength - oldLength, true); } else { - CFAssert(newLength <= __CFDataCapacity(data), __kCFLogAssertion, "%s(): fixed-capacity data is full", __PRETTY_FUNCTION__); + CFAssert1(newLength <= __CFDataCapacity(data), __kCFLogAssertion, "%s(): fixed-capacity data is full", __PRETTY_FUNCTION__); + // Continuing after this could cause buffer overruns. + if (newLength > __CFDataCapacity(data)) HALT; } } else if (oldLength < newLength && __CFDataNeedsToZero(data)) { memset(CFDataGetMutableBytePtr(data) + oldLength, 0, newLength - oldLength); @@ -619,20 +551,20 @@ void CFDataSetLength(CFMutableDataRef data, CFIndex newLength) { void CFDataIncreaseLength(CFMutableDataRef data, CFIndex extraLength) { CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), void, (NSMutableData *)data, increaseLengthBy:(NSUInteger)extraLength); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); if (extraLength < 0) HALT; // Avoid integer overflow. CFDataSetLength(data, __CFDataLength(data) + extraLength); } void CFDataAppendBytes(CFMutableDataRef data, const uint8_t *bytes, CFIndex length) { CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), void, (NSMutableData *)data, appendBytes:(const void *)bytes length:(NSUInteger)length); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); CFDataReplaceBytes(data, CFRangeMake(__CFDataLength(data), 0), bytes, length); } void CFDataDeleteBytes(CFMutableDataRef data, CFRange range) { CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), void, (NSMutableData *)data, replaceBytesInRange:NSMakeRange(range.location, range.length) withBytes:NULL length:0); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); CFDataReplaceBytes(data, range, NULL, 0); } @@ -640,8 +572,8 @@ void CFDataReplaceBytes(CFMutableDataRef data, CFRange range, const uint8_t *new CF_OBJC_FUNCDISPATCHV(CFDataGetTypeID(), void, (NSMutableData *)data, replaceBytesInRange:NSMakeRange(range.location, range.length) withBytes:(const void *)newBytes length:(NSUInteger)newLength); __CFGenericValidateType(data, CFDataGetTypeID()); __CFDataValidateRange(data, range, __PRETTY_FUNCTION__); - CFAssert(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); - CFAssert(0 <= newLength, __kCFLogAssertion, "%s(): newLength (%d) cannot be less than zero", __PRETTY_FUNCTION__, newLength); + CFAssert1(__CFDataIsMutable(data), __kCFLogAssertion, "%s(): data is immutable", __PRETTY_FUNCTION__); + CFAssert2(0 <= newLength, __kCFLogAssertion, "%s(): newLength (%ld) cannot be less than zero", __PRETTY_FUNCTION__, newLength); CFIndex len = __CFDataLength(data); if (len < 0 || range.length < 0 || newLength < 0) HALT; @@ -662,7 +594,7 @@ void CFDataReplaceBytes(CFMutableDataRef data, CFRange range, const uint8_t *new } break; case kCFFixedMutable: - CFAssert(newCount <= __CFDataCapacity(data), __kCFLogAssertion, "%s(): fixed-capacity data is full", __PRETTY_FUNCTION__); + CFAssert1(newCount <= __CFDataCapacity(data), __kCFLogAssertion, "%s(): fixed-capacity data is full", __PRETTY_FUNCTION__); // Continuing after this could cause buffer overruns. if (newCount > __CFDataCapacity(data)) HALT; break; diff --git a/CoreFoundation/Collections.subproj/CFData.h b/CoreFoundation/Collections.subproj/CFData.h index 4ef125fb0f..ea35587bb1 100644 --- a/CoreFoundation/Collections.subproj/CFData.h +++ b/CoreFoundation/Collections.subproj/CFData.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFData.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFDATA__) diff --git a/CoreFoundation/Collections.subproj/CFDictionary.c b/CoreFoundation/Collections.subproj/CFDictionary.c index 99089bf9cb..053b9a4d98 100644 --- a/CoreFoundation/Collections.subproj/CFDictionary.c +++ b/CoreFoundation/Collections.subproj/CFDictionary.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFDictionary.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Michael LeHew Machine generated from Notes/HashingCode.template */ @@ -109,7 +104,7 @@ static const CFRuntimeClass __CFDictionaryClass = { }; CFTypeID CFDictionaryGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFDictionaryTypeID = _CFRuntimeRegisterClass(&__CFDictionaryClass); }); @@ -121,76 +116,6 @@ static CFBasicHashRef __CFDictionaryCreateGeneric(CFAllocatorRef allocator, cons CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { // all this crap is just for figuring out two flags for GC in the way done historically; it probably simplifies down to three lines, but we let the compiler worry about that - Boolean set_cb = false; - Boolean std_cb = false; - const_any_pointer_t (*key_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*key_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - const_any_pointer_t (*value_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*value_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - - if ((NULL == keyCallBacks || 0 == keyCallBacks->version) && (!useValueCB || NULL == valueCallBacks || 0 == valueCallBacks->version)) { - Boolean keyRetainNull = NULL == keyCallBacks || NULL == keyCallBacks->retain; - Boolean keyReleaseNull = NULL == keyCallBacks || NULL == keyCallBacks->release; - Boolean keyEquateNull = NULL == keyCallBacks || NULL == keyCallBacks->equal; - Boolean keyHashNull = NULL == keyCallBacks || NULL == keyCallBacks->hash; - Boolean keyDescribeNull = NULL == keyCallBacks || NULL == keyCallBacks->copyDescription; - - Boolean valueRetainNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->retain)) || (!useValueCB && keyRetainNull); - Boolean valueReleaseNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->release)) || (!useValueCB && keyReleaseNull); - Boolean valueEquateNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->equal)) || (!useValueCB && keyEquateNull); - Boolean valueDescribeNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeNull); - - Boolean keyRetainStd = keyRetainNull || __CFTypeCollectionRetain == keyCallBacks->retain; - Boolean keyReleaseStd = keyReleaseNull || __CFTypeCollectionRelease == keyCallBacks->release; - Boolean keyEquateStd = keyEquateNull || CFEqual == keyCallBacks->equal; - Boolean keyHashStd = keyHashNull || CFHash == keyCallBacks->hash; - Boolean keyDescribeStd = keyDescribeNull || CFCopyDescription == keyCallBacks->copyDescription; - - Boolean valueRetainStd = (useValueCB && (valueRetainNull || __CFTypeCollectionRetain == valueCallBacks->retain)) || (!useValueCB && keyRetainStd); - Boolean valueReleaseStd = (useValueCB && (valueReleaseNull || __CFTypeCollectionRelease == valueCallBacks->release)) || (!useValueCB && keyReleaseStd); - Boolean valueEquateStd = (useValueCB && (valueEquateNull || CFEqual == valueCallBacks->equal)) || (!useValueCB && keyEquateStd); - Boolean valueDescribeStd = (useValueCB && (valueDescribeNull || CFCopyDescription == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeStd); - - if (keyRetainStd && keyReleaseStd && keyEquateStd && keyHashStd && keyDescribeStd && valueRetainStd && valueReleaseStd && valueEquateStd && valueDescribeStd) { - set_cb = true; - if (!(keyRetainNull || keyReleaseNull || keyEquateNull || keyHashNull || keyDescribeNull || valueRetainNull || valueReleaseNull || valueEquateNull || valueDescribeNull)) { - std_cb = true; - } else { - // just set these to tickle the GC Strong logic below in a way that mimics past practice - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - } - } - - if (!set_cb) { - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - - if (std_cb || value_retain != NULL || value_release != NULL) { - flags |= kCFBasicHashStrongValues; - } - if (std_cb || key_retain != NULL || key_release != NULL) { - flags |= kCFBasicHashStrongKeys; - } - } - CFBasicHashCallbacks callbacks; callbacks.retainKey = keyCallBacks ? (uintptr_t (*)(CFAllocatorRef, uintptr_t))keyCallBacks->retain : NULL; @@ -216,7 +141,7 @@ CF_PRIVATE CFHashRef __CFDictionaryCreateTransfer(CFAllocatorRef allocator, cons const_any_pointer_t *vlist = klist; #endif CFTypeID typeID = CFDictionaryGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); @@ -253,9 +178,8 @@ CFHashRef CFDictionaryCreate(CFAllocatorRef allocator, const_any_pointer_t *klis const_any_pointer_t *vlist = klist; const CFDictionaryValueCallBacks *valueCallBacks = 0; #endif - CFTypeID typeID = CFDictionaryGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFBasicHashRef ht = __CFDictionaryCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; if (0 < numValues) CFBasicHashSetCapacity(ht, numValues); @@ -276,7 +200,7 @@ CFMutableHashRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex cap const CFDictionaryValueCallBacks *valueCallBacks = 0; #endif CFTypeID typeID = CFDictionaryGetTypeID(); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = __CFDictionaryCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; _CFRuntimeSetInstanceTypeIDAndIsa(ht, typeID); @@ -286,56 +210,32 @@ CFMutableHashRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex cap CFHashRef CFDictionaryCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFTypeID typeID = CFDictionaryGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFDictionary cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFDictionary cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); Boolean markImmutable = false; CFBasicHashRef ht = NULL; - if (CF_IS_OBJC(typeID, other) || CF_IS_SWIFT(typeID, other)) { - if (objc_collectingEnabled()) { - CFIndex numValues = CFDictionaryGetCount(other); - const_any_pointer_t vbuffer[256], kbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); -#if CFSet || CFBag - const_any_pointer_t *klist = vlist; - CFDictionaryGetValues(other, vlist); -#endif -#if CFDictionary - const_any_pointer_t *klist = (numValues <= 256) ? kbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - CFDictionaryGetKeysAndValues(other, klist, vlist); -#endif - ht = __CFDictionaryCreateGeneric(allocator, & kCFTypeDictionaryKeyCallBacks, CFDictionary ? & kCFTypeDictionaryValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (klist != kbuffer && klist != vlist) CFAllocatorDeallocate(kCFAllocatorSystemDefault, klist); - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; - } - else { // non-GC + if (CF_IS_OBJC(typeID, other)) { #if CFDictionary || CFSet -#if DEPLOYMENT_RUNTIME_SWIFT - ht = (CFBasicHashRef)CF_SWIFT_CALLV(other, NSDictionary.copy); -#else - ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); -#endif + ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); #elif CFBag - CFIndex numValues = CFDictionaryGetCount(other); - const_any_pointer_t vbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - const_any_pointer_t *klist = vlist; - CFDictionaryGetValues(other, vlist); - ht = __CFDictionaryCreateGeneric(allocator, & kCFTypeDictionaryKeyCallBacks, CFDictionary ? & kCFTypeDictionaryValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; -#endif // CFBag + CFIndex numValues = CFDictionaryGetCount(other); + const_any_pointer_t vbuffer[256]; + const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); + const_any_pointer_t *klist = vlist; + CFDictionaryGetValues(other, vlist); + ht = __CFDictionaryCreateGeneric(allocator, & kCFTypeDictionaryKeyCallBacks, CFDictionary ? & kCFTypeDictionaryValueCallBacks : NULL, CFDictionary); + if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); + for (CFIndex idx = 0; ht && idx < numValues; idx++) { + CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); } - } - else { // non-objc types + if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); + markImmutable = true; +#endif // CFBag + } else if (CF_IS_SWIFT(typeID, other)) { +#if CFDictionary || CFSet + ht = (CFBasicHashRef)CF_SWIFT_CALLV(other, NSObject.copyWithZone, nil); +#endif + } else { // non-objc types ht = CFBasicHashCreateCopy(allocator, (CFBasicHashRef)other); markImmutable = true; } @@ -350,9 +250,9 @@ CFHashRef CFDictionaryCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFMutableHashRef CFDictionaryCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFHashRef other) { CFTypeID typeID = CFDictionaryGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFDictionary cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFDictionary cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = NULL; if (CF_IS_OBJC(typeID, other) || CF_IS_SWIFT(typeID, other)) { CFIndex numValues = CFDictionaryGetCount(other); @@ -388,12 +288,13 @@ CFIndex CFDictionaryGetCount(CFHashRef hc) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (NSDictionary *)hc, count); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.count); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (NSSet *)hc, count); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); return CFBasicHashGetCount((CFBasicHashRef)hc); } - + #if CFDictionary CFIndex CFDictionaryGetCountOfKey(CFHashRef hc, const_any_pointer_t key) { #endif @@ -405,12 +306,13 @@ CFIndex CFDictionaryGetCountOfValue(CFHashRef hc, const_any_pointer_t key) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (NSDictionary *)hc, countForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.countForKey, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (NSSet *)hc, countForObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); return CFBasicHashGetCountOfKey((CFBasicHashRef)hc, (uintptr_t)key); } - + #if CFDictionary Boolean CFDictionaryContainsKey(CFHashRef hc, const_any_pointer_t key) { #endif @@ -422,6 +324,7 @@ Boolean CFDictionaryContainsValue(CFHashRef hc, const_any_pointer_t key) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), char, (NSDictionary *)hc, containsKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), char, (CFSwiftRef)hc, NSSet.containsObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), char, (NSSet *)hc, containsObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); @@ -434,44 +337,42 @@ const_any_pointer_t CFDictionaryGetValue(CFHashRef hc, const_any_pointer_t key) if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), const_any_pointer_t, (NSDictionary *)hc, objectForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), const_any_pointer_t, (CFSwiftRef)hc, NSSet.member, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), const_any_pointer_t, (NSSet *)hc, member:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); return (0 < bkt.count ? (const_any_pointer_t)bkt.weak_value : 0); } - + Boolean CFDictionaryGetValueIfPresent(CFHashRef hc, const_any_pointer_t key, const_any_pointer_t *value) { #if CFDictionary if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), Boolean, (CFSwiftRef)hc, NSDictionary.__getValue, value, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), Boolean, (NSDictionary *)hc, __getValue:(id *)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), Boolean, (CFSwiftRef)hc, NSSet.__getValue, value, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), Boolean, (NSSet *)hc, __getValue:(id *)value forObj:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (value) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongValues)) { - __CFAssignWithWriteBarrier((void **)value, (void *)bkt.weak_value); - } else { - *value = (const_any_pointer_t)bkt.weak_value; - } + *value = (const_any_pointer_t)bkt.weak_value; } return true; } return false; } - + #if CFDictionary CFIndex CFDictionaryGetCountOfValue(CFHashRef hc, const_any_pointer_t value) { - CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.countForObject, value); + CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.count); CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), CFIndex, (NSDictionary *)hc, countForObject:(id)value); __CFGenericValidateType(hc, CFDictionaryGetTypeID()); return CFBasicHashGetCountOfValue((CFBasicHashRef)hc, (uintptr_t)value); } - + Boolean CFDictionaryContainsValue(CFHashRef hc, const_any_pointer_t value) { CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), char, (CFSwiftRef)hc, NSDictionary.containsObject, value); CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), char, (NSDictionary *)hc, containsObject:(id)value); @@ -484,18 +385,14 @@ CF_EXPORT Boolean CFDictionaryGetKeyIfPresent(CFHashRef hc, const_any_pointer_t CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (actualkey) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongKeys)) { - __CFAssignWithWriteBarrier((void **)actualkey, (void *)bkt.weak_key); - } else { - *actualkey = (const_any_pointer_t)bkt.weak_key; - } + *actualkey = (const_any_pointer_t)bkt.weak_key; } return true; } return false; } #endif - + #if CFDictionary void CFDictionaryGetKeysAndValues(CFHashRef hc, const_any_pointer_t *keybuf, const_any_pointer_t *valuebuf) { #endif @@ -508,27 +405,13 @@ void CFDictionaryGetValues(CFHashRef hc, const_any_pointer_t *keybuf) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSDictionary *)hc, getObjects:(id *)valuebuf andKeys:(id *)keybuf); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSSet.getObjects, keybuf); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSSet *)hc, getObjects:(id *)keybuf); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - if (kCFUseCollectableAllocator) { - CFOptionFlags flags = CFBasicHashGetFlags((CFBasicHashRef)hc); - __block const_any_pointer_t *keys = keybuf; - __block const_any_pointer_t *values = valuebuf; - CFBasicHashApply((CFBasicHashRef)hc, ^(CFBasicHashBucket bkt) { - for (CFIndex cnt = bkt.count; cnt--;) { - if (keybuf && (flags & kCFBasicHashStrongKeys)) { __CFAssignWithWriteBarrier((void **)keys, (void *)bkt.weak_key); keys++; } - if (keybuf && !(flags & kCFBasicHashStrongKeys)) { *keys++ = (const_any_pointer_t)bkt.weak_key; } - if (valuebuf && (flags & kCFBasicHashStrongValues)) { __CFAssignWithWriteBarrier((void **)values, (void *)bkt.weak_value); values++; } - if (valuebuf && !(flags & kCFBasicHashStrongValues)) { *values++ = (const_any_pointer_t)bkt.weak_value; } - } - return (Boolean)true; - }); - } else { - CFBasicHashGetElements((CFBasicHashRef)hc, CFDictionaryGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); - } + CFBasicHashGetElements((CFBasicHashRef)hc, CFDictionaryGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); } - + void CFDictionaryApplyFunction(CFHashRef hc, CFDictionaryApplierFunction applier, any_pointer_t context) { FAULT_CALLBACK((void **)&(applier)); #if CFDictionary @@ -536,6 +419,7 @@ void CFDictionaryApplyFunction(CFHashRef hc, CFDictionaryApplierFunction applier if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSDictionary *)hc, __apply:(void (*)(const void *, const void *, void *))applier context:(void *)context); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSSet.__apply, applier, context); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSSet *)hc, __applyValues:(void (*)(const void *, void *))applier context:(void *)context); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); @@ -565,7 +449,7 @@ CF_EXPORT unsigned long _CFDictionaryFastEnumeration(CFHashRef hc, struct __objc // This function is for Foundation's benefit; no one else should use it. CF_EXPORT Boolean _CFDictionaryIsMutable(CFHashRef hc) { - if (CF_IS_SWIFT(CFDictionaryGetTypeID(), hc)) return true; + if (CF_IS_SWIFT(CFDictionaryGetTypeID(), hc)) return false; if (CF_IS_OBJC(CFDictionaryGetTypeID(), hc)) return false; __CFGenericValidateType(hc, CFDictionaryGetTypeID()); return CFBasicHashIsMutable((CFBasicHashRef)hc); @@ -576,8 +460,8 @@ CF_EXPORT void _CFDictionarySetCapacity(CFMutableHashRef hc, CFIndex cap) { if (CF_IS_SWIFT(CFDictionaryGetTypeID(), hc)) return; if (CF_IS_OBJC(CFDictionaryGetTypeID(), hc)) return; __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); - CFAssert(CFDictionaryGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFDictionaryGetCount(hc)); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert3(CFDictionaryGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFDictionaryGetCount(hc)); CFBasicHashSetCapacity((CFBasicHashRef)hc, cap); } @@ -606,7 +490,7 @@ CF_EXPORT void _CFDictionarySetKVOBit(CFHashRef hc, CFIndex bit) { #define CF_OBJC_KVO_WILLCHANGEALL(obj) #define CF_OBJC_KVO_DIDCHANGEALL(obj) #endif - + #if CFDictionary void CFDictionaryAddValue(CFMutableHashRef hc, const_any_pointer_t key, const_any_pointer_t value) { #endif @@ -619,10 +503,11 @@ void CFDictionaryAddValue(CFMutableHashRef hc, const_any_pointer_t key) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableDictionary *)hc, __addObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.addObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableSet *)hc, addObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -643,10 +528,11 @@ void CFDictionaryReplaceValue(CFMutableHashRef hc, const_any_pointer_t key) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableDictionary *)hc, replaceObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.replaceObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableSet *)hc, replaceObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -667,10 +553,11 @@ void CFDictionarySetValue(CFMutableHashRef hc, const_any_pointer_t key) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableDictionary *)hc, __setObject:(id)value forKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.setObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableSet *)hc, setObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -679,17 +566,18 @@ void CFDictionarySetValue(CFMutableHashRef hc, const_any_pointer_t key) { CFBasicHashSetValue((CFBasicHashRef)hc, (uintptr_t)key, (uintptr_t)value); CF_OBJC_KVO_DIDCHANGE(hc, key); } - + void CFDictionaryRemoveValue(CFMutableHashRef hc, const_any_pointer_t key) { #if CFDictionary if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.removeObjectForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableDictionary *)hc, removeObjectForKey:(id)key); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableSet *)hc, removeObject:(id)key); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -704,10 +592,11 @@ void CFDictionaryRemoveAllValues(CFMutableHashRef hc) { if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableDictionary *)hc, removeAllObjects); #endif #if CFSet + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeAllObjects); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFDictionaryGetTypeID(), void, (NSMutableSet *)hc, removeAllObjects); #endif __CFGenericValidateType(hc, CFDictionaryGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } diff --git a/CoreFoundation/Collections.subproj/CFDictionary.h b/CoreFoundation/Collections.subproj/CFDictionary.h index 04fbf1f208..de90bad5f6 100644 --- a/CoreFoundation/Collections.subproj/CFDictionary.h +++ b/CoreFoundation/Collections.subproj/CFDictionary.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFDictionary.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @@ -584,7 +579,7 @@ void CFDictionaryGetKeysAndValues(CFDictionaryRef theDict, const void **keys, co undefined. */ CF_EXPORT -void CFDictionaryApplyFunction(CFDictionaryRef theDict, CFDictionaryApplierFunction applier, void *context); +void CFDictionaryApplyFunction(CFDictionaryRef theDict, CFDictionaryApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFDictionaryAddValue diff --git a/CoreFoundation/Collections.subproj/CFSet.c b/CoreFoundation/Collections.subproj/CFSet.c index 8672ab2568..174d64bd59 100644 --- a/CoreFoundation/Collections.subproj/CFSet.c +++ b/CoreFoundation/Collections.subproj/CFSet.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSet.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Michael LeHew Machine generated from Notes/HashingCode.template */ @@ -109,7 +104,7 @@ static const CFRuntimeClass __CFSetClass = { }; CFTypeID CFSetGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFSetTypeID = _CFRuntimeRegisterClass(&__CFSetClass); }); @@ -121,76 +116,6 @@ static CFBasicHashRef __CFSetCreateGeneric(CFAllocatorRef allocator, const CFHas CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { // all this crap is just for figuring out two flags for GC in the way done historically; it probably simplifies down to three lines, but we let the compiler worry about that - Boolean set_cb = false; - Boolean std_cb = false; - const_any_pointer_t (*key_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*key_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - const_any_pointer_t (*value_retain)(CFAllocatorRef, const_any_pointer_t) = NULL; - void (*value_release)(CFAllocatorRef, const_any_pointer_t) = NULL; - - if ((NULL == keyCallBacks || 0 == keyCallBacks->version) && (!useValueCB || NULL == valueCallBacks || 0 == valueCallBacks->version)) { - Boolean keyRetainNull = NULL == keyCallBacks || NULL == keyCallBacks->retain; - Boolean keyReleaseNull = NULL == keyCallBacks || NULL == keyCallBacks->release; - Boolean keyEquateNull = NULL == keyCallBacks || NULL == keyCallBacks->equal; - Boolean keyHashNull = NULL == keyCallBacks || NULL == keyCallBacks->hash; - Boolean keyDescribeNull = NULL == keyCallBacks || NULL == keyCallBacks->copyDescription; - - Boolean valueRetainNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->retain)) || (!useValueCB && keyRetainNull); - Boolean valueReleaseNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->release)) || (!useValueCB && keyReleaseNull); - Boolean valueEquateNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->equal)) || (!useValueCB && keyEquateNull); - Boolean valueDescribeNull = (useValueCB && (NULL == valueCallBacks || NULL == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeNull); - - Boolean keyRetainStd = keyRetainNull || __CFTypeCollectionRetain == keyCallBacks->retain; - Boolean keyReleaseStd = keyReleaseNull || __CFTypeCollectionRelease == keyCallBacks->release; - Boolean keyEquateStd = keyEquateNull || CFEqual == keyCallBacks->equal; - Boolean keyHashStd = keyHashNull || CFHash == keyCallBacks->hash; - Boolean keyDescribeStd = keyDescribeNull || CFCopyDescription == keyCallBacks->copyDescription; - - Boolean valueRetainStd = (useValueCB && (valueRetainNull || __CFTypeCollectionRetain == valueCallBacks->retain)) || (!useValueCB && keyRetainStd); - Boolean valueReleaseStd = (useValueCB && (valueReleaseNull || __CFTypeCollectionRelease == valueCallBacks->release)) || (!useValueCB && keyReleaseStd); - Boolean valueEquateStd = (useValueCB && (valueEquateNull || CFEqual == valueCallBacks->equal)) || (!useValueCB && keyEquateStd); - Boolean valueDescribeStd = (useValueCB && (valueDescribeNull || CFCopyDescription == valueCallBacks->copyDescription)) || (!useValueCB && keyDescribeStd); - - if (keyRetainStd && keyReleaseStd && keyEquateStd && keyHashStd && keyDescribeStd && valueRetainStd && valueReleaseStd && valueEquateStd && valueDescribeStd) { - set_cb = true; - if (!(keyRetainNull || keyReleaseNull || keyEquateNull || keyHashNull || keyDescribeNull || valueRetainNull || valueReleaseNull || valueEquateNull || valueDescribeNull)) { - std_cb = true; - } else { - // just set these to tickle the GC Strong logic below in a way that mimics past practice - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - } - } - - if (!set_cb) { - key_retain = keyCallBacks ? keyCallBacks->retain : NULL; - key_release = keyCallBacks ? keyCallBacks->release : NULL; - if (useValueCB) { - value_retain = valueCallBacks ? valueCallBacks->retain : NULL; - value_release = valueCallBacks ? valueCallBacks->release : NULL; - } else { - value_retain = key_retain; - value_release = key_release; - } - } - - if (std_cb || value_retain != NULL || value_release != NULL) { - flags |= kCFBasicHashStrongValues; - } - if (std_cb || key_retain != NULL || key_release != NULL) { - flags |= kCFBasicHashStrongKeys; - } - } - CFBasicHashCallbacks callbacks; callbacks.retainKey = keyCallBacks ? (uintptr_t (*)(CFAllocatorRef, uintptr_t))keyCallBacks->retain : NULL; @@ -216,7 +141,7 @@ CF_PRIVATE CFHashRef __CFSetCreateTransfer(CFAllocatorRef allocator, const_any_p const_any_pointer_t *vlist = klist; #endif CFTypeID typeID = CFSetGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFOptionFlags flags = kCFBasicHashLinearHashing; // kCFBasicHashExponentialHashing flags |= (CFDictionary ? kCFBasicHashHasKeys : 0) | (CFBag ? kCFBasicHashHasCounts : 0); @@ -254,7 +179,7 @@ CFHashRef CFSetCreate(CFAllocatorRef allocator, const_any_pointer_t *klist, CFIn const CFSetValueCallBacks *valueCallBacks = 0; #endif CFTypeID typeID = CFSetGetTypeID(); - CFAssert(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); + CFAssert2(0 <= numValues, __kCFLogAssertion, "%s(): numValues (%ld) cannot be less than zero", __PRETTY_FUNCTION__, numValues); CFBasicHashRef ht = __CFSetCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; if (0 < numValues) CFBasicHashSetCapacity(ht, numValues); @@ -275,7 +200,7 @@ CFMutableHashRef CFSetCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFSetValueCallBacks *valueCallBacks = 0; #endif CFTypeID typeID = CFSetGetTypeID(); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = __CFSetCreateGeneric(allocator, keyCallBacks, valueCallBacks, CFDictionary); if (!ht) return NULL; _CFRuntimeSetInstanceTypeIDAndIsa(ht, typeID); @@ -285,56 +210,32 @@ CFMutableHashRef CFSetCreateMutable(CFAllocatorRef allocator, CFIndex capacity, CFHashRef CFSetCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFTypeID typeID = CFSetGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFSet cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFSet cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); Boolean markImmutable = false; CFBasicHashRef ht = NULL; - if (CF_IS_OBJC(typeID, other) || CF_IS_SWIFT(typeID, other)) { - if (objc_collectingEnabled()) { - CFIndex numValues = CFSetGetCount(other); - const_any_pointer_t vbuffer[256], kbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); -#if CFSet || CFBag - const_any_pointer_t *klist = vlist; - CFSetGetValues(other, vlist); -#endif -#if CFDictionary - const_any_pointer_t *klist = (numValues <= 256) ? kbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - CFDictionaryGetKeysAndValues(other, klist, vlist); -#endif - ht = __CFSetCreateGeneric(allocator, & kCFTypeSetKeyCallBacks, CFDictionary ? & kCFTypeSetValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (klist != kbuffer && klist != vlist) CFAllocatorDeallocate(kCFAllocatorSystemDefault, klist); - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; - } - else { // non-GC + if (CF_IS_OBJC(typeID, other)) { #if CFDictionary || CFSet -#if DEPLOYMENT_RUNTIME_SWIFT - ht = (CFBasicHashRef)CF_SWIFT_CALLV(other, NSSet.copy); -#else - ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); -#endif + ht = (CFBasicHashRef)CF_OBJC_CALLV((id)other, copyWithZone:NULL); #elif CFBag - CFIndex numValues = CFSetGetCount(other); - const_any_pointer_t vbuffer[256]; - const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); - const_any_pointer_t *klist = vlist; - CFSetGetValues(other, vlist); - ht = __CFSetCreateGeneric(allocator, & kCFTypeSetKeyCallBacks, CFDictionary ? & kCFTypeSetValueCallBacks : NULL, CFDictionary); - if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); - for (CFIndex idx = 0; ht && idx < numValues; idx++) { - CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); - } - if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); - markImmutable = true; -#endif // CFBag + CFIndex numValues = CFSetGetCount(other); + const_any_pointer_t vbuffer[256]; + const_any_pointer_t *vlist = (numValues <= 256) ? vbuffer : (const_any_pointer_t *)CFAllocatorAllocate(kCFAllocatorSystemDefault, numValues * sizeof(const_any_pointer_t), 0); + const_any_pointer_t *klist = vlist; + CFSetGetValues(other, vlist); + ht = __CFSetCreateGeneric(allocator, & kCFTypeSetKeyCallBacks, CFDictionary ? & kCFTypeSetValueCallBacks : NULL, CFDictionary); + if (ht && 0 < numValues) CFBasicHashSetCapacity(ht, numValues); + for (CFIndex idx = 0; ht && idx < numValues; idx++) { + CFBasicHashAddValue(ht, (uintptr_t)klist[idx], (uintptr_t)vlist[idx]); } - } - else { // non-objc types + if (vlist != vbuffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, vlist); + markImmutable = true; +#endif // CFBag + } else if (CF_IS_SWIFT(typeID, other)) { +#if CFDictionary || CFSet + ht = (CFBasicHashRef)CF_SWIFT_CALLV(other, NSObject.copyWithZone, nil); +#endif + } else { // non-objc types ht = CFBasicHashCreateCopy(allocator, (CFBasicHashRef)other); markImmutable = true; } @@ -349,9 +250,9 @@ CFHashRef CFSetCreateCopy(CFAllocatorRef allocator, CFHashRef other) { CFMutableHashRef CFSetCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFHashRef other) { CFTypeID typeID = CFSetGetTypeID(); - CFAssert(other, __kCFLogAssertion, "%s(): other CFSet cannot be NULL", __PRETTY_FUNCTION__); + CFAssert1(other, __kCFLogAssertion, "%s(): other CFSet cannot be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(other, typeID); - CFAssert(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); + CFAssert2(0 <= capacity, __kCFLogAssertion, "%s(): capacity (%ld) cannot be less than zero", __PRETTY_FUNCTION__, capacity); CFBasicHashRef ht = NULL; if (CF_IS_OBJC(typeID, other) || CF_IS_SWIFT(typeID, other)) { CFIndex numValues = CFSetGetCount(other); @@ -383,6 +284,7 @@ CFMutableHashRef CFSetCreateMutableCopy(CFAllocatorRef allocator, CFIndex capaci CFIndex CFSetGetCount(CFHashRef hc) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.count); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (NSDictionary *)hc, count); #endif #if CFSet @@ -400,10 +302,11 @@ CFIndex CFSetGetCountOfKey(CFHashRef hc, const_any_pointer_t key) { CFIndex CFSetGetCountOfValue(CFHashRef hc, const_any_pointer_t key) { #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.countForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (NSDictionary *)hc, countForKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.countForValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (CFSwiftRef)hc, NSSet.countForKey, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (NSSet *)hc, countForObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); @@ -417,10 +320,11 @@ Boolean CFSetContainsKey(CFHashRef hc, const_any_pointer_t key) { Boolean CFSetContainsValue(CFHashRef hc, const_any_pointer_t key) { #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), char, (CFSwiftRef)hc, NSDictionary.containsKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), char, (NSDictionary *)hc, containsKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), char, (CFSwiftRef)hc, NSSet.containsValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), char, (CFSwiftRef)hc, NSSet.containsObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), char, (NSSet *)hc, containsObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); @@ -429,10 +333,11 @@ Boolean CFSetContainsValue(CFHashRef hc, const_any_pointer_t key) { const_any_pointer_t CFSetGetValue(CFHashRef hc, const_any_pointer_t key) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), const_any_pointer_t, (CFSwiftRef)hc, NSDictionary.objectForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), const_any_pointer_t, (NSDictionary *)hc, objectForKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFTypeRef, (CFSwiftRef)hc, NSSet.getValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), const_any_pointer_t, (CFSwiftRef)hc, NSSet.member, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), const_any_pointer_t, (NSSet *)hc, member:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); @@ -442,21 +347,18 @@ const_any_pointer_t CFSetGetValue(CFHashRef hc, const_any_pointer_t key) { Boolean CFSetGetValueIfPresent(CFHashRef hc, const_any_pointer_t key, const_any_pointer_t *value) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), Boolean, (CFSwiftRef)hc, NSDictionary.__getValue, value, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), Boolean, (NSDictionary *)hc, __getValue:(id *)value forKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), Boolean, (CFSwiftRef)hc, NSSet.getValueIfPresent, key, value); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), Boolean, (CFSwiftRef)hc, NSSet.__getValue, value, key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), Boolean, (NSSet *)hc, __getValue:(id *)value forObj:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (value) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongValues)) { - __CFAssignWithWriteBarrier((void **)value, (void *)bkt.weak_value); - } else { - *value = (const_any_pointer_t)bkt.weak_value; - } + *value = (const_any_pointer_t)bkt.weak_value; } return true; } @@ -465,12 +367,14 @@ Boolean CFSetGetValueIfPresent(CFHashRef hc, const_any_pointer_t key, const_any_ #if CFDictionary CFIndex CFDictionaryGetCountOfValue(CFHashRef hc, const_any_pointer_t value) { + CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (CFSwiftRef)hc, NSDictionary.count); CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), CFIndex, (NSDictionary *)hc, countForObject:(id)value); __CFGenericValidateType(hc, CFSetGetTypeID()); return CFBasicHashGetCountOfValue((CFBasicHashRef)hc, (uintptr_t)value); } Boolean CFDictionaryContainsValue(CFHashRef hc, const_any_pointer_t value) { + CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), char, (CFSwiftRef)hc, NSDictionary.containsObject, value); CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), char, (NSDictionary *)hc, containsObject:(id)value); __CFGenericValidateType(hc, CFSetGetTypeID()); return (0 < CFBasicHashGetCountOfValue((CFBasicHashRef)hc, (uintptr_t)value)); @@ -481,11 +385,7 @@ CF_EXPORT Boolean CFDictionaryGetKeyIfPresent(CFHashRef hc, const_any_pointer_t CFBasicHashBucket bkt = CFBasicHashFindBucket((CFBasicHashRef)hc, (uintptr_t)key); if (0 < bkt.count) { if (actualkey) { - if (kCFUseCollectableAllocator && (CFBasicHashGetFlags((CFBasicHashRef)hc) & kCFBasicHashStrongKeys)) { - __CFAssignWithWriteBarrier((void **)actualkey, (void *)bkt.weak_key); - } else { - *actualkey = (const_any_pointer_t)bkt.weak_key; - } + *actualkey = (const_any_pointer_t)bkt.weak_key; } return true; } @@ -501,38 +401,25 @@ void CFSetGetValues(CFHashRef hc, const_any_pointer_t *keybuf) { const_any_pointer_t *valuebuf = 0; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSDictionary.getObjects, valuebuf, keybuf); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSDictionary *)hc, getObjects:(id *)valuebuf andKeys:(id *)keybuf); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSSet.getValues, keybuf); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSSet.getObjects, keybuf); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSSet *)hc, getObjects:(id *)keybuf); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - if (kCFUseCollectableAllocator) { - CFOptionFlags flags = CFBasicHashGetFlags((CFBasicHashRef)hc); - __block const_any_pointer_t *keys = keybuf; - __block const_any_pointer_t *values = valuebuf; - CFBasicHashApply((CFBasicHashRef)hc, ^(CFBasicHashBucket bkt) { - for (CFIndex cnt = bkt.count; cnt--;) { - if (keybuf && (flags & kCFBasicHashStrongKeys)) { __CFAssignWithWriteBarrier((void **)keys, (void *)bkt.weak_key); keys++; } - if (keybuf && !(flags & kCFBasicHashStrongKeys)) { *keys++ = (const_any_pointer_t)bkt.weak_key; } - if (valuebuf && (flags & kCFBasicHashStrongValues)) { __CFAssignWithWriteBarrier((void **)values, (void *)bkt.weak_value); values++; } - if (valuebuf && !(flags & kCFBasicHashStrongValues)) { *values++ = (const_any_pointer_t)bkt.weak_value; } - } - return (Boolean)true; - }); - } else { - CFBasicHashGetElements((CFBasicHashRef)hc, CFSetGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); - } + CFBasicHashGetElements((CFBasicHashRef)hc, CFSetGetCount(hc), (uintptr_t *)valuebuf, (uintptr_t *)keybuf); } void CFSetApplyFunction(CFHashRef hc, CFSetApplierFunction applier, any_pointer_t context) { FAULT_CALLBACK((void **)&(applier)); #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSDictionary.__apply, applier, context); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSDictionary *)hc, __apply:(void (*)(const void *, const void *, void *))applier context:(void *)context); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSSet.apply, applier, context); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSSet.__apply, applier, context); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSSet *)hc, __applyValues:(void (*)(const void *, void *))applier context:(void *)context); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); @@ -554,6 +441,7 @@ void CFSetApplyFunction(CFHashRef hc, CFSetApplierFunction applier, any_pointer_ // This function is for Foundation's benefit; no one else should use it. CF_EXPORT unsigned long _CFSetFastEnumeration(CFHashRef hc, struct __objcFastEnumerationStateEquivalent *state, void *stackbuffer, unsigned long count) { + if (CF_IS_SWIFT(CFSetGetTypeID(), hc)) return 0; if (CF_IS_OBJC(CFSetGetTypeID(), hc)) return 0; __CFGenericValidateType(hc, CFSetGetTypeID()); return __CFBasicHashFastEnumeration((CFBasicHashRef)hc, (struct __objcFastEnumerationStateEquivalent2 *)state, stackbuffer, count); @@ -561,6 +449,7 @@ CF_EXPORT unsigned long _CFSetFastEnumeration(CFHashRef hc, struct __objcFastEnu // This function is for Foundation's benefit; no one else should use it. CF_EXPORT Boolean _CFSetIsMutable(CFHashRef hc) { + if (CF_IS_SWIFT(CFSetGetTypeID(), hc)) return false; if (CF_IS_OBJC(CFSetGetTypeID(), hc)) return false; __CFGenericValidateType(hc, CFSetGetTypeID()); return CFBasicHashIsMutable((CFBasicHashRef)hc); @@ -568,10 +457,11 @@ CF_EXPORT Boolean _CFSetIsMutable(CFHashRef hc) { // This function is for Foundation's benefit; no one else should use it. CF_EXPORT void _CFSetSetCapacity(CFMutableHashRef hc, CFIndex cap) { + if (CF_IS_SWIFT(CFSetGetTypeID(), hc)) return; if (CF_IS_OBJC(CFSetGetTypeID(), hc)) return; __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); - CFAssert(CFSetGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFSetGetCount(hc)); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert3(CFSetGetCount(hc) <= cap, __kCFLogAssertion, "%s(): desired capacity (%ld) is less than count (%ld)", __PRETTY_FUNCTION__, cap, CFSetGetCount(hc)); CFBasicHashSetCapacity((CFBasicHashRef)hc, cap); } @@ -609,14 +499,15 @@ void CFSetAddValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.__addObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableDictionary *)hc, __addObject:(id)value forKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.addValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.addObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableSet *)hc, addObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -633,14 +524,15 @@ void CFSetReplaceValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.replaceObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableDictionary *)hc, replaceObject:(id)value forKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.replaceValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.replaceObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableSet *)hc, replaceObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -657,14 +549,15 @@ void CFSetSetValue(CFMutableHashRef hc, const_any_pointer_t key) { const_any_pointer_t value = key; #endif #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.__setObject, key, value); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableDictionary *)hc, __setObject:(id)value forKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.setValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.setObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableSet *)hc, setObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -676,14 +569,15 @@ void CFSetSetValue(CFMutableHashRef hc, const_any_pointer_t key) { void CFSetRemoveValue(CFMutableHashRef hc, const_any_pointer_t key) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.removeObjectForKey, key); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableDictionary *)hc, removeObjectForKey:(id)key); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeValue, key); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeObject, (CFSwiftRef)key); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableSet *)hc, removeObject:(id)key); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } @@ -694,14 +588,15 @@ void CFSetRemoveValue(CFMutableHashRef hc, const_any_pointer_t key) { void CFSetRemoveAllValues(CFMutableHashRef hc) { #if CFDictionary + if (CFDictionary) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableDictionary.removeAllObjects); if (CFDictionary) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableDictionary *)hc, removeAllObjects); #endif #if CFSet - if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeAllValues); + if (CFSet) CF_SWIFT_FUNCDISPATCHV(CFSetGetTypeID(), void, (CFSwiftRef)hc, NSMutableSet.removeAllObjects); if (CFSet) CF_OBJC_FUNCDISPATCHV(CFSetGetTypeID(), void, (NSMutableSet *)hc, removeAllObjects); #endif __CFGenericValidateType(hc, CFSetGetTypeID()); - CFAssert(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); + CFAssert2(CFBasicHashIsMutable((CFBasicHashRef)hc), __kCFLogAssertion, "%s(): immutable collection %p passed to mutating operation", __PRETTY_FUNCTION__, hc); if (!CFBasicHashIsMutable((CFBasicHashRef)hc)) { CFLog(3, CFSTR("%s(): immutable collection %p given to mutating function"), __PRETTY_FUNCTION__, hc); } diff --git a/CoreFoundation/Collections.subproj/CFSet.h b/CoreFoundation/Collections.subproj/CFSet.h index 57dbb9e340..3741f4d250 100644 --- a/CoreFoundation/Collections.subproj/CFSet.h +++ b/CoreFoundation/Collections.subproj/CFSet.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSet.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @header CFSet @@ -408,7 +403,7 @@ void CFSetGetValues(CFSetRef theSet, const void **values); undefined. */ CF_EXPORT -void CFSetApplyFunction(CFSetRef theSet, CFSetApplierFunction applier, void *context); +void CFSetApplyFunction(CFSetRef theSet, CFSetApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFSetAddValue diff --git a/CoreFoundation/Collections.subproj/CFStorage.c b/CoreFoundation/Collections.subproj/CFStorage.c index d58c583e8d..bdea2e68d7 100644 --- a/CoreFoundation/Collections.subproj/CFStorage.c +++ b/CoreFoundation/Collections.subproj/CFStorage.c @@ -1,16 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStorage.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors - Responsibility: Ali Ozer + Copyright (c) 1999-2016, Apple Inc. All rights reserved. + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: Ali Ozer */ /* @@ -42,8 +37,12 @@ #endif #if DEPLOYMENT_TARGET_WINDOWS +// No C99 support +#define restrict + // Replace bzero #define bzero(dst, size) ZeroMemory(dst, size) + #endif #if !defined(PAGE_SIZE) @@ -54,7 +53,7 @@ // Also, tests with StorageTimer.c done in 4/07 indicate that 4096 * 3 is better than smaller or larger node sizes. #define __CFStorageMaxLeafCapacity (4096 * 3) -#define COPYMEM(src,dst,n) objc_memmove_collectable((dst), (src), (n)) +#define COPYMEM(src,dst,n) memmove((dst), (src), (n)) #define PAGE_LIMIT ((CFIndex)PAGE_SIZE / 2) CF_INLINE int32_t roundToPage(int32_t num) { @@ -107,7 +106,6 @@ struct __CFStorage { CFStorageNode * volatile cacheNode; CFIndex maxLeafCapacity; // In terms of bytes CFStorageNode rootNode; - CFOptionFlags nodeHint; // __kCFAllocatorGCScannedMemory or 0. }; /* Helper function to return the intersection of two ranges */ @@ -136,7 +134,7 @@ CF_INLINE void __CFStorageAllocLeafNodeMemory(CFAllocatorRef allocator, CFStorag __CFLock(&(storage->cacheReaderMemoryAllocationLock)); /* Check again now that we've acquired the lock. We know that we can do this because two simulaneous readers will always pass the same capacity. This is the fix for 8203146. This probably needs a memory barrier. */ if ((compact ? (cap != node->info.leaf.capacityInBytes) : (cap > node->info.leaf.capacityInBytes))) { - __CFAssignWithWriteBarrier((void **)&node->info.leaf.memory, _CFAllocatorReallocateGC(allocator, node->info.leaf.memory, cap, storage->nodeHint)); // This will free... + *((void **)&node->info.leaf.memory) = CFAllocatorReallocate(allocator, node->info.leaf.memory, cap, 0); // This will free... if (__CFOASafe) __CFSetLastAllocationEventName(node->info.leaf.memory, "CFStorage (node bytes)"); node->info.leaf.capacityInBytes = cap; } @@ -218,13 +216,13 @@ CF_INLINE void __CFStorageReleaseNodeWithNullCheck(CFStorageRef storage, CFStora static void __CFStorageDeallocateNode(CFStorageRef storage, CFStorageNode *node) { CFAllocatorRef allocator = CFGetAllocator(storage); if (node->isLeaf) { - if (node->info.leaf.memory) _CFAllocatorDeallocateGC(allocator, node->info.leaf.memory); + if (node->info.leaf.memory) CFAllocatorDeallocate(allocator, node->info.leaf.memory); } else { __CFStorageReleaseNodeWithNullCheck(storage, node->info.notLeaf.child[0]); __CFStorageReleaseNodeWithNullCheck(storage, node->info.notLeaf.child[1]); __CFStorageReleaseNodeWithNullCheck(storage, node->info.notLeaf.child[2]); } - _CFAllocatorDeallocateGC(allocator, node); + CFAllocatorDeallocate(allocator, node); } static inline void __CFStorageFreezeNode(CFStorageNode *node) { @@ -243,10 +241,10 @@ static inline bool __CFStorageThawNodeDuringMutation(CFStorageRef storage, CFSto static inline void __CFStorageSetChild(CFStorageNode *parentNode, CFIndex childIndex, CFStorageNode *newChild) { ASSERT(! parentNode->isLeaf); ASSERT(childIndex < 3); - __CFAssignWithWriteBarrier((void **)&parentNode->info.notLeaf.child[childIndex], newChild); + *((void **)&parentNode->info.notLeaf.child[childIndex]) = newChild; } -static inline void __CFStorageGetChildren(const CFStorageNode *parent, CFStorageNode ** __restrict resultArray, bool shouldRetain, bool shouldFreeze) { +static inline void __CFStorageGetChildren(const CFStorageNode *parent, CFStorageNode ** restrict resultArray, bool shouldRetain, bool shouldFreeze) { ASSERT(! parent->isLeaf); CFIndex i; for (i=0; i < 3; i++) { @@ -274,7 +272,7 @@ CF_INLINE void __CFStorageSetCache(CFStorageRef storage, CFStorageNode *node, CF /* Gets the location for the specified absolute loc from the cached info. Returns NULL if the location is not in the cache. */ -CF_INLINE uint8_t *__CFStorageGetFromCache(CFStorageRef storage, CFIndex loc, CFRange * __restrict validConsecutiveValueRange, bool requireUnfrozenNode) { +CF_INLINE uint8_t *__CFStorageGetFromCache(CFStorageRef storage, CFIndex loc, CFRange * restrict validConsecutiveValueRange, bool requireUnfrozenNode) { CFStorageNode * const cachedNode = storage->cacheNode; /* It's important we read from this field no more than once, for thread safety with other concurrent reads; that is why the field is marked volatile. */ if (! cachedNode) return NULL; /* No cache */ @@ -309,7 +307,7 @@ CF_INLINE uint8_t *__CFStorageGetFromCache(CFStorageRef storage, CFIndex loc, CF relativeByteNum (not optional, for performance reasons) returns the relative byte number of the specified byte in the child. Don't call with leaf nodes! */ -CF_INLINE CFStorageNode *__CFStorageFindChild(const CFStorageNode * __restrict node, CFIndex byteNum, bool forInsertionOrDeletion, CFIndex * __restrict childNum, CFIndex * __restrict relativeByteNum) { +CF_INLINE CFStorageNode *__CFStorageFindChild(const CFStorageNode * restrict node, CFIndex byteNum, bool forInsertionOrDeletion, CFIndex * restrict childNum, CFIndex * restrict relativeByteNum) { if (forInsertionOrDeletion) byteNum--; /* If for insertion, we do <= checks, not <, so this accomplishes the same thing */ CFStorageNode *result; result = node->info.notLeaf.child[0]; @@ -390,11 +388,8 @@ static void __CFLeafCopyRangeToOffset(const CFStorageNode *srcLeaf, CFRange srcR // returns a node with a refCount of 1, and an auto_zone_retain() under GC static CFStorageNode *__CFStorageCreateNode(CFAllocatorRef allocator, CFStorageRef storage, bool isLeaf, CFIndex numBytes) { - CFStorageNode *newNode = (CFStorageNode *)CFAllocatorAllocate(allocator, sizeof(CFStorageNode), __kCFAllocatorGCScannedMemory); + CFStorageNode *newNode = (CFStorageNode *)CFAllocatorAllocate(allocator, sizeof(CFStorageNode), 0); if (__CFOASafe) __CFSetLastAllocationEventName(newNode, "CFStorage (node)"); - if (CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - auto_zone_release(objc_collectableZone(), newNode); //remove the implicit retain so we can be collected - } newNode->refCount = 1; newNode->isFrozen = storage->alwaysFrozen; newNode->isLeaf = isLeaf; @@ -760,7 +755,7 @@ static CFStorageDoubleNodeReturn __CFStorageInsertLeafUnfrozen(CFAllocatorRef al /* Transfer our memory to the new node */ newNode->numBytes = node->numBytes; newNode->info.leaf.capacityInBytes = node->info.leaf.capacityInBytes; - __CFAssignWithWriteBarrier((void **)&newNode->info.leaf.memory, node->info.leaf.memory); + *((void **)&newNode->info.leaf.memory) = node->info.leaf.memory; /* Stomp on our existing node */ node->numBytes = size; @@ -1050,7 +1045,7 @@ static void __CFStorageClearRootNode(CFStorageRef storage) { CFAllocatorRef allocator = CFGetAllocator(storage); /* Have to release our children if we are a branch, or free our memory if we are a leaf */ if (storage->rootNode.isLeaf) { - _CFAllocatorDeallocateGC(allocator, storage->rootNode.info.leaf.memory); + CFAllocatorDeallocate(allocator, storage->rootNode.info.leaf.memory); } else { __CFStorageReleaseNodeWithNullCheck(storage, storage->rootNode.info.notLeaf.child[0]); @@ -1069,9 +1064,7 @@ static void __CFStorageDeallocate(CFTypeRef cf) { CFStorage nodes have a reference count, and if a node has a reference count of one, and we are in a mutating function, we conclude that this CFStorage has exclusive ownership of the node, and we can treat it as mutable even if it's marked as frozen (see __CFStorageThawNodeDuringMutation). Therefore it would be nice if we could decrement our nodes' refcounts in Deallocate. However, if we did so, then another CFStorage might treat a node that we reference as mutable and modify it, which must not happen, because we must not perturb the structure of a CFStorage in Deallocate. Thus we just "leak" a reference count under GC. Of course, these reference counts don't actually keep the memory alive in GC, so it's not a real leak. */ CFStorageRef storage = (CFStorageRef)cf; - if (! CF_IS_COLLECTABLE_ALLOCATOR(CFGetAllocator(storage))) { - __CFStorageClearRootNode(storage); - } + __CFStorageClearRootNode(storage); } static CFTypeID __kCFStorageTypeID = _kCFRuntimeNotATypeID; @@ -1123,13 +1116,6 @@ CFStorageRef CFStorageCreate(CFAllocatorRef allocator, CFIndex valueSize) { memset(&(storage->rootNode), 0, sizeof(CFStorageNode)); storage->rootNode.isLeaf = true; storage->rootNode.refCount = 0; - if (valueSize >= sizeof(void *)) { - storage->nodeHint = __kCFAllocatorGCScannedMemory; - } - else { - // Don't scan nodes if the value size is smaller than a pointer (8198596) - storage->nodeHint = 0; - } if (__CFOASafe) __CFSetLastAllocationEventName(storage, "CFStorage"); return storage; } @@ -1184,7 +1170,7 @@ CFStorageRef CFStorageCreateWithSubrange(CFStorageRef mutStorage, CFRange range) } CFTypeID CFStorageGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFStorageTypeID = _CFRuntimeRegisterClass(&__CFStorageClass); }); return __kCFStorageTypeID; } @@ -1225,7 +1211,7 @@ void CFStorageInsertValues(CFStorageRef storage, CFRange range) { CFStorageNode *newNode = newNodes.sibling; /* Need to create a new root node. Copy our existing root node's contents to a new heap node. */ CFStorageNode *heapRoot = __CFStorageCreateNode(allocator, storage, storage->rootNode.isLeaf, storage->rootNode.numBytes); // Will copy the (static) rootNode over to this - objc_memmove_collectable(&heapRoot->info, &storage->rootNode.info, sizeof heapRoot->info); + memmove(&heapRoot->info, &storage->rootNode.info, sizeof heapRoot->info); /* Our root is about to become a branch. If our root node is currently a leaf, we need to clear the cache, because if the cache points at the root then the cache is about to start pointing at a branch node (which is not allowed) */ if (storage->rootNode.isLeaf) { @@ -1282,7 +1268,7 @@ void CFStorageDeleteValues(CFStorageRef storage, CFRange range) { if (newRoot->isLeaf) { if (! newRoot->isFrozen) { /* If the leaf is not frozen, we can just steal its memory (if any)! If it is frozen, we must copy it. */ - __CFAssignWithWriteBarrier((void **)&storage->rootNode.info.leaf.memory, newRoot->info.leaf.memory); + *((void **)&storage->rootNode.info.leaf.memory) = newRoot->info.leaf.memory; /* Clear out the old node, because we stole its memory and we don't want it to deallocate it when teh node is destroyed below. */ bzero(&newRoot->info, sizeof newRoot->info); } @@ -1439,24 +1425,6 @@ static void __CFStorageCheckIntegrity(CFStorageRef storage) { }); } -/* Used by CFArray.c */ - -static void __CFStorageNodeSetUnscanned(CFStorageNode *node, auto_zone_t *zone) { - if (node->isLeaf) { - auto_zone_set_unscanned(zone, node->info.leaf.memory); - } else { - CFStorageNode **children = node->info.notLeaf.child; - if (children[0]) __CFStorageNodeSetUnscanned(children[0], zone); - if (children[1]) __CFStorageNodeSetUnscanned(children[1], zone); - if (children[2]) __CFStorageNodeSetUnscanned(children[2], zone); - } -} - -CF_PRIVATE void _CFStorageSetWeak(CFStorageRef storage) { - storage->nodeHint = 0; - __CFStorageNodeSetUnscanned(&storage->rootNode, (auto_zone_t *)objc_collectableZone()); -} - #undef COPYMEM #undef PAGE_LIMIT diff --git a/CoreFoundation/Collections.subproj/CFStorage.h b/CoreFoundation/Collections.subproj/CFStorage.h index 0ee084af9c..9baf3fb4f8 100644 --- a/CoreFoundation/Collections.subproj/CFStorage.h +++ b/CoreFoundation/Collections.subproj/CFStorage.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStorage.h - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @header CFStorage @@ -226,7 +221,7 @@ CF_EXPORT void CFStorageGetValues(CFStorageRef storage, CFRange range, void *val what is expected by the applier function, the behavior is undefined. */ -CF_EXPORT void CFStorageApplyFunction(CFStorageRef storage, CFRange range, CFStorageApplierFunction applier, void *context); +CF_EXPORT void CFStorageApplyFunction(CFStorageRef storage, CFRange range, CFStorageApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFStorageApplyBlock @@ -246,7 +241,7 @@ CF_EXPORT void CFStorageApplyFunction(CFStorageRef storage, CFRange range, CFSto */ #if __BLOCKS__ -CF_EXPORT void CFStorageApplyBlock(CFStorageRef storage, CFRange range, CFStorageEnumerationOptionFlags options, CFStorageApplierBlock applier); +CF_EXPORT void CFStorageApplyBlock(CFStorageRef storage, CFRange range, CFStorageEnumerationOptionFlags options, CFStorageApplierBlock CF_NOESCAPE applier); #endif diff --git a/CoreFoundation/Collections.subproj/CFTree.c b/CoreFoundation/Collections.subproj/CFTree.c index 0122f02614..673491b3a1 100644 --- a/CoreFoundation/Collections.subproj/CFTree.c +++ b/CoreFoundation/Collections.subproj/CFTree.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFTree.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -93,18 +88,14 @@ static void __CFTreeDeallocate(CFTypeRef cf) { CFTreeRef tree = (CFTreeRef)cf; const struct __CFTreeCallBacks *cb; #if DEPLOYMENT_TARGET_MACOSX - CFAllocatorRef allocator = __CFGetAllocator(tree); - if (!CF_IS_COLLECTABLE_ALLOCATOR(allocator)) { - // GC: keep the tree intact during finalization. - CFTreeRemoveAllChildren(tree); - } + CFTreeRemoveAllChildren(tree); #endif cb = __CFTreeGetCallBacks(tree); if (NULL != cb->release) { INVOKE_CALLBACK1(cb->release, tree->_info); } if (__kCFTreeHasCustomCallBacks == __CFTreeGetCallBacksType(tree)) { - _CFAllocatorDeallocateGC(CFGetAllocator(tree), tree->_callbacks); + CFAllocatorDeallocate(CFGetAllocator(tree), tree->_callbacks); } } @@ -124,7 +115,7 @@ static const CFRuntimeClass __CFTreeClass = { }; CFTypeID CFTreeGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFTreeTypeID = _CFRuntimeRegisterClass(&__CFTreeClass); }); return __kCFTreeTypeID; } @@ -133,8 +124,8 @@ CFTreeRef CFTreeCreate(CFAllocatorRef allocator, const CFTreeContext *context) { CFTreeRef memory; uint32_t size; - CFAssert(NULL != context, __kCFLogAssertion, "%s(): pointer to context may not be NULL", __PRETTY_FUNCTION__); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(NULL != context, __kCFLogAssertion, "%s(): pointer to context may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); size = sizeof(struct __CFTree) - sizeof(CFRuntimeBase); memory = (CFTreeRef)_CFRuntimeCreateInstance(allocator, CFTreeGetTypeID(), size, NULL); if (NULL == memory) { @@ -188,7 +179,7 @@ CFTreeRef CFTreeFindRoot(CFTreeRef tree) { void CFTreeGetContext(CFTreeRef tree, CFTreeContext *context) { const struct __CFTreeCallBacks *cb; __CFGenericValidateType(tree, CFTreeGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); cb = __CFTreeGetCallBacks(tree); context->version = 0; context->info = tree->_info; @@ -213,7 +204,7 @@ void CFTreeSetContext(CFTreeRef tree, const CFTreeContext *context) { newtype = __kCFTreeHasCFTypeCallBacks; } else { newtype = __kCFTreeHasCustomCallBacks; - __CFAssignWithWriteBarrier((void **)&tree->_callbacks, _CFAllocatorAllocateGC(allocator, sizeof(struct __CFTreeCallBacks), 0)); + *((void **)&tree->_callbacks) = CFAllocatorAllocate(allocator, sizeof(struct __CFTreeCallBacks), 0); if (__CFOASafe) __CFSetLastAllocationEventName(tree->_callbacks, "CFTree (callbacks)"); tree->_callbacks->retain = context->retain; tree->_callbacks->release = context->release; @@ -227,13 +218,13 @@ void CFTreeSetContext(CFTreeRef tree, const CFTreeContext *context) { if (NULL != newcb->retain) { tree->_info = (void *)INVOKE_CALLBACK1(newcb->retain, context->info); } else { - __CFAssignWithWriteBarrier((void **)&tree->_info, context->info); + *((void **)&tree->_info) = context->info; } if (NULL != oldcb->release) { INVOKE_CALLBACK1(oldcb->release, oldinfo); } if (oldtype == __kCFTreeHasCustomCallBacks) { - _CFAllocatorDeallocateGC(allocator, oldcb); + CFAllocatorDeallocate(allocator, oldcb); } } @@ -301,7 +292,7 @@ void CFTreeGetChildren(CFTreeRef tree, CFTreeRef *children) { void CFTreeApplyFunctionToChildren(CFTreeRef tree, CFTreeApplierFunction applier, void *context) { __CFGenericValidateType(tree, CFTreeGetTypeID()); - CFAssert(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != applier, __kCFLogAssertion, "%s(): pointer to applier function may not be NULL", __PRETTY_FUNCTION__); tree = tree->_child; while (NULL != tree) { applier(tree, context); @@ -312,53 +303,53 @@ void CFTreeApplyFunctionToChildren(CFTreeRef tree, CFTreeApplierFunction applier void CFTreePrependChild(CFTreeRef tree, CFTreeRef newChild) { __CFGenericValidateType(tree, CFTreeGetTypeID()); __CFGenericValidateType(newChild, CFTreeGetTypeID()); - CFAssert(NULL == newChild->_parent, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); - CFAssert(NULL == newChild->_sibling, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); - if (!kCFUseCollectableAllocator) CFRetain(newChild); - __CFAssignWithWriteBarrier((void **)&newChild->_parent, tree); - __CFAssignWithWriteBarrier((void **)&newChild->_sibling, tree->_child); + CFAssert1(NULL == newChild->_parent, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); + CFAssert1(NULL == newChild->_sibling, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); + CFRetain(newChild); + *((void **)&newChild->_parent) = tree; + *((void **)&newChild->_sibling) = tree->_child; if (!tree->_child) { - __CFAssignWithWriteBarrier((void **)&tree->_rightmostChild, newChild); + *((void **)&tree->_rightmostChild) = newChild; } - __CFAssignWithWriteBarrier((void **)&tree->_child, newChild); + *((void **)&tree->_child) = newChild; } void CFTreeAppendChild(CFTreeRef tree, CFTreeRef newChild) { CFAllocatorRef allocator; __CFGenericValidateType(tree, CFTreeGetTypeID()); __CFGenericValidateType(newChild, CFTreeGetTypeID()); - CFAssert(NULL == newChild->_parent, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); - CFAssert(NULL == newChild->_sibling, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); + CFAssert1(NULL == newChild->_parent, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); + CFAssert1(NULL == newChild->_sibling, __kCFLogAssertion, "%s(): must remove newChild from previous parent first", __PRETTY_FUNCTION__); if (newChild->_parent) { HALT; } - if (!kCFUseCollectableAllocator) CFRetain(newChild); + CFRetain(newChild); allocator = CFGetAllocator(tree); - __CFAssignWithWriteBarrier((void **)&newChild->_parent, tree); + *((void **)&newChild->_parent) = tree; newChild->_sibling = NULL; if (!tree->_child) { - __CFAssignWithWriteBarrier((void **)&tree->_child, newChild); + *((void **)&tree->_child) = newChild; } else { - __CFAssignWithWriteBarrier((void **)&tree->_rightmostChild->_sibling, newChild); + *((void **)&tree->_rightmostChild->_sibling) = newChild; } - __CFAssignWithWriteBarrier((void **)&tree->_rightmostChild, newChild); + *((void **)&tree->_rightmostChild) = newChild; } void CFTreeInsertSibling(CFTreeRef tree, CFTreeRef newSibling) { CFAllocatorRef allocator; __CFGenericValidateType(tree, CFTreeGetTypeID()); __CFGenericValidateType(newSibling, CFTreeGetTypeID()); - CFAssert(NULL != tree->_parent, __kCFLogAssertion, "%s(): tree must have a parent", __PRETTY_FUNCTION__); - CFAssert(NULL == newSibling->_parent, __kCFLogAssertion, "%s(): must remove newSibling from previous parent first", __PRETTY_FUNCTION__); - CFAssert(NULL == newSibling->_sibling, __kCFLogAssertion, "%s(): must remove newSibling from previous parent first", __PRETTY_FUNCTION__); - if (!kCFUseCollectableAllocator) CFRetain(newSibling); + CFAssert1(NULL != tree->_parent, __kCFLogAssertion, "%s(): tree must have a parent", __PRETTY_FUNCTION__); + CFAssert1(NULL == newSibling->_parent, __kCFLogAssertion, "%s(): must remove newSibling from previous parent first", __PRETTY_FUNCTION__); + CFAssert1(NULL == newSibling->_sibling, __kCFLogAssertion, "%s(): must remove newSibling from previous parent first", __PRETTY_FUNCTION__); + CFRetain(newSibling); allocator = CFGetAllocator(tree); - __CFAssignWithWriteBarrier((void **)&newSibling->_parent, tree->_parent); - __CFAssignWithWriteBarrier((void **)&newSibling->_sibling, tree->_sibling); - __CFAssignWithWriteBarrier((void **)&tree->_sibling, newSibling); + *((void **)&newSibling->_parent) = tree->_parent; + *((void **)&newSibling->_sibling) = tree->_sibling; + *((void **)&tree->_sibling) = newSibling; if (tree->_parent) { if (tree->_parent->_rightmostChild == tree) { - __CFAssignWithWriteBarrier((void **)&tree->_parent->_rightmostChild, newSibling); + *((void **)&tree->_parent->_rightmostChild) = newSibling; } } } @@ -367,7 +358,7 @@ void CFTreeRemove(CFTreeRef tree) { __CFGenericValidateType(tree, CFTreeGetTypeID()); if (NULL != tree->_parent) { if (tree == tree->_parent->_child) { - __CFAssignWithWriteBarrier((void **)&tree->_parent->_child, tree->_sibling); + *((void **)&tree->_parent->_child) = tree->_sibling; if (tree->_sibling == NULL) { tree->_parent->_rightmostChild = NULL; } @@ -375,9 +366,9 @@ void CFTreeRemove(CFTreeRef tree) { CFTreeRef prevSibling = NULL; for (prevSibling = tree->_parent->_child; prevSibling; prevSibling = prevSibling->_sibling) { if (prevSibling->_sibling == tree) { - __CFAssignWithWriteBarrier((void **)&prevSibling->_sibling, tree->_sibling); + *((void **)&prevSibling->_sibling) = tree->_sibling; if (tree->_parent->_rightmostChild == tree) { - __CFAssignWithWriteBarrier((void **)&tree->_parent->_rightmostChild, prevSibling); + *((void **)&tree->_parent->_rightmostChild) = prevSibling; } break; } @@ -385,7 +376,7 @@ void CFTreeRemove(CFTreeRef tree) { } tree->_parent = NULL; tree->_sibling = NULL; - if (!kCFUseCollectableAllocator) CFRelease(tree); + CFRelease(tree); } } @@ -399,7 +390,7 @@ void CFTreeRemoveAllChildren(CFTreeRef tree) { CFTreeRef nextSibling = nextChild->_sibling; nextChild->_parent = NULL; nextChild->_sibling = NULL; - if (!kCFUseCollectableAllocator) CFRelease(nextChild); + CFRelease(nextChild); nextChild = nextSibling; } } @@ -418,7 +409,7 @@ static CFComparisonResult __CFTreeCompareValues(const void *v1, const void *v2, void CFTreeSortChildren(CFTreeRef tree, CFComparatorFunction comparator, void *context) { CFIndex children; __CFGenericValidateType(tree, CFTreeGetTypeID()); - CFAssert(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(NULL != comparator, __kCFLogAssertion, "%s(): pointer to comparator function may not be NULL", __PRETTY_FUNCTION__); children = CFTreeGetChildCount(tree); if (1 < children) { CFIndex idx; @@ -438,9 +429,9 @@ void CFTreeSortChildren(CFTreeRef tree, CFComparatorFunction comparator, void *c ctx.context = context; CFQSortArray(list, children, sizeof(CFTreeRef), (CFComparatorFunction)__CFTreeCompareValues, &ctx); - __CFAssignWithWriteBarrier((void **)&tree->_child, list[0]); + *((void **)&tree->_child) = list[0]; for (idx = 1; idx < children; idx++) { - __CFAssignWithWriteBarrier((void **)&list[idx - 1]->_sibling, list[idx]); + *((void **)&list[idx - 1]->_sibling) = list[idx]; } list[idx - 1]->_sibling = NULL; tree->_rightmostChild = list[children - 1]; diff --git a/CoreFoundation/Collections.subproj/CFTree.h b/CoreFoundation/Collections.subproj/CFTree.h index 73147c26ef..6ba9312b6c 100644 --- a/CoreFoundation/Collections.subproj/CFTree.h +++ b/CoreFoundation/Collections.subproj/CFTree.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFTree.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @header CFTree @@ -221,7 +216,7 @@ void CFTreeGetChildren(CFTreeRef tree, CFTreeRef *children); undefined. */ CF_EXPORT -void CFTreeApplyFunctionToChildren(CFTreeRef tree, CFTreeApplierFunction applier, void *context); +void CFTreeApplyFunctionToChildren(CFTreeRef tree, CFTreeApplierFunction CF_NOESCAPE applier, void *context); /*! @function CFTreeFindRoot diff --git a/CoreFoundation/Error.subproj/CFError.c b/CoreFoundation/Error.subproj/CFError.c index d695b07972..a89ea52730 100644 --- a/CoreFoundation/Error.subproj/CFError.c +++ b/CoreFoundation/Error.subproj/CFError.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFError.c - Copyright (c) 2006 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2006-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Ali Ozer */ @@ -23,11 +18,12 @@ #endif + #if DEPLOYMENT_RUNTIME_SWIFT // We don't have the right memory management semantics to handle storing Swift blocks right now #define USES_CALLBACK_BLOCKS 0 #else -#define USES_CALLBACK_BLOCKS 0 +#define USES_CALLBACK_BLOCKS 1 #endif /* Pre-defined userInfo keys @@ -161,7 +157,7 @@ static const CFRuntimeClass __CFErrorClass = { }; CFTypeID CFErrorGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFErrorTypeID = _CFRuntimeRegisterClass(&__CFErrorClass); }); return __kCFErrorTypeID; } @@ -514,7 +510,6 @@ static CFTypeRef _CFErrorMachCallBack(CFErrorRef err, CFStringRef key) CF_RETURN } #endif -#if USES_CALLBACK_BLOCKS static const void *blockCopyValueCallBack(CFAllocatorRef allocator, const void *value) {return _Block_copy(value);} static void blockReleaseValueCallBack(CFAllocatorRef allocator, const void *value) {_Block_release(value);} @@ -564,14 +559,13 @@ CFErrorUserInfoKeyCallBackBlock CFErrorGetCallBackBlockForDomain(CFStringRef dom void CFErrorSetCallBackForDomain(CFStringRef domainName, CFErrorUserInfoKeyCallBack callBack) { // Since we have replaced the callback functionality with a callback block functionality, we now register (legacy) callback functions embedded in a block which autoreleases the result - CFErrorUserInfoKeyCallBackBlock block = NULL; - if (callBack) { - block = ^(CFErrorRef err, CFStringRef key){ - CFTypeRef result = callBack(err, key); - if (result) CFAutorelease(CFMakeCollectable(result)); - return result; - }; - } + CFErrorUserInfoKeyCallBackBlock block = (!callBack) ? NULL : ^(CFErrorRef err, CFStringRef key){ + CFTypeRef result = callBack(err, key); +#if !DEPLOYMENT_RUNTIME_SWIFT + if (result) CFAutorelease(result); +#endif + return result; + }; CFErrorSetCallBackBlockForDomain(domainName, block); } @@ -581,6 +575,6 @@ CFErrorUserInfoKeyCallBack CFErrorGetCallBackForDomain(CFStringRef domainName) { return NULL; } -#endif + diff --git a/CoreFoundation/Error.subproj/CFError.h b/CoreFoundation/Error.subproj/CFError.h index 80250b6cbf..1d01fdc051 100644 --- a/CoreFoundation/Error.subproj/CFError.h +++ b/CoreFoundation/Error.subproj/CFError.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFError.h - Copyright (c) 2006 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2006-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! @@ -46,6 +41,8 @@ CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFErrorDomain CF_EXTENSIBLE_STRING_ENUM; + /*! @typedef CFErrorRef This is the type of a reference to CFErrors. CFErrorRef is toll-free bridged with NSError. @@ -61,10 +58,10 @@ CFTypeID CFErrorGetTypeID(void) CF_AVAILABLE(10_5, 2_0); // Predefined domains; value of "code" will correspond to preexisting values in these domains. -CF_EXPORT const CFStringRef kCFErrorDomainPOSIX CF_AVAILABLE(10_5, 2_0); -CF_EXPORT const CFStringRef kCFErrorDomainOSStatus CF_AVAILABLE(10_5, 2_0); -CF_EXPORT const CFStringRef kCFErrorDomainMach CF_AVAILABLE(10_5, 2_0); -CF_EXPORT const CFStringRef kCFErrorDomainCocoa CF_AVAILABLE(10_5, 2_0); +CF_EXPORT const CFErrorDomain kCFErrorDomainPOSIX CF_AVAILABLE(10_5, 2_0); +CF_EXPORT const CFErrorDomain kCFErrorDomainOSStatus CF_AVAILABLE(10_5, 2_0); +CF_EXPORT const CFErrorDomain kCFErrorDomainMach CF_AVAILABLE(10_5, 2_0); +CF_EXPORT const CFErrorDomain kCFErrorDomainCocoa CF_AVAILABLE(10_5, 2_0); // Keys in userInfo for localizable, end-user presentable error messages. At minimum provide one of first two; ideally provide all three. CF_EXPORT const CFStringRef kCFErrorLocalizedDescriptionKey CF_AVAILABLE(10_5, 2_0); // Key to identify the end user-presentable description in userInfo. @@ -92,7 +89,7 @@ CF_EXPORT const CFStringRef kCFErrorFilePathKey CF_AVAILABLE @result A reference to the new CFError. */ CF_EXPORT -CFErrorRef CFErrorCreate(CFAllocatorRef allocator, CFStringRef domain, CFIndex code, CFDictionaryRef userInfo) CF_AVAILABLE(10_5, 2_0); +CFErrorRef CFErrorCreate(CFAllocatorRef allocator, CFErrorDomain domain, CFIndex code, CFDictionaryRef userInfo) CF_AVAILABLE(10_5, 2_0); /*! @function CFErrorCreateWithUserInfoKeysAndValues @@ -107,7 +104,7 @@ CFErrorRef CFErrorCreate(CFAllocatorRef allocator, CFStringRef domain, CFIndex c @result A reference to the new CFError. numUserInfoValues CF types are gathered from each of userInfoKeys and userInfoValues to create the userInfo dictionary. */ CF_EXPORT -CFErrorRef CFErrorCreateWithUserInfoKeysAndValues(CFAllocatorRef allocator, CFStringRef domain, CFIndex code, const void *const *userInfoKeys, const void *const *userInfoValues, CFIndex numUserInfoValues) CF_AVAILABLE(10_5, 2_0); +CFErrorRef CFErrorCreateWithUserInfoKeysAndValues(CFAllocatorRef allocator, CFErrorDomain domain, CFIndex code, const void *const *userInfoKeys, const void *const *userInfoValues, CFIndex numUserInfoValues) CF_AVAILABLE(10_5, 2_0); /*! @function CFErrorGetDomain @@ -116,7 +113,7 @@ CFErrorRef CFErrorCreateWithUserInfoKeysAndValues(CFAllocatorRef allocator, CFSt @result The error domain of the CFError. Since this is a "Get" function, the caller shouldn't CFRelease the return value. */ CF_EXPORT -CFStringRef CFErrorGetDomain(CFErrorRef err) CF_AVAILABLE(10_5, 2_0); +CFErrorDomain CFErrorGetDomain(CFErrorRef err) CF_AVAILABLE(10_5, 2_0); /*! @function CFErrorGetCode diff --git a/CoreFoundation/Error.subproj/CFError_Private.h b/CoreFoundation/Error.subproj/CFError_Private.h index 0196ae256d..50a7e04c27 100644 --- a/CoreFoundation/Error.subproj/CFError_Private.h +++ b/CoreFoundation/Error.subproj/CFError_Private.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFError_Private.h - Copyright (c) 2006 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2006-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors This is Apple-internal SPI for CFError. */ diff --git a/CoreFoundation/Locale.subproj/CFCalendar.c b/CoreFoundation/Locale.subproj/CFCalendar.c index ce5196dc2e..392318acc1 100644 --- a/CoreFoundation/Locale.subproj/CFCalendar.c +++ b/CoreFoundation/Locale.subproj/CFCalendar.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFCalendar.c - Copyright (c) 2004 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2004-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -52,7 +47,7 @@ static void __CFCalendarDeallocate(CFTypeRef cf) { if (calendar->_identifier) CFRelease(calendar->_identifier); if (calendar->_locale) CFRelease(calendar->_locale); if (calendar->_localeID) CFRelease(calendar->_localeID); - if (calendar->_tz) CFRelease(calendar->_tz); + if (calendar->_identifier) CFRelease(calendar->_tz); if (calendar->_cal) ucal_close(calendar->_cal); } @@ -71,7 +66,7 @@ static const CFRuntimeClass __CFCalendarClass = { }; CFTypeID CFCalendarGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFCalendarTypeID = _CFRuntimeRegisterClass(&__CFCalendarClass); }); return __kCFCalendarTypeID; } @@ -269,14 +264,15 @@ CFCalendarRef CFCalendarCreateWithIdentifier(CFAllocatorRef allocator, CFStringR __CFGenericValidateType(allocator, CFAllocatorGetTypeID()); __CFGenericValidateType(identifier, CFStringGetTypeID()); // return NULL until Chinese calendar is available - if (identifier != kCFGregorianCalendar && identifier != kCFBuddhistCalendar && identifier != kCFJapaneseCalendar && identifier != kCFIslamicCalendar && identifier != kCFIslamicCivilCalendar && identifier != kCFHebrewCalendar && identifier != kCFChineseCalendar) { + if (identifier != kCFGregorianCalendar && identifier != kCFBuddhistCalendar && identifier != kCFJapaneseCalendar && identifier != kCFIslamicCalendar && identifier != kCFIslamicCivilCalendar && identifier != kCFHebrewCalendar) { +// if (identifier != kCFGregorianCalendar && identifier != kCFBuddhistCalendar && identifier != kCFJapaneseCalendar && identifier != kCFIslamicCalendar && identifier != kCFIslamicCivilCalendar && identifier != kCFHebrewCalendar && identifier != kCFChineseCalendar) { if (CFEqual(kCFGregorianCalendar, identifier)) identifier = kCFGregorianCalendar; else if (CFEqual(kCFBuddhistCalendar, identifier)) identifier = kCFBuddhistCalendar; else if (CFEqual(kCFJapaneseCalendar, identifier)) identifier = kCFJapaneseCalendar; else if (CFEqual(kCFIslamicCalendar, identifier)) identifier = kCFIslamicCalendar; else if (CFEqual(kCFIslamicCivilCalendar, identifier)) identifier = kCFIslamicCivilCalendar; else if (CFEqual(kCFHebrewCalendar, identifier)) identifier = kCFHebrewCalendar; - else if (CFEqual(kCFChineseCalendar, identifier)) identifier = kCFChineseCalendar; +// else if (CFEqual(kCFChineseCalendar, identifier)) identifier = kCFChineseCalendar; else return NULL; } struct __CFCalendar *calendar = NULL; @@ -1079,5 +1075,13 @@ Boolean CFCalendarGetTimeRangeOfUnit(CFCalendarRef calendar, CFCalendarUnit unit return false; } +CF_PRIVATE CFCalendarRef _CFCalendarCopyCoWCurrentCalendar() { + return CFCalendarCopyCurrent(); +} + +CF_PRIVATE CFCalendarRef _CFCalendarCreateCoWWithIdentifier(CFStringRef identifier) { + return CFCalendarCreateWithIdentifier(kCFAllocatorSystemDefault, identifier); +} + #undef BUFFER_SIZE diff --git a/CoreFoundation/Locale.subproj/CFCalendar.h b/CoreFoundation/Locale.subproj/CFCalendar.h index 95396d488a..0a27343784 100644 --- a/CoreFoundation/Locale.subproj/CFCalendar.h +++ b/CoreFoundation/Locale.subproj/CFCalendar.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFCalendar.h - Copyright (c) 2004 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2004-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFCALENDAR__) @@ -32,12 +27,12 @@ CF_EXPORT CFCalendarRef CFCalendarCopyCurrent(void); CF_EXPORT -CFCalendarRef CFCalendarCreateWithIdentifier(CFAllocatorRef allocator, CFStringRef identifier); +CFCalendarRef CFCalendarCreateWithIdentifier(CFAllocatorRef allocator, CFCalendarIdentifier identifier); // Create a calendar. The identifiers are the kCF*Calendar // constants in CFLocale.h. CF_EXPORT -CFStringRef CFCalendarGetIdentifier(CFCalendarRef calendar); +CFCalendarIdentifier CFCalendarGetIdentifier(CFCalendarRef calendar); // Returns the calendar's identifier. CF_EXPORT diff --git a/CoreFoundation/Locale.subproj/CFDateFormatter.c b/CoreFoundation/Locale.subproj/CFDateFormatter.c index 19da2521ef..8465c34f32 100644 --- a/CoreFoundation/Locale.subproj/CFDateFormatter.c +++ b/CoreFoundation/Locale.subproj/CFDateFormatter.c @@ -1,21 +1,17 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - -/* CFDateFormatter.c - Copyright (c) 2002 - 2015 Apple Inc. and the Swift project authors +/* CFDateFormatter.c + Copyright (c) 2002-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ #define U_SHOW_INTERNAL_API 1 #include +#include #include #include #include @@ -104,7 +100,7 @@ static void _CFDateFormatterStripAMPMIndicators(UniChar **bpat, int32_t *bpatlen //scan for (CFIndex idx = 0; idx < *bpatlen; idx++) { - if ((*bpat)[idx] == 'a') { + if (((*bpat)[idx] == 'a') || ((*bpat)[idx] == 'b') || ((*bpat)[idx] == 'B') || ((*bpat)[idx] == 'C')) { //back up while ((*bpat)[idx - 1] == ' ') { @@ -112,7 +108,7 @@ static void _CFDateFormatterStripAMPMIndicators(UniChar **bpat, int32_t *bpatlen } //shift - for (; (*bpat)[idx] == ' ' || (*bpat)[idx] == 'a'; idx++) { + for (; (*bpat)[idx] == ' ' || (*bpat)[idx] == 'a' || (*bpat)[idx] == 'b' || (*bpat)[idx] == 'B' || (*bpat)[idx] == 'C'; idx++) { for (CFIndex shiftIdx = idx; shiftIdx < *bpatlen && shiftIdx + 1 < bufferSize; shiftIdx++) { (*bpat)[shiftIdx] = (*bpat)[shiftIdx + 1]; } @@ -687,7 +683,7 @@ static void __ResetUDateFormat(CFDateFormatterRef df, Boolean goingToHaveCustomF CFStringRef newFormat = CFStringCreateWithCharacters(kCFAllocatorSystemDefault, (const UniChar *)timeBuffer, timeLen); CFStringRef formatString = __CFDateFormatterCreateForcedString(df, newFormat); CFIndex cnt = CFStringGetLength(formatString); - CFAssert(cnt <= BUFFER_SIZE, __kCFLogAssertion, "%s(): time format string too long", __PRETTY_FUNCTION__); + CFAssert1(cnt <= BUFFER_SIZE, __kCFLogAssertion, "%s(): time format string too long", __PRETTY_FUNCTION__); if (cnt <= BUFFER_SIZE) { CFStringGetCharacters(formatString, CFRangeMake(0, cnt), (UniChar *)timeBuffer); timeLen = cnt; @@ -714,7 +710,7 @@ static void __ResetUDateFormat(CFDateFormatterRef df, Boolean goingToHaveCustomF CFStringRef newFormat = CFStringCreateWithCharacters(kCFAllocatorSystemDefault, (const UniChar *)ubuffer, ret); CFStringRef formatString = __CFDateFormatterCreateForcedString(df, newFormat); CFIndex cnt = CFStringGetLength(formatString); - CFAssert(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); + CFAssert1(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); if (cnt <= 1024) { STACK_BUFFER_DECL(UChar, ubuffer, cnt); const UChar *ustr = (UChar *)CFStringGetCharactersPtr((CFStringRef)formatString); @@ -765,12 +761,12 @@ static const CFRuntimeClass __CFDateFormatterClass = { }; CFTypeID CFDateFormatterGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFDateFormatterTypeID = _CFRuntimeRegisterClass(&__CFDateFormatterClass); }); return __kCFDateFormatterTypeID; } -CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle) { +static CFDateFormatterRef __SetUpCFDateFormatter(CFAllocatorRef allocator, CFLocaleRef locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle, CFBooleanRef calculateISO8601) { struct __CFDateFormatter *memory; uint32_t size = sizeof(struct __CFDateFormatter) - sizeof(CFRuntimeBase); if (allocator == NULL) allocator = __CFGetDefaultAllocator(); @@ -852,7 +848,7 @@ CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef l case kCFDateFormatterLongStyle: case kCFDateFormatterFullStyle: break; default: - CFAssert(0, __kCFLogAssertion, "%s(): unknown date style %d", __PRETTY_FUNCTION__, dateStyle); + CFAssert2(0, __kCFLogAssertion, "%s(): unknown date style %ld", __PRETTY_FUNCTION__, dateStyle); memory->_dateStyle = kCFDateFormatterMediumStyle; break; } @@ -863,7 +859,7 @@ CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef l case kCFDateFormatterLongStyle: case kCFDateFormatterFullStyle: break; default: - CFAssert(0, __kCFLogAssertion, "%s(): unknown time style %d", __PRETTY_FUNCTION__, timeStyle); + CFAssert2(0, __kCFLogAssertion, "%s(): unknown time style %ld", __PRETTY_FUNCTION__, timeStyle); memory->_timeStyle = kCFDateFormatterMediumStyle; break; } @@ -871,6 +867,14 @@ CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef l //Prior to Gala, CFLocaleCreateCopy() always just retained. This caused problems because CFLocaleGetValue(locale, kCFLocaleCalendarKey) would create a calendar, then set its locale to self, leading to a retain cycle //Since we're not in that situation here, and this is a frequently used path, we retain as we used to memory->_locale = locale ? CFRetain(locale) : (CFLocaleRef)CFRetain(CFLocaleGetSystem()); + + if (kCFBooleanTrue == calculateISO8601) { + CFCalendarRef iso8601Cal = CFCalendarCreateWithIdentifier(kCFAllocatorSystemDefault, kCFGregorianCalendar); + CFCalendarSetFirstWeekday(iso8601Cal, UCAL_MONDAY); + CFCalendarSetMinimumDaysInFirstWeek(iso8601Cal, 4); + memory->_property._Calendar = iso8601Cal; + } + memory->_property._TimeZone = CFTimeZoneCopyDefault(); CFStringRef calident = (CFStringRef)CFLocaleGetValue(memory->_locale, kCFLocaleCalendarIdentifierKey); @@ -881,11 +885,163 @@ CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef l __ResetUDateFormat(memory, false); if (!memory->_df) { CFRelease(memory); - return NULL; + return NULL; } return (CFDateFormatterRef)memory; } +#define FORMAT_STRING_MAX_LENGTH 29 // Length of "yyyy-'W'ww-dd'T'HH:mm:ssXXXXX" +static CFMutableStringRef __createISO8601FormatString(CFISO8601DateFormatOptions options) { + CFMutableStringRef resultStr = CFStringCreateMutable(kCFAllocatorSystemDefault, FORMAT_STRING_MAX_LENGTH); + + BOOL useSpaceInsteadOfTChar = (options & kCFISO8601DateFormatWithSpaceBetweenDateAndTime) == kCFISO8601DateFormatWithSpaceBetweenDateAndTime; + BOOL useDashSeparator = (options & kCFISO8601DateFormatWithDashSeparatorInDate) == kCFISO8601DateFormatWithDashSeparatorInDate; + BOOL useColonSeparatorInTime = (options & kCFISO8601DateFormatWithColonSeparatorInTime) == kCFISO8601DateFormatWithColonSeparatorInTime; + BOOL useColonSeparatorInTimeZone = (options & kCFISO8601DateFormatWithColonSeparatorInTimeZone) == kCFISO8601DateFormatWithColonSeparatorInTimeZone; + + if ((options & kCFISO8601DateFormatWithInternetDateTime) == kCFISO8601DateFormatWithInternetDateTime) { + // Check for dashes + if (useDashSeparator == NO) { + CFStringAppendCString(resultStr, "yyyyMMdd", kCFStringEncodingUTF8); + } else { + CFStringAppendCString(resultStr, "yyyy-MM-dd", kCFStringEncodingUTF8); + } + + // Check for T separator + if (useSpaceInsteadOfTChar == NO) { + CFStringAppendCString(resultStr, "'T'", kCFStringEncodingUTF8); + } else { + CFStringAppendCString(resultStr, " ", kCFStringEncodingUTF8); + } + + // Check for colons + if (useColonSeparatorInTime == NO) { + CFStringAppendCString(resultStr, "HHmmss", kCFStringEncodingUTF8); + } else { + CFStringAppendCString(resultStr, "HH:mm:ss", kCFStringEncodingUTF8); + } + + // Check for time zone separator + if (useColonSeparatorInTimeZone == NO) { + CFStringAppendCString(resultStr, "XXXX", kCFStringEncodingUTF8); // Basic Format (e.g. +080500) + } else { + CFStringAppendCString(resultStr, "XXXXX", kCFStringEncodingUTF8); // Extended Format (e.g. +08:05:00) + } + + return resultStr; // Skip the loop below. + } + + unsigned int currentOption = 0, allOptions = options; + for (int i = 0; currentOption < allOptions; currentOption = 1 << i, i++) { + BOOL firstFormatSymbol = NO; + if (CFStringGetLength(resultStr) < 1) { + firstFormatSymbol = YES; + } + switch(currentOption) { + case kCFISO8601DateFormatWithYear: + if ((options & kCFISO8601DateFormatWithYear) == kCFISO8601DateFormatWithYear) { + BOOL includesWeekOfYear = (options & kCFISO8601DateFormatWithWeekOfYear) == kCFISO8601DateFormatWithWeekOfYear; + if (includesWeekOfYear == NO) { + CFStringAppendCString(resultStr, "yyyy", kCFStringEncodingUTF8); // Year for calendar dates + } else { + CFStringAppendCString(resultStr, "YYYY", kCFStringEncodingUTF8); // Year for week dates + } + } + break; + case kCFISO8601DateFormatWithMonth: + if ((options & kCFISO8601DateFormatWithMonth) == kCFISO8601DateFormatWithMonth) { + if ((firstFormatSymbol == NO) && useDashSeparator) { + CFStringAppendCString(resultStr, "-", kCFStringEncodingUTF8); + } + CFStringAppendCString(resultStr, "MM", kCFStringEncodingUTF8); + } + break; + case kCFISO8601DateFormatWithWeekOfYear: + if ((options & kCFISO8601DateFormatWithWeekOfYear) == kCFISO8601DateFormatWithWeekOfYear) { + if ((firstFormatSymbol == NO) && useDashSeparator) { + CFStringAppendCString(resultStr, "-", kCFStringEncodingUTF8); + } + CFStringAppendCString(resultStr, "'W'ww", kCFStringEncodingUTF8); + } + break; + case kCFISO8601DateFormatWithDay: + if ((options & kCFISO8601DateFormatWithDay) == kCFISO8601DateFormatWithDay) { + if ((firstFormatSymbol == NO) && useDashSeparator) { + CFStringAppendCString(resultStr, "-", kCFStringEncodingUTF8); + } + + BOOL includesMonth = (options & kCFISO8601DateFormatWithMonth) == kCFISO8601DateFormatWithMonth; + BOOL includesWeekOfYear = (options & kCFISO8601DateFormatWithWeekOfYear) == kCFISO8601DateFormatWithWeekOfYear; + + if (includesWeekOfYear == NO) { + if (includesMonth == NO) { + CFStringAppendCString(resultStr, "DDD", kCFStringEncodingUTF8); // Day of Year + } else { + CFStringAppendCString(resultStr, "dd", kCFStringEncodingUTF8); // Day of Month + } + } else { // If week is included, we want to use the day local to that week. + CFStringAppendCString(resultStr, "ee", kCFStringEncodingUTF8); // Local day of week + } + } + break; + case kCFISO8601DateFormatWithTime: + if ((options & kCFISO8601DateFormatWithTime) == kCFISO8601DateFormatWithTime) { + if (firstFormatSymbol == NO) { // This matters for T (or Space) character + if (useSpaceInsteadOfTChar == NO) { + CFStringAppendCString(resultStr, "'T'", kCFStringEncodingUTF8); + } else { + CFStringAppendCString(resultStr, " ", kCFStringEncodingUTF8); + } + } + // Check for colons + if (useColonSeparatorInTime == NO) { + CFStringAppendCString(resultStr, "HHmmss", kCFStringEncodingUTF8); + } else { + CFStringAppendCString(resultStr, "HH:mm:ss", kCFStringEncodingUTF8); + } + } + break; + case kCFISO8601DateFormatWithTimeZone: + if ((options & kCFISO8601DateFormatWithTimeZone) == kCFISO8601DateFormatWithTimeZone) { + // Check for time zone separator + if (useColonSeparatorInTimeZone == NO) { + CFStringAppendCString(resultStr, "XXXX", kCFStringEncodingUTF8); // Basic Format (e.g. +080500) + } else { + CFStringAppendCString(resultStr, "XXXXX", kCFStringEncodingUTF8); // Extended Format (e.g. +08:05:00) + } + } + break; + default: break; + } + } + + return resultStr; +} + +CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) { + CFStringRef localeStr = CFStringCreateWithCString(kCFAllocatorSystemDefault, "en_US_POSIX", kCFStringEncodingUTF8); + CFLocaleRef locale = CFLocaleCreate(kCFAllocatorSystemDefault, localeStr); + CFDateFormatterRef ISO8601Formatter = __SetUpCFDateFormatter(allocator, locale, kCFDateFormatterNoStyle, kCFDateFormatterNoStyle, kCFBooleanTrue); // dateStyle and timeStyle are not relevant for ISO8601 + + if (formatOptions != 0) { + CFStringRef formatStr = __createISO8601FormatString(formatOptions); + if (formatStr) { + CFDateFormatterSetFormat(ISO8601Formatter, formatStr); + CFRelease(formatStr); + } + } + + CFRelease(localeStr); + CFRelease(locale); + + return ISO8601Formatter; +} + +CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle) { + return __SetUpCFDateFormatter(allocator, locale, dateStyle, timeStyle, kCFBooleanFalse); +} + + static void __substituteFormatStringFromPrefsDFRelative(CFDateFormatterRef formatter) { CFIndex dateLen = -1; @@ -1116,7 +1272,7 @@ static CFStringRef __CFDateFormatterCreateForcedString(CFDateFormatterRef format if (options == UDATPG_MATCH_NO_OPTIONS) return (CFStringRef)CFRetain(inString); static CFCharacterSetRef hourCharacters; - static dispatch_once_t onceToken = 0; + static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ hourCharacters = CFCharacterSetCreateWithCharactersInString(kCFAllocatorSystemDefault, CFSTR("hHkK")); }); @@ -1183,7 +1339,7 @@ void CFDateFormatterSetFormat(CFDateFormatterRef formatter, CFStringRef formatSt __CFGenericValidateType(formatString, CFStringGetTypeID()); formatString = __CFDateFormatterCreateForcedString(formatter, formatString); CFIndex cnt = CFStringGetLength(formatString); - CFAssert(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); + CFAssert1(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); if (formatter->_format != formatString && cnt <= 1024) { // When going from a situation where there is no custom format already, // and the "relative date formatting" property is set, we need to reset @@ -1250,8 +1406,66 @@ CFStringRef CFDateFormatterCreateStringWithAbsoluteTime(CFAllocatorRef allocator return string; } +#if U_ICU_VERSION_MAJOR_NUM > 55 static const char * const _ICUPatternMap = "GyMdkHmsSEDFwWahKzYeugAZvcLQqVUOXxr:"; +CFAttributedStringRef _CFDateFormatterCreateAttributedStringAndFieldsWithAbsoluteTime(CFAllocatorRef allocator, CFDateFormatterRef formatter, CFAbsoluteTime at) { + if (allocator == NULL) allocator = __CFGetDefaultAllocator(); + __CFGenericValidateType(allocator, CFAllocatorGetTypeID()); + __CFGenericValidateType(formatter, CFDateFormatterGetTypeID()); + UChar *ustr = NULL, ubuffer[BUFFER_SIZE + 1]; + UErrorCode status = U_ZERO_ERROR; + CFIndex used, cnt = BUFFER_SIZE; + UDate ud = (at + kCFAbsoluteTimeIntervalSince1970) * 1000.0 + 0.5; + UFieldPositionIterator *fpositer = ufieldpositer_open(&status); + used = __cficu_udat_formatForFields(formatter->_df, ud, ubuffer + 1, cnt, fpositer, &status); + if (status == U_BUFFER_OVERFLOW_ERROR || cnt < used) { + cnt = used + 1 + 1; // leave room for RTL marker if needed + ustr = (UChar *)CFAllocatorAllocate(kCFAllocatorSystemDefault, sizeof(UChar) * cnt, 0); + status = U_ZERO_ERROR; + ufieldpositer_close(fpositer); + fpositer = ufieldpositer_open(&status); + used = __cficu_udat_formatForFields(formatter->_df, ud, ustr + 1, cnt, fpositer, &status); + } + CFStringRef string = NULL; + CFMutableAttributedStringRef attributed = NULL; + if (U_SUCCESS(status)) { + UniChar *bufferToUse = ustr ? (UniChar *)ustr : (UniChar *)ubuffer; + if (formatter->_property._UsesCharacterDirection == kCFBooleanTrue && CFLocaleGetLanguageCharacterDirection(CFLocaleGetIdentifier(formatter->_locale)) == kCFLocaleLanguageDirectionRightToLeft) { + // Insert Unicode RTL marker + bufferToUse[0] = 0x200F; + used++; + } else { + // Move past direction marker + bufferToUse++; + } + string = CFStringCreateWithCharacters(allocator, bufferToUse, used); + + } + if (ustr) CFAllocatorDeallocate(kCFAllocatorSystemDefault, ustr); + if (string) { + attributed = CFAttributedStringCreateMutable(allocator, CFStringGetLength(string)); + CFAttributedStringReplaceString(attributed, CFRangeMake(0, 0), string); + CFRelease(string); + int32_t field; + int32_t beginIndex; + int32_t endIndex; + size_t limit = strlen(_ICUPatternMap); + while ((field = ufieldpositer_next(fpositer, &beginIndex, &endIndex)) >= 0) { + if (field >= limit) { + continue; + } + CFStringRef pattern = CFStringCreateWithBytes(allocator, (UInt8 *)_ICUPatternMap+field, 1, kCFStringEncodingASCII, false); + CFAttributedStringSetAttribute(attributed, CFRangeMake(beginIndex, endIndex-beginIndex), kCFDateFormatterPatternCharacterKey, pattern); + CFRelease(pattern); + } + } + if (fpositer != NULL) { + ufieldpositer_close(fpositer); + } + return attributed; +} +#endif static UDate __CFDateFormatterCorrectTimeWithTarget(UCalendar *calendar, UDate at, int32_t target, Boolean isEra, UErrorCode *status) { __cficu_ucal_setMillis(calendar, at, status); @@ -1627,17 +1841,17 @@ static CFArrayRef __CFDateFormatterCopySymbolsArray(UDateFormat *icudf, int32_t STACK_BUFFER_DECL(CFStringRef, strings, cnt); for (idx = 0; idx < cnt; idx++) { UChar ubuffer[BUFFER_SIZE]; - CFStringRef str = NULL; - status = U_ZERO_ERROR; - CFIndex ucnt = __cficu_udat_getSymbols(icudf, (UDateFormatSymbolType)icucode, idx + index_base, ubuffer, BUFFER_SIZE, &status); - if (U_SUCCESS(status) && cnt <= BUFFER_SIZE) { - str = CFStringCreateWithCharacters(kCFAllocatorSystemDefault, (const UniChar *)ubuffer, ucnt); - } - strings[idx] = !str ? (CFStringRef)CFRetain(CFSTR("")) : str; + CFStringRef str = NULL; + status = U_ZERO_ERROR; + CFIndex ucnt = __cficu_udat_getSymbols(icudf, (UDateFormatSymbolType)icucode, idx + index_base, ubuffer, BUFFER_SIZE, &status); + if (U_SUCCESS(status) && cnt <= BUFFER_SIZE) { + str = CFStringCreateWithCharacters(kCFAllocatorSystemDefault, (const UniChar *)ubuffer, ucnt); + } + strings[idx] = !str ? (CFStringRef)CFRetain(CFSTR("")) : str; } CFArrayRef array = CFArrayCreate(kCFAllocatorSystemDefault, (const void **)strings, cnt, &kCFTypeArrayCallBacks); while (cnt--) { - CFRelease(strings[cnt]); + CFRelease(strings[cnt]); } return array; } @@ -1861,7 +2075,7 @@ static void __CFDateFormatterSetProperty(CFDateFormatterRef formatter, CFStringR formatter->_property._FormattingContext = (CFNumberRef)CFRetain(value); } } else { - CFAssert(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); + CFAssert3(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); } if (oldProperty) CFRelease(oldProperty); } @@ -1987,7 +2201,7 @@ CFTypeRef CFDateFormatterCopyProperty(CFDateFormatterRef formatter, CFStringRef int value = __cficu_udat_getContext(formatter->_df, UDISPCTX_TYPE_CAPITALIZATION, &status); return CFNumberCreate(CFGetAllocator(formatter), kCFNumberIntType, (const void *)&value); } else { - CFAssert(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); + CFAssert3(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); } return NULL; } diff --git a/CoreFoundation/Locale.subproj/CFDateFormatter.h b/CoreFoundation/Locale.subproj/CFDateFormatter.h index d9b2188ad1..b98971d590 100644 --- a/CoreFoundation/Locale.subproj/CFDateFormatter.h +++ b/CoreFoundation/Locale.subproj/CFDateFormatter.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFDateFormatter.h - Copyright (c) 2003 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2003-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFDATEFORMATTER__) @@ -22,6 +17,8 @@ CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFDateFormatterKey CF_STRING_ENUM; + typedef struct CF_BRIDGED_MUTABLE_TYPE(id) __CFDateFormatter *CFDateFormatterRef; // CFDateFormatters are not thread-safe. Do not use one from multiple threads! @@ -33,14 +30,6 @@ CFStringRef CFDateFormatterCreateDateFormatFromTemplate(CFAllocatorRef allocator CF_EXPORT CFTypeID CFDateFormatterGetTypeID(void); -typedef CF_ENUM(CFIndex, CFDateFormatterStyle) { // date and time format styles - kCFDateFormatterNoStyle = 0, - kCFDateFormatterShortStyle = 1, - kCFDateFormatterMediumStyle = 2, - kCFDateFormatterLongStyle = 3, - kCFDateFormatterFullStyle = 4 -}; - // The exact formatted result for these date and time styles depends on the // locale, but generally: // Short is completely numeric, such as "12/13/52" or "3:30pm" @@ -53,6 +42,48 @@ typedef CF_ENUM(CFIndex, CFDateFormatterStyle) { // date and time format styles // should not rely on styles and localization, but set the format string and // use nothing but numbers. +typedef CF_ENUM(CFIndex, CFDateFormatterStyle) { // date and time format styles + kCFDateFormatterNoStyle = 0, + kCFDateFormatterShortStyle = 1, + kCFDateFormatterMediumStyle = 2, + kCFDateFormatterLongStyle = 3, + kCFDateFormatterFullStyle = 4 +}; + +typedef CF_OPTIONS(CFOptionFlags, CFISO8601DateFormatOptions) { + /* The format for year is inferred based on whether or not the week of year option is specified. + - if week of year is present, "YYYY" is used to display week dates. + - if week of year is not present, "yyyy" is used by default. + */ + kCFISO8601DateFormatWithYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 0), + kCFISO8601DateFormatWithMonth API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 1), + + kCFISO8601DateFormatWithWeekOfYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 2), // This includes the "W" prefix (e.g. "W49") + + /* The format for day is inferred based on provided options. + - if month is not present, day of year ("DDD") is used. + - if month is present, day of month ("dd") is used. + - if either weekOfMonth or weekOfYear is present, local day of week ("ee") is used. + */ + kCFISO8601DateFormatWithDay API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 4), + + kCFISO8601DateFormatWithTime API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 5), // This uses the format "HH:mm:ss" + kCFISO8601DateFormatWithTimeZone API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 6), + + kCFISO8601DateFormatWithSpaceBetweenDateAndTime API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 7), // Use space instead of "T" + kCFISO8601DateFormatWithDashSeparatorInDate API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 8), // Add separator for date ("-") + kCFISO8601DateFormatWithColonSeparatorInTime API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 9), // Add separator for time (":") + kCFISO8601DateFormatWithColonSeparatorInTimeZone API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 10), // Add ":" separator in timezone (eg. +08:00) + + kCFISO8601DateFormatWithFullDate API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = kCFISO8601DateFormatWithYear | kCFISO8601DateFormatWithMonth | kCFISO8601DateFormatWithDay | kCFISO8601DateFormatWithDashSeparatorInDate, + kCFISO8601DateFormatWithFullTime API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = kCFISO8601DateFormatWithTime | kCFISO8601DateFormatWithColonSeparatorInTime | kCFISO8601DateFormatWithTimeZone | kCFISO8601DateFormatWithColonSeparatorInTimeZone, + + kCFISO8601DateFormatWithInternetDateTime API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = kCFISO8601DateFormatWithFullDate | kCFISO8601DateFormatWithFullTime, // RFC3339 +}; + +CF_EXPORT +CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + CF_EXPORT CFDateFormatterRef CFDateFormatterCreate(CFAllocatorRef allocator, CFLocaleRef locale, CFDateFormatterStyle dateStyle, CFDateFormatterStyle timeStyle); // Returns a CFDateFormatter, localized to the given locale, which @@ -107,39 +138,39 @@ CF_EXPORT void CFDateFormatterSetProperty(CFDateFormatterRef formatter, CFStringRef key, CFTypeRef value); CF_EXPORT -CFTypeRef CFDateFormatterCopyProperty(CFDateFormatterRef formatter, CFStringRef key); +CFTypeRef CFDateFormatterCopyProperty(CFDateFormatterRef formatter, CFDateFormatterKey key); // Set and get various properties of the date formatter, the set of // which may be expanded in the future. -CF_EXPORT const CFStringRef kCFDateFormatterIsLenient; // CFBoolean -CF_EXPORT const CFStringRef kCFDateFormatterTimeZone; // CFTimeZone -CF_EXPORT const CFStringRef kCFDateFormatterCalendarName; // CFString -CF_EXPORT const CFStringRef kCFDateFormatterDefaultFormat; // CFString -CF_EXPORT const CFStringRef kCFDateFormatterTwoDigitStartDate; // CFDate -CF_EXPORT const CFStringRef kCFDateFormatterDefaultDate; // CFDate -CF_EXPORT const CFStringRef kCFDateFormatterCalendar; // CFCalendar -CF_EXPORT const CFStringRef kCFDateFormatterEraSymbols; // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterMonthSymbols; // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortMonthSymbols; // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterWeekdaySymbols; // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortWeekdaySymbols; // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterAMSymbol; // CFString -CF_EXPORT const CFStringRef kCFDateFormatterPMSymbol; // CFString -CF_EXPORT const CFStringRef kCFDateFormatterLongEraSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterVeryShortMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterVeryShortStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterVeryShortWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterVeryShortStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterStandaloneQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterShortStandaloneQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString -CF_EXPORT const CFStringRef kCFDateFormatterGregorianStartDate CF_AVAILABLE(10_5, 2_0); // CFDate -CF_EXPORT const CFStringRef kCFDateFormatterDoesRelativeDateFormattingKey CF_AVAILABLE(10_6, 4_0); // CFBoolean +CF_EXPORT const CFDateFormatterKey kCFDateFormatterIsLenient; // CFBoolean +CF_EXPORT const CFDateFormatterKey kCFDateFormatterTimeZone; // CFTimeZone +CF_EXPORT const CFDateFormatterKey kCFDateFormatterCalendarName; // CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterDefaultFormat; // CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterTwoDigitStartDate; // CFDate +CF_EXPORT const CFDateFormatterKey kCFDateFormatterDefaultDate; // CFDate +CF_EXPORT const CFDateFormatterKey kCFDateFormatterCalendar; // CFCalendar +CF_EXPORT const CFDateFormatterKey kCFDateFormatterEraSymbols; // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterMonthSymbols; // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortMonthSymbols; // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterWeekdaySymbols; // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortWeekdaySymbols; // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterAMSymbol; // CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterPMSymbol; // CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterLongEraSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterVeryShortMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterVeryShortStandaloneMonthSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterVeryShortWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterVeryShortStandaloneWeekdaySymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterStandaloneQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterShortStandaloneQuarterSymbols CF_AVAILABLE(10_5, 2_0); // CFArray of CFString +CF_EXPORT const CFDateFormatterKey kCFDateFormatterGregorianStartDate CF_AVAILABLE(10_5, 2_0); // CFDate +CF_EXPORT const CFDateFormatterKey kCFDateFormatterDoesRelativeDateFormattingKey CF_AVAILABLE(10_6, 4_0); // CFBoolean // See CFLocale.h for these calendar constants: // const CFStringRef kCFGregorianCalendar; diff --git a/CoreFoundation/Locale.subproj/CFDateFormatter_Private.h b/CoreFoundation/Locale.subproj/CFDateFormatter_Private.h new file mode 100644 index 0000000000..a986d888ac --- /dev/null +++ b/CoreFoundation/Locale.subproj/CFDateFormatter_Private.h @@ -0,0 +1,31 @@ +/* CFDateFormatter_Private.h + Copyright (c) 2015-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +*/ + +#if !defined(__COREFOUNDATION_CFDATEFORMATTER_PRIVATE__) +#define __COREFOUNDATION_CFDATEFORMATTER_PRIVATE__ 1 + +#include +#include + +CF_IMPLICIT_BRIDGING_ENABLED +CF_EXTERN_C_BEGIN + +CF_EXPORT +CFAttributedStringRef _CFDateFormatterCreateAttributedStringAndFieldsWithAbsoluteTime(CFAllocatorRef allocator, CFDateFormatterRef formatter, CFAbsoluteTime at) CF_AVAILABLE(10_11, 9_0); + +CF_EXPORT const CFStringRef kCFDateFormatterPatternCharacterKey CF_AVAILABLE(10_11, 9_0); +CF_EXPORT const CFStringRef kCFDateFormatterPatternLiteralKey CF_AVAILABLE(10_11, 9_0); +CF_EXPORT const CFStringRef kCFDateFormatterPatternStringKey CF_AVAILABLE(10_11, 9_0); +CF_EXPORT const CFStringRef kCFDateFormatterPatternRangeKey CF_AVAILABLE(10_11, 9_0); + +CF_EXTERN_C_END +CF_IMPLICIT_BRIDGING_DISABLED + +#endif /* ! __COREFOUNDATION_CFDATEFORMATTER_PRIVATE__ */ + diff --git a/CoreFoundation/Locale.subproj/CFICULogging.h b/CoreFoundation/Locale.subproj/CFICULogging.h index 205d788145..a6ac22817b 100644 --- a/CoreFoundation/Locale.subproj/CFICULogging.h +++ b/CoreFoundation/Locale.subproj/CFICULogging.h @@ -1,16 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - CFICULogging.h - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + CFICULogging.h + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* @@ -64,6 +59,7 @@ #define __cficu_udat_close udat_close #define __cficu_udat_countSymbols udat_countSymbols #define __cficu_udat_format udat_format +#define __cficu_udat_formatForFields udat_formatForFields #define __cficu_udat_get2DigitYearStart udat_get2DigitYearStart #define __cficu_udat_getCalendar udat_getCalendar #define __cficu_udat_getSymbols udat_getSymbols diff --git a/CoreFoundation/Locale.subproj/CFLocale.c b/CoreFoundation/Locale.subproj/CFLocale.c index 69dda52a70..7e735c48e3 100644 --- a/CoreFoundation/Locale.subproj/CFLocale.c +++ b/CoreFoundation/Locale.subproj/CFLocale.c @@ -1,21 +1,17 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - -/* CFLocale.c - Copyright (c) 2002 - 2015 Apple Inc. and the Swift project authors - Responsibility: David Smith +/* CFLocale.c + Copyright (c) 2002-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: David Smith */ // Note the header file is in the OpenSource set (stripped to almost nothing), but not the .c file #include +#include #include #include #include @@ -33,6 +29,10 @@ #include // ICU low-level utilities #include // ICU message formatting #include +#include +#if U_ICU_VERSION_MAJOR_NUM > 53 && __has_include() +#include +#endif #endif #include #include @@ -56,6 +56,8 @@ #endif +CF_PRIVATE CFCalendarRef _CFCalendarCreateCoWWithIdentifier(CFStringRef identifier); + CONST_STRING_DECL(kCFLocaleCurrentLocaleDidChangeNotification, "kCFLocaleCurrentLocaleDidChangeNotification") static const char *kCalendarKeyword = "calendar"; @@ -68,7 +70,7 @@ PE_CONST_STRING_DECL(__kCFLocaleCollatorID, "locale:collator id") enum { - __kCFLocaleKeyTableCount = 21 + __kCFLocaleKeyTableCount = 22 }; struct key_table { @@ -99,6 +101,7 @@ static bool __CFLocaleCopyUsesMetric(CFLocaleRef locale, bool user, CFTypeRef *c static bool __CFLocaleCopyCalendar(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); static bool __CFLocaleCopyCollationID(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); static bool __CFLocaleCopyMeasurementSystem(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); +static bool __CFLocaleCopyTemperatureUnit(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); static bool __CFLocaleCopyNumberFormat(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); static bool __CFLocaleCopyNumberFormat2(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context); static bool __CFLocaleCurrencyFullName(const char *locale, const char *value, CFStringRef *out); @@ -118,6 +121,7 @@ static struct key_table __CFLocaleKeyTable[__kCFLocaleKeyTableCount] = { {(CFStringRef)&kCFLocaleCollationIdentifierKey, __CFLocaleCopyCollationID, __CFLocaleSetNOP, __CFLocaleCollationName, NULL}, {(CFStringRef)&kCFLocaleUsesMetricSystemKey, __CFLocaleCopyUsesMetric, __CFLocaleSetNOP, __CFLocaleNoName, NULL}, {(CFStringRef)&kCFLocaleMeasurementSystemKey, __CFLocaleCopyMeasurementSystem, __CFLocaleSetNOP, __CFLocaleNoName, NULL}, + {(CFStringRef)&kCFLocaleTemperatureUnitKey, __CFLocaleCopyTemperatureUnit, __CFLocaleSetNOP, __CFLocaleNoName, NULL}, {(CFStringRef)&kCFLocaleDecimalSeparatorKey, __CFLocaleCopyNumberFormat, __CFLocaleSetNOP, __CFLocaleNoName, (CFStringRef)&kCFNumberFormatterDecimalSeparatorKey}, {(CFStringRef)&kCFLocaleGroupingSeparatorKey, __CFLocaleCopyNumberFormat, __CFLocaleSetNOP, __CFLocaleNoName, (CFStringRef)&kCFNumberFormatterGroupingSeparatorKey}, {(CFStringRef)&kCFLocaleCurrencySymbolKey, __CFLocaleCopyNumberFormat2, __CFLocaleSetNOP, __CFLocaleCurrencyShortName, (CFStringRef)&kCFNumberFormatterCurrencySymbolKey}, @@ -238,7 +242,7 @@ static const CFRuntimeClass __CFLocaleClass = { }; CFTypeID CFLocaleGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFLocaleTypeID = _CFRuntimeRegisterClass(&__CFLocaleClass); // initOnce covered for (CFIndex idx = 0; idx < __kCFLocaleKeyTableCount; idx++) { @@ -406,11 +410,11 @@ Boolean _CFLocaleInit(CFLocaleRef locale, CFStringRef identifier) { ((struct __CFLocale *)locale)->_cache = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, NULL, &kCFTypeDictionaryValueCallBacks); ((struct __CFLocale *)locale)->_prefs = NULL; ((struct __CFLocale *)locale)->_lock = CFLockInit; - - return (CFLocaleRef)locale; + + return true; } #endif - + CFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFStringRef identifier) { if (allocator == NULL) allocator = __CFGetDefaultAllocator(); __CFGenericValidateType(allocator, CFAllocatorGetTypeID()); @@ -443,6 +447,7 @@ CFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFStringRef identifier) { uint32_t size = sizeof(struct __CFLocale) - sizeof(CFRuntimeBase); locale = (struct __CFLocale *)_CFRuntimeCreateInstance(allocator, CFLocaleGetTypeID(), size, NULL); if (NULL == locale) { + if (localeIdentifier) { CFRelease(localeIdentifier); } return NULL; } __CFLocaleSetType(locale, __kCFLocaleOrdinary); @@ -460,7 +465,7 @@ CFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFStringRef identifier) { return (CFLocaleRef)locale; } -//Prior to Gala, CFLocaleCreateCopy() always just retained. This caused problems because CFLocaleGetValue(locale, kCFLocaleCalendarKey) would create a calendar, then set its locale to self, leading to a retain cycle +//CFLocaleCreateCopy() always just retained. This caused problems because CFLocaleGetValue(locale, kCFLocaleCalendarKey) would create a calendar, then set its locale to self, leading to a retain cycle static CFLocaleRef _CFLocaleCreateCopyGuts(CFAllocatorRef allocator, CFLocaleRef locale, CFStringRef calendarIdentifier) { CF_OBJC_FUNCDISPATCHV(CFLocaleGetTypeID(), CFLocaleRef, (NSLocale *)locale, copy); if (allocator == NULL) allocator = __CFGetDefaultAllocator(); @@ -482,6 +487,7 @@ static CFLocaleRef _CFLocaleCreateCopyGuts(CFAllocatorRef allocator, CFLocaleRef uint32_t size = sizeof(struct __CFLocale) - sizeof(CFRuntimeBase); loc = (struct __CFLocale *)_CFRuntimeCreateInstance(allocator, CFLocaleGetTypeID(), size, NULL); if (NULL == loc) { + if (localeIdentifier) { CFRelease(localeIdentifier); } return NULL; } __CFLocaleSetType(loc, __CFLocaleGetType(locale)); @@ -494,7 +500,7 @@ static CFLocaleRef _CFLocaleCreateCopyGuts(CFAllocatorRef allocator, CFLocaleRef return (CFLocaleRef)loc; } -//Prior to Gala, CFLocaleCreateCopy() always just retained. This caused problems because CFLocaleGetValue(locale, kCFLocaleCalendarKey) would create a calendar, then set its locale to self, leading to a retain cycle +//CFLocaleCreateCopy() always just retained. This caused problems because CFLocaleGetValue(locale, kCFLocaleCalendarKey) would create a calendar, then set its locale to self, leading to a retain cycle CFLocaleRef CFLocaleCreateCopy(CFAllocatorRef allocator, CFLocaleRef locale) { return _CFLocaleCreateCopyGuts(allocator, locale, NULL); } @@ -789,6 +795,39 @@ CFLocaleLanguageDirection CFLocaleGetLanguageLineDirection(CFStringRef isoLangCo #endif } +_CFLocaleCalendarDirection _CFLocaleGetCalendarDirection(void) { +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + _CFLocaleCalendarDirection calendarDirection = _kCFLocaleCalendarDirectionLeftToRight; + Boolean keyExistsAndHasValidFormat = false; + Boolean calendarIsRightToLeft = CFPreferencesGetAppBooleanValue(CFSTR("NSLocaleCalendarDirectionIsRightToLeft"), kCFPreferencesAnyApplication, &keyExistsAndHasValidFormat); + if (keyExistsAndHasValidFormat) { + calendarDirection = calendarIsRightToLeft ? _kCFLocaleCalendarDirectionRightToLeft : _kCFLocaleCalendarDirectionLeftToRight; + } else { + // If there was no default set, return the directionality of the effective language, + // except for Hebrew, where the default should be LTR + CFBundleRef mainBundle = CFBundleGetMainBundle(); + CFArrayRef bundleLocalizations = CFBundleCopyBundleLocalizations(mainBundle); + + if (NULL != bundleLocalizations) { + CFArrayRef effectiveLocalizations = CFBundleCopyPreferredLocalizationsFromArray(bundleLocalizations); + CFStringRef effectiveLocale = CFArrayGetValueAtIndex(effectiveLocalizations, 0); + CFDictionaryRef effectiveLocaleComponents = CFLocaleCreateComponentsFromLocaleIdentifier(kCFAllocatorDefault, effectiveLocale); + CFStringRef effectiveLanguage = CFDictionaryGetValue(effectiveLocaleComponents, kCFLocaleLanguageCodeKey); + if (NULL != effectiveLanguage) { + CFLocaleLanguageDirection effectiveLanguageDirection = CFLocaleGetLanguageCharacterDirection(effectiveLanguage); + calendarDirection = (effectiveLanguageDirection == kCFLocaleLanguageDirectionRightToLeft) ? _kCFLocaleCalendarDirectionRightToLeft : _kCFLocaleCalendarDirectionLeftToRight; + } + CFRelease(effectiveLocaleComponents); + CFRelease(effectiveLocalizations); + CFRelease(bundleLocalizations); + } + } + return calendarDirection; +#else + return _kCFLocaleCalendarDirectionLeftToRight; +#endif +} + CFArrayRef CFLocaleCopyPreferredLanguages(void) { CFMutableArrayRef newArray = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS @@ -798,8 +837,10 @@ CFArrayRef CFLocaleCopyPreferredLanguages(void) { CFStringRef str = (CFStringRef)CFArrayGetValueAtIndex(languagesArray, idx); if (str && (CFStringGetTypeID() == CFGetTypeID(str))) { CFStringRef ident = CFLocaleCreateCanonicalLanguageIdentifierFromString(kCFAllocatorSystemDefault, str); - CFArrayAppendValue(newArray, ident); - CFRelease(ident); + if (ident) { + CFArrayAppendValue(newArray, ident); + CFRelease(ident); + } } } } @@ -1022,7 +1063,7 @@ static bool __CFLocaleCopyCalendarID(CFLocaleRef locale, bool user, CFTypeRef *c static bool __CFLocaleCopyCalendar(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX if (__CFLocaleCopyCalendarID(locale, user, cf, context)) { - CFCalendarRef calendar = CFCalendarCreateWithIdentifier(kCFAllocatorSystemDefault, (CFStringRef)*cf); + CFCalendarRef calendar = _CFCalendarCreateCoWWithIdentifier((CFStringRef)*cf); CFCalendarSetLocale(calendar, locale); CFDictionaryRef prefs = __CFLocaleGetPrefs(locale); CFPropertyListRef metapref = prefs ? CFDictionaryGetValue(prefs, CFSTR("AppleFirstWeekday")) : NULL; @@ -1204,6 +1245,66 @@ static bool __CFLocaleCopyMeasurementSystem(CFLocaleRef locale, bool user, CFTyp #endif } + + +static bool __CFLocaleCopyTemperatureUnit(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context) { +#if U_ICU_VERSION_MAJOR_NUM > 54 + bool celsius = true; // Default is Celsius + bool done = false; +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + if (user) { + CFTypeRef temperatureUnitPref = CFDictionaryGetValue(locale->_prefs, CFSTR("AppleTemperatureUnit")); + if (temperatureUnitPref) { + if (CFEqual(temperatureUnitPref, kCFLocaleTemperatureUnitFahrenheit)) { + celsius = false; + done = true; + } else if (CFEqual(temperatureUnitPref, kCFLocaleTemperatureUnitCelsius)) { + done = true; + } + // If set to anything else, fall back to locale default + } + } +#endif +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX + if (!done) { + char localeID[ULOC_FULLNAME_CAPACITY+ULOC_KEYWORD_AND_VALUES_CAPACITY]; + if (CFStringGetCString(locale->_identifier, localeID, sizeof(localeID)/sizeof(char), kCFStringEncodingASCII)) { +#if U_ICU_VERSION_MAJOR_NUM > 53 && __has_include() + UErrorCode icuStatus = U_ZERO_ERROR; + UAMeasureUnit unit; + int32_t unitCount = uameasfmt_getUnitsForUsage(localeID, "temperature", "weather", &unit, 1, &icuStatus); + if (U_SUCCESS(icuStatus) && unitCount > 0) { + if (unit == UAMEASUNIT_TEMPERATURE_FAHRENHEIT) { + celsius = false; + } + done = true; + } +#endif + } + } + if (!done) { + UMeasurementSystem system = UMS_SI; + __CFLocaleGetMeasurementSystemGuts(locale, user, &system); + if (system == UMS_US) { + celsius = false; + } + done = true; + } +#endif + if (!done) { + celsius = true; + } + if (celsius) { + *cf = kCFLocaleTemperatureUnitCelsius; + } else { + *cf = kCFLocaleTemperatureUnitFahrenheit; + } + return true; +#else + return false; +#endif +} + static bool __CFLocaleCopyNumberFormat(CFLocaleRef locale, bool user, CFTypeRef *cf, CFStringRef context) { CFStringRef str = NULL; #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX diff --git a/CoreFoundation/Locale.subproj/CFLocale.h b/CoreFoundation/Locale.subproj/CFLocale.h index 7b94f14842..7bf93cc770 100644 --- a/CoreFoundation/Locale.subproj/CFLocale.h +++ b/CoreFoundation/Locale.subproj/CFLocale.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFLocale.h - Copyright (c) 2002 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2002-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFLOCALE__) @@ -18,10 +13,14 @@ #include #include #include +#include CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFLocaleIdentifier CF_EXTENSIBLE_STRING_ENUM; +typedef CFStringRef CFLocaleKey CF_STRING_ENUM; + typedef const struct CF_BRIDGED_TYPE(NSLocale) __CFLocale *CFLocaleRef; CF_EXPORT @@ -75,25 +74,25 @@ CFArrayRef CFLocaleCopyPreferredLanguages(void) CF_AVAILABLE(10_5, 2_0); // Returns the array of canonicalized CFString locale IDs that the user prefers. CF_EXPORT -CFStringRef CFLocaleCreateCanonicalLanguageIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier); +CFLocaleIdentifier CFLocaleCreateCanonicalLanguageIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier); // Map an arbitrary language identification string (something close at // least) to a canonical language identifier. CF_EXPORT -CFStringRef CFLocaleCreateCanonicalLocaleIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier); +CFLocaleIdentifier CFLocaleCreateCanonicalLocaleIdentifierFromString(CFAllocatorRef allocator, CFStringRef localeIdentifier); // Map an arbitrary locale identification string (something close at // least) to the canonical identifier. CF_EXPORT -CFStringRef CFLocaleCreateCanonicalLocaleIdentifierFromScriptManagerCodes(CFAllocatorRef allocator, LangCode lcode, RegionCode rcode); +CFLocaleIdentifier CFLocaleCreateCanonicalLocaleIdentifierFromScriptManagerCodes(CFAllocatorRef allocator, LangCode lcode, RegionCode rcode); // Map a Mac OS LangCode and RegionCode to the canonical locale identifier. CF_EXPORT -CFStringRef CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode(CFAllocatorRef allocator, uint32_t lcid) CF_AVAILABLE(10_6, 4_0); +CFLocaleIdentifier CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode(CFAllocatorRef allocator, uint32_t lcid) CF_AVAILABLE(10_6, 4_0); // Map a Windows LCID to the canonical locale identifier. CF_EXPORT -uint32_t CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier(CFStringRef localeIdentifier) CF_AVAILABLE(10_6, 4_0); +uint32_t CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier(CFLocaleIdentifier localeIdentifier) CF_AVAILABLE(10_6, 4_0); // Map a locale identifier to a Windows LCID. typedef CF_ENUM(CFIndex, CFLocaleLanguageDirection) { @@ -111,7 +110,7 @@ CF_EXPORT CFLocaleLanguageDirection CFLocaleGetLanguageLineDirection(CFStringRef isoLangCode) CF_AVAILABLE(10_6, 4_0); CF_EXPORT -CFDictionaryRef CFLocaleCreateComponentsFromLocaleIdentifier(CFAllocatorRef allocator, CFStringRef localeID); +CFDictionaryRef CFLocaleCreateComponentsFromLocaleIdentifier(CFAllocatorRef allocator, CFLocaleIdentifier localeID); // Parses a locale ID consisting of language, script, country, variant, // and keyword/value pairs into a dictionary. The keys are the constant // CFStrings corresponding to the locale ID components, and the values @@ -121,7 +120,7 @@ CFDictionaryRef CFLocaleCreateComponentsFromLocaleIdentifier(CFAllocatorRef allo // kCFLocaleCalendarIdentifier=kCFJapaneseCalendar. CF_EXPORT -CFStringRef CFLocaleCreateLocaleIdentifierFromComponents(CFAllocatorRef allocator, CFDictionaryRef dictionary); +CFLocaleIdentifier CFLocaleCreateLocaleIdentifierFromComponents(CFAllocatorRef allocator, CFDictionaryRef dictionary); // Reverses the actions of CFLocaleCreateDictionaryFromLocaleIdentifier, // creating a single string from the data in the dictionary. The // dictionary {kCFLocaleLanguageCode=en, kCFLocaleCountryCode=US, @@ -129,7 +128,7 @@ CFStringRef CFLocaleCreateLocaleIdentifierFromComponents(CFAllocatorRef allocato // "en_US@calendar=japanese". CF_EXPORT -CFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFStringRef localeIdentifier); +CFLocaleRef CFLocaleCreate(CFAllocatorRef allocator, CFLocaleIdentifier localeIdentifier); // Returns a CFLocaleRef for the locale named by the "arbitrary" locale identifier. CF_EXPORT @@ -139,62 +138,64 @@ CFLocaleRef CFLocaleCreateCopy(CFAllocatorRef allocator, CFLocaleRef locale); // or hold onto it. In the future, there may be mutable locales. CF_EXPORT -CFStringRef CFLocaleGetIdentifier(CFLocaleRef locale); +CFLocaleIdentifier CFLocaleGetIdentifier(CFLocaleRef locale); // Returns the locale's identifier. This may not be the same string // that the locale was created with (CFLocale may canonicalize it). CF_EXPORT -CFTypeRef CFLocaleGetValue(CFLocaleRef locale, CFStringRef key); +CFTypeRef CFLocaleGetValue(CFLocaleRef locale, CFLocaleKey key); // Returns the value for the given key. This is how settings and state // are accessed via a CFLocale. Values might be of any CF type. CF_EXPORT -CFStringRef CFLocaleCopyDisplayNameForPropertyValue(CFLocaleRef displayLocale, CFStringRef key, CFStringRef value); +CFStringRef CFLocaleCopyDisplayNameForPropertyValue(CFLocaleRef displayLocale, CFLocaleKey key, CFStringRef value); // Returns the display name for the given value. The key tells what // the value is, and is one of the usual locale property keys, though // not all locale property keys have values with display name values. -CF_EXPORT const CFStringRef kCFLocaleCurrentLocaleDidChangeNotification CF_AVAILABLE(10_5, 2_0); +CF_EXPORT const CFNotificationName kCFLocaleCurrentLocaleDidChangeNotification CF_AVAILABLE(10_5, 2_0); // Locale Keys -CF_EXPORT const CFStringRef kCFLocaleIdentifier; -CF_EXPORT const CFStringRef kCFLocaleLanguageCode; -CF_EXPORT const CFStringRef kCFLocaleCountryCode; -CF_EXPORT const CFStringRef kCFLocaleScriptCode; -CF_EXPORT const CFStringRef kCFLocaleVariantCode; - -CF_EXPORT const CFStringRef kCFLocaleExemplarCharacterSet; -CF_EXPORT const CFStringRef kCFLocaleCalendarIdentifier; -CF_EXPORT const CFStringRef kCFLocaleCalendar; -CF_EXPORT const CFStringRef kCFLocaleCollationIdentifier; -CF_EXPORT const CFStringRef kCFLocaleUsesMetricSystem; -CF_EXPORT const CFStringRef kCFLocaleMeasurementSystem; // "Metric" or "U.S." -CF_EXPORT const CFStringRef kCFLocaleDecimalSeparator; -CF_EXPORT const CFStringRef kCFLocaleGroupingSeparator; -CF_EXPORT const CFStringRef kCFLocaleCurrencySymbol; -CF_EXPORT const CFStringRef kCFLocaleCurrencyCode; // ISO 3-letter currency code -CF_EXPORT const CFStringRef kCFLocaleCollatorIdentifier CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFLocaleQuotationBeginDelimiterKey CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFLocaleQuotationEndDelimiterKey CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationBeginDelimiterKey CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationEndDelimiterKey CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFLocaleKey kCFLocaleIdentifier; +CF_EXPORT const CFLocaleKey kCFLocaleLanguageCode; +CF_EXPORT const CFLocaleKey kCFLocaleCountryCode; +CF_EXPORT const CFLocaleKey kCFLocaleScriptCode; +CF_EXPORT const CFLocaleKey kCFLocaleVariantCode; + +CF_EXPORT const CFLocaleKey kCFLocaleExemplarCharacterSet; +CF_EXPORT const CFLocaleKey kCFLocaleCalendarIdentifier; +CF_EXPORT const CFLocaleKey kCFLocaleCalendar; +CF_EXPORT const CFLocaleKey kCFLocaleCollationIdentifier; +CF_EXPORT const CFLocaleKey kCFLocaleUsesMetricSystem; +CF_EXPORT const CFLocaleKey kCFLocaleMeasurementSystem; // "Metric" or "U.S." +CF_EXPORT const CFLocaleKey kCFLocaleDecimalSeparator; +CF_EXPORT const CFLocaleKey kCFLocaleGroupingSeparator; +CF_EXPORT const CFLocaleKey kCFLocaleCurrencySymbol; +CF_EXPORT const CFLocaleKey kCFLocaleCurrencyCode; // ISO 3-letter currency code +CF_EXPORT const CFLocaleKey kCFLocaleCollatorIdentifier CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFLocaleKey kCFLocaleQuotationBeginDelimiterKey CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFLocaleKey kCFLocaleQuotationEndDelimiterKey CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFLocaleKey kCFLocaleAlternateQuotationBeginDelimiterKey CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFLocaleKey kCFLocaleAlternateQuotationEndDelimiterKey CF_AVAILABLE(10_6, 4_0); // Values for kCFLocaleCalendarIdentifier -CF_EXPORT const CFStringRef kCFGregorianCalendar; -CF_EXPORT const CFStringRef kCFBuddhistCalendar; -CF_EXPORT const CFStringRef kCFChineseCalendar; -CF_EXPORT const CFStringRef kCFHebrewCalendar; -CF_EXPORT const CFStringRef kCFIslamicCalendar; -CF_EXPORT const CFStringRef kCFIslamicCivilCalendar; -CF_EXPORT const CFStringRef kCFJapaneseCalendar; -CF_EXPORT const CFStringRef kCFRepublicOfChinaCalendar CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFPersianCalendar CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFIndianCalendar CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFISO8601Calendar CF_AVAILABLE(10_6, 4_0); -CF_EXPORT const CFStringRef kCFIslamicTabularCalendar CF_AVAILABLE(10_10, 8_0); -CF_EXPORT const CFStringRef kCFIslamicUmmAlQuraCalendar CF_AVAILABLE(10_10, 8_0); +typedef CFStringRef CFCalendarIdentifier CF_STRING_ENUM; + +CF_EXPORT const CFCalendarIdentifier kCFGregorianCalendar; +CF_EXPORT const CFCalendarIdentifier kCFBuddhistCalendar; +CF_EXPORT const CFCalendarIdentifier kCFChineseCalendar; +CF_EXPORT const CFCalendarIdentifier kCFHebrewCalendar; +CF_EXPORT const CFCalendarIdentifier kCFIslamicCalendar; +CF_EXPORT const CFCalendarIdentifier kCFIslamicCivilCalendar; +CF_EXPORT const CFCalendarIdentifier kCFJapaneseCalendar; +CF_EXPORT const CFCalendarIdentifier kCFRepublicOfChinaCalendar CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFCalendarIdentifier kCFPersianCalendar CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFCalendarIdentifier kCFIndianCalendar CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFCalendarIdentifier kCFISO8601Calendar CF_AVAILABLE(10_6, 4_0); +CF_EXPORT const CFCalendarIdentifier kCFIslamicTabularCalendar CF_AVAILABLE(10_10, 8_0); +CF_EXPORT const CFCalendarIdentifier kCFIslamicUmmAlQuraCalendar CF_AVAILABLE(10_10, 8_0); CF_EXTERN_C_END CF_IMPLICIT_BRIDGING_DISABLED diff --git a/CoreFoundation/Locale.subproj/CFLocaleIdentifier.c b/CoreFoundation/Locale.subproj/CFLocaleIdentifier.c index 36e94de453..582d129fcd 100644 --- a/CoreFoundation/Locale.subproj/CFLocaleIdentifier.c +++ b/CoreFoundation/Locale.subproj/CFLocaleIdentifier.c @@ -1,17 +1,12 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - CFLocaleIdentifier.c - Copyright (c) 2002 - 2015 Apple Inc. and the Swift project authors - Responsibility: David Smith + CFLocaleIdentifier.c + Copyright (c) 2002-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: David Smith CFLocaleIdentifier.c defines - enum value kLocaleIdentifierCStringMax diff --git a/CoreFoundation/Locale.subproj/CFLocaleInternal.h b/CoreFoundation/Locale.subproj/CFLocaleInternal.h index d76871fb87..73d9892a9b 100644 --- a/CoreFoundation/Locale.subproj/CFLocaleInternal.h +++ b/CoreFoundation/Locale.subproj/CFLocaleInternal.h @@ -1,16 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - CFLocaleInternal.h - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + CFLocaleInternal.h + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* @@ -36,6 +31,7 @@ CF_EXPORT CFStringRef const kCFLocaleGroupingSeparatorKey; CF_EXPORT CFStringRef const kCFLocaleIdentifierKey; CF_EXPORT CFStringRef const kCFLocaleLanguageCodeKey; CF_EXPORT CFStringRef const kCFLocaleMeasurementSystemKey; +CF_EXPORT CFStringRef const kCFLocaleTemperatureUnitKey; CF_EXPORT CFStringRef const kCFLocaleScriptCodeKey; CF_EXPORT CFStringRef const kCFLocaleUsesMetricSystemKey; CF_EXPORT CFStringRef const kCFLocaleVariantCodeKey; diff --git a/CoreFoundation/Locale.subproj/CFLocaleKeys.c b/CoreFoundation/Locale.subproj/CFLocaleKeys.c index a515818fb9..180962e853 100644 --- a/CoreFoundation/Locale.subproj/CFLocaleKeys.c +++ b/CoreFoundation/Locale.subproj/CFLocaleKeys.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFLocaleKeys.c - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -33,6 +28,9 @@ CONST_STRING_DECL(kCFLocaleGroupingSeparatorKey, "kCFLocaleGroupingSeparatorKey" CONST_STRING_DECL(kCFLocaleIdentifierKey, "kCFLocaleIdentifierKey"); CONST_STRING_DECL(kCFLocaleLanguageCodeKey, "kCFLocaleLanguageCodeKey"); CONST_STRING_DECL(kCFLocaleMeasurementSystemKey, "kCFLocaleMeasurementSystemKey"); +CONST_STRING_DECL(kCFLocaleTemperatureUnitKey, "kCFLocaleTemperatureUnitKey"); +CONST_STRING_DECL(kCFLocaleTemperatureUnitCelsius, "Celsius"); +CONST_STRING_DECL(kCFLocaleTemperatureUnitFahrenheit, "Fahrenheit"); CONST_STRING_DECL(kCFLocaleScriptCodeKey, "kCFLocaleScriptCodeKey"); CONST_STRING_DECL(kCFLocaleUsesMetricSystemKey, "kCFLocaleUsesMetricSystemKey"); CONST_STRING_DECL(kCFLocaleVariantCodeKey, "kCFLocaleVariantCodeKey"); @@ -162,6 +160,7 @@ CF_EXPORT CFStringRef const kCFLocaleGroupingSeparator __attribute__((alias ("kC CF_EXPORT CFStringRef const kCFLocaleIdentifier __attribute__((alias ("kCFLocaleIdentifierKey"))); CF_EXPORT CFStringRef const kCFLocaleLanguageCode __attribute__((alias ("kCFLocaleLanguageCodeKey"))); CF_EXPORT CFStringRef const kCFLocaleMeasurementSystem __attribute__((alias ("kCFLocaleMeasurementSystemKey"))); +CF_EXPORT CFStringRef const kCFLocaleTemperatureUnit __attribute__((alias ("kCFLocaleTemperatureUnitKey"))); CF_EXPORT CFStringRef const kCFLocaleScriptCode __attribute__((alias ("kCFLocaleScriptCodeKey"))); CF_EXPORT CFStringRef const kCFLocaleUsesMetricSystem __attribute__((alias ("kCFLocaleUsesMetricSystemKey"))); CF_EXPORT CFStringRef const kCFLocaleVariantCode __attribute__((alias ("kCFLocaleVariantCodeKey"))); diff --git a/CoreFoundation/Locale.subproj/CFLocale_Private.h b/CoreFoundation/Locale.subproj/CFLocale_Private.h new file mode 100644 index 0000000000..a46457bed8 --- /dev/null +++ b/CoreFoundation/Locale.subproj/CFLocale_Private.h @@ -0,0 +1,27 @@ +/* CFLocale_Private.h + Copyright (c) 2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + */ + +#if !defined(__COREFOUNDATION_CFLOCALE_PRIVATE__) +#define __COREFOUNDATION_CFLOCALE_PRIVATE__ 1 + +#include + +typedef CF_ENUM(CFIndex, _CFLocaleCalendarDirection) { + _kCFLocaleCalendarDirectionLeftToRight = 0, + _kCFLocaleCalendarDirectionRightToLeft = 1 +} API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + +CF_EXPORT _CFLocaleCalendarDirection _CFLocaleGetCalendarDirection(void) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + +CF_EXPORT const CFLocaleKey kCFLocaleTemperatureUnit API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); +CF_EXPORT const CFStringRef kCFLocaleTemperatureUnitCelsius API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); +CF_EXPORT const CFStringRef kCFLocaleTemperatureUnitFahrenheit API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + + +#endif /* __COREFOUNDATION_CFLOCALE_PRIVATE__ */ diff --git a/CoreFoundation/Locale.subproj/CFNumberFormatter.c b/CoreFoundation/Locale.subproj/CFNumberFormatter.c index 9600ddd1ee..fe7fa10ae8 100644 --- a/CoreFoundation/Locale.subproj/CFNumberFormatter.c +++ b/CoreFoundation/Locale.subproj/CFNumberFormatter.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFNumberFormatter.c - Copyright (c) 2002 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2002-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ @@ -76,7 +71,7 @@ static const CFRuntimeClass __CFNumberFormatterClass = { }; CFTypeID CFNumberFormatterGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFNumberFormatterTypeID = _CFRuntimeRegisterClass(&__CFNumberFormatterClass); }); return __kCFNumberFormatterTypeID; } @@ -119,7 +114,7 @@ CFNumberFormatterRef CFNumberFormatterCreate(CFAllocatorRef allocator, CFLocaleR case kCFNumberFormatterCurrencyAccountingStyle: ustyle = UNUM_CURRENCY_ACCOUNTING; break; #endif default: - CFAssert(0, __kCFLogAssertion, "%s(): unknown style %d", __PRETTY_FUNCTION__, style); + CFAssert2(0, __kCFLogAssertion, "%s(): unknown style %ld", __PRETTY_FUNCTION__, style); ustyle = UNUM_DECIMAL; memory->_style = kCFNumberFormatterDecimalStyle; break; @@ -136,7 +131,7 @@ CFNumberFormatterRef CFNumberFormatterCreate(CFAllocatorRef allocator, CFLocaleR } UErrorCode status = U_ZERO_ERROR; memory->_nf = __cficu_unum_open((UNumberFormatStyle)ustyle, NULL, 0, cstr, NULL, &status); - CFAssert(memory->_nf, __kCFLogAssertion, "%s(): error (%d) creating number formatter", __PRETTY_FUNCTION__, status); + CFAssert2(memory->_nf, __kCFLogAssertion, "%s(): error (%d) creating number formatter", __PRETTY_FUNCTION__, status); if (NULL == memory->_nf) { CFRelease(memory); return NULL; @@ -401,7 +396,7 @@ void CFNumberFormatterSetFormat(CFNumberFormatterRef formatter, CFStringRef form if (kCFNumberFormatterDurationStyle == formatter->_style) return; if (kCFNumberFormatterCurrencyPluralStyle == formatter->_style) return; CFIndex cnt = CFStringGetLength(formatString); - CFAssert(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); + CFAssert1(cnt <= 1024, __kCFLogAssertion, "%s(): format string too long", __PRETTY_FUNCTION__); if ((!formatter->_format || !CFEqual(formatter->_format, formatString)) && cnt <= 1024) { UErrorCode status = __CFNumberFormatterApplyPattern(formatter, formatString); if (U_SUCCESS(status)) { @@ -505,7 +500,7 @@ CFStringRef CFNumberFormatterCreateStringWithValue(CFAllocatorRef allocator, CFN } else if (numberType == kCFNumberSInt8Type || numberType == kCFNumberCharType) { FORMAT_INT(int8_t, _CFBigNumInitWithInt8) } else { - CFAssert(0, __kCFLogAssertion, "%s(): unknown CFNumberType (%d)", __PRETTY_FUNCTION__, numberType); + CFAssert2(0, __kCFLogAssertion, "%s(): unknown CFNumberType (%ld)", __PRETTY_FUNCTION__, numberType); return NULL; } CFStringRef string = NULL; @@ -983,7 +978,7 @@ void CFNumberFormatterSetProperty(CFNumberFormatterRef formatter, CFStringRef ke __CFGenericValidateType(value, CFBooleanGetTypeID()); formatter->_usesCharacterDirection = value == kCFBooleanTrue; } else { - CFAssert(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); + CFAssert3(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); } if (_CFExecutableLinkedOnOrAfter(CFSystemVersionSnowLeopard)) { // do a dummy call to CFNumberFormatterGetFormat() after changing an attribute because @@ -1211,7 +1206,7 @@ CFTypeRef CFNumberFormatterCopyProperty(CFNumberFormatterRef formatter, CFString return CFNumberCreate(CFGetAllocator(formatter), kCFNumberSInt32Type, &n); } } else { - CFAssert(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); + CFAssert3(0, __kCFLogAssertion, "%s(): unknown key %p (%@)", __PRETTY_FUNCTION__, key, key); } return NULL; } @@ -1220,7 +1215,7 @@ CFTypeRef CFNumberFormatterCopyProperty(CFNumberFormatterRef formatter, CFString Boolean CFNumberFormatterGetDecimalInfoForCurrencyCode(CFStringRef currencyCode, int32_t *defaultFractionDigits, double *roundingIncrement) { UChar ubuffer[4]; __CFGenericValidateType(currencyCode, CFStringGetTypeID()); - CFAssert(3 == CFStringGetLength(currencyCode), __kCFLogAssertion, "%s(): currencyCode is not 3 characters", __PRETTY_FUNCTION__); + CFAssert1(3 == CFStringGetLength(currencyCode), __kCFLogAssertion, "%s(): currencyCode is not 3 characters", __PRETTY_FUNCTION__); CFStringGetCharacters(currencyCode, CFRangeMake(0, 3), (UniChar *)ubuffer); ubuffer[3] = 0; UErrorCode icuStatus = U_ZERO_ERROR; diff --git a/CoreFoundation/Locale.subproj/CFNumberFormatter.h b/CoreFoundation/Locale.subproj/CFNumberFormatter.h index ca081983b4..a69e9eb74e 100644 --- a/CoreFoundation/Locale.subproj/CFNumberFormatter.h +++ b/CoreFoundation/Locale.subproj/CFNumberFormatter.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFNumberFormatter.h - Copyright (c) 2003 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2003-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFNUMBERFORMATTER__) @@ -22,6 +17,8 @@ CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFNumberFormatterKey CF_STRING_ENUM; + typedef struct CF_BRIDGED_MUTABLE_TYPE(id) __CFNumberFormatter *CFNumberFormatterRef; // CFNumberFormatters are not thread-safe. Do not use one from multiple threads! @@ -98,51 +95,51 @@ Boolean CFNumberFormatterGetValueFromString(CFNumberFormatterRef formatter, CFSt CF_EXPORT -void CFNumberFormatterSetProperty(CFNumberFormatterRef formatter, CFStringRef key, CFTypeRef value); +void CFNumberFormatterSetProperty(CFNumberFormatterRef formatter, CFNumberFormatterKey key, CFTypeRef value); CF_EXPORT -CFTypeRef CFNumberFormatterCopyProperty(CFNumberFormatterRef formatter, CFStringRef key); +CFTypeRef CFNumberFormatterCopyProperty(CFNumberFormatterRef formatter, CFNumberFormatterKey key); // Set and get various properties of the number formatter, the set of // which may be expanded in the future. -CF_EXPORT const CFStringRef kCFNumberFormatterCurrencyCode; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterDecimalSeparator; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterCurrencyDecimalSeparator; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterAlwaysShowDecimalSeparator; // CFBoolean -CF_EXPORT const CFStringRef kCFNumberFormatterGroupingSeparator; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterUseGroupingSeparator; // CFBoolean -CF_EXPORT const CFStringRef kCFNumberFormatterPercentSymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterZeroSymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterNaNSymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterInfinitySymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterMinusSign; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterPlusSign; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterCurrencySymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterExponentSymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterMinIntegerDigits; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterMaxIntegerDigits; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterMinFractionDigits; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterMaxFractionDigits; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterGroupingSize; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterSecondaryGroupingSize; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterRoundingMode; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterRoundingIncrement; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterFormatWidth; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterPaddingPosition; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterPaddingCharacter; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterDefaultFormat; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterMultiplier; // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterPositivePrefix; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterPositiveSuffix; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterNegativePrefix; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterNegativeSuffix; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterPerMillSymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterInternationalCurrencySymbol; // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterCurrencyGroupingSeparator CF_AVAILABLE(10_5, 2_0); // CFString -CF_EXPORT const CFStringRef kCFNumberFormatterIsLenient CF_AVAILABLE(10_5, 2_0); // CFBoolean -CF_EXPORT const CFStringRef kCFNumberFormatterUseSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFBoolean -CF_EXPORT const CFStringRef kCFNumberFormatterMinSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFNumber -CF_EXPORT const CFStringRef kCFNumberFormatterMaxSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterCurrencyCode; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterDecimalSeparator; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterCurrencyDecimalSeparator; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterAlwaysShowDecimalSeparator; // CFBoolean +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterGroupingSeparator; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterUseGroupingSeparator; // CFBoolean +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPercentSymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterZeroSymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterNaNSymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterInfinitySymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMinusSign; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPlusSign; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterCurrencySymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterExponentSymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMinIntegerDigits; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMaxIntegerDigits; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMinFractionDigits; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMaxFractionDigits; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterGroupingSize; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterSecondaryGroupingSize; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterRoundingMode; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterRoundingIncrement; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterFormatWidth; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPaddingPosition; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPaddingCharacter; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterDefaultFormat; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMultiplier; // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPositivePrefix; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPositiveSuffix; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterNegativePrefix; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterNegativeSuffix; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterPerMillSymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterInternationalCurrencySymbol; // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterCurrencyGroupingSeparator CF_AVAILABLE(10_5, 2_0); // CFString +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterIsLenient CF_AVAILABLE(10_5, 2_0); // CFBoolean +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterUseSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFBoolean +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMinSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFNumber +CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMaxSignificantDigits CF_AVAILABLE(10_5, 2_0); // CFNumber typedef CF_ENUM(CFIndex, CFNumberFormatterRoundingMode) { kCFNumberFormatterRoundCeiling = 0, diff --git a/CoreFoundation/NumberDate.subproj/CFBigNumber.c b/CoreFoundation/NumberDate.subproj/CFBigNumber.c index 7b54e63805..622a4aba4c 100644 --- a/CoreFoundation/NumberDate.subproj/CFBigNumber.c +++ b/CoreFoundation/NumberDate.subproj/CFBigNumber.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBigNumber.c - Copyright (c) 2012 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2012-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane Original author: Zhi Feng Huang */ diff --git a/CoreFoundation/NumberDate.subproj/CFBigNumber.h b/CoreFoundation/NumberDate.subproj/CFBigNumber.h index 0fe2681402..9b8e4c612f 100644 --- a/CoreFoundation/NumberDate.subproj/CFBigNumber.h +++ b/CoreFoundation/NumberDate.subproj/CFBigNumber.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBigNumber.h - Copyright (c) 2012 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2012-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBIGNUMBER__) diff --git a/CoreFoundation/NumberDate.subproj/CFDate.c b/CoreFoundation/NumberDate.subproj/CFDate.c index 695d8e8f97..77626bcc4d 100644 --- a/CoreFoundation/NumberDate.subproj/CFDate.c +++ b/CoreFoundation/NumberDate.subproj/CFDate.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFDate.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -24,6 +19,10 @@ #if __HAS_DISPATCH__ #include +#else +#ifndef NSEC_PER_SEC +#define NSEC_PER_SEC 1000000000UL +#endif #endif #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD @@ -32,6 +31,7 @@ #define DEFINE_CFDATE_FUNCTIONS 1 + /* cjk: The Julian Date for the reference date is 2451910.5, I think, in case that's ever useful. */ @@ -43,8 +43,6 @@ const CFTimeInterval kCFAbsoluteTimeIntervalSince1904 = 3061152000.0L; CF_PRIVATE double __CFTSRRate = 0.0; static double __CF1_TSRRate = 0.0; -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX - CF_PRIVATE uint64_t __CFTimeIntervalToTSR(CFTimeInterval ti) { if ((ti * __CFTSRRate) > INT64_MAX / 2) return (INT64_MAX / 2); return (uint64_t)(ti * __CFTSRRate); @@ -66,11 +64,10 @@ CF_PRIVATE CFTimeInterval __CFTimeIntervalUntilTSR(uint64_t tsr) { // Technically this is 'TSR units' not a strict 'TSR' absolute time CF_PRIVATE uint64_t __CFTSRToNanoseconds(uint64_t tsr) { - double tsrInNanoseconds = floor(tsr * __CF1_TSRRate * 1000000000UL); + double tsrInNanoseconds = floor(tsr * __CF1_TSRRate * NSEC_PER_SEC); uint64_t ns = (uint64_t)tsrInNanoseconds; return ns; } -#endif #if __HAS_DISPATCH__ CF_PRIVATE dispatch_time_t __CFTSRToDispatchTime(uint64_t tsr) { @@ -93,7 +90,6 @@ CFAbsoluteTime CFAbsoluteTimeGetCurrent(void) { return ret; } - #if DEPLOYMENT_RUNTIME_SWIFT CF_EXPORT CFTimeInterval CFGetSystemUptime(void) { CFDateGetTypeID(); @@ -149,7 +145,7 @@ static const CFRuntimeClass __CFDateClass = { }; CFTypeID CFDateGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFDateTypeID = _CFRuntimeRegisterClass(&__CFDateClass); diff --git a/CoreFoundation/NumberDate.subproj/CFDate.h b/CoreFoundation/NumberDate.subproj/CFDate.h index 337e2cd1fe..3ab34baa38 100644 --- a/CoreFoundation/NumberDate.subproj/CFDate.h +++ b/CoreFoundation/NumberDate.subproj/CFDate.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFDate.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFDATE__) diff --git a/CoreFoundation/NumberDate.subproj/CFNumber.c b/CoreFoundation/NumberDate.subproj/CFNumber.c index d90d974473..d1d4c453a7 100644 --- a/CoreFoundation/NumberDate.subproj/CFNumber.c +++ b/CoreFoundation/NumberDate.subproj/CFNumber.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFNumber.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Ali Ozer */ @@ -76,7 +71,7 @@ static const CFRuntimeClass __CFBooleanClass = { }; CFTypeID CFBooleanGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBooleanTypeID = _CFRuntimeRegisterClass(&__CFBooleanClass); // initOnce covered _CFRuntimeSetInstanceTypeIDAndIsa(&__kCFBooleanTrue, __kCFBooleanTypeID); @@ -127,7 +122,7 @@ static CFComparisonResult CFNumberCompare_old(struct __CFNumber_old * number1, s #define __CFAssertIsNumber(cf) __CFGenericValidateType(cf, CFNumberGetTypeID()) -#define __CFAssertIsValidNumberType(type) CFAssert((0 < type && type <= kCFNumberMaxType) || (type == kCFNumberSInt128Type), __kCFLogAssertion, "%s(): bad CFNumber type %d", __PRETTY_FUNCTION__, type); +#define __CFAssertIsValidNumberType(type) CFAssert2((0 < type && type <= kCFNumberMaxType) || (type == kCFNumberSInt128Type), __kCFLogAssertion, "%s(): bad CFNumber type %ld", __PRETTY_FUNCTION__, type); /* The IEEE bit patterns... Also have: 0x7f800000 float +Inf @@ -1040,47 +1035,51 @@ static const CFRuntimeClass __CFNumberClass = { }; -CFTypeID CFNumberGetTypeID(void) { - static dispatch_once_t initOnce = 0; - dispatch_once(&initOnce, ^{ - __kCFNumberTypeID = _CFRuntimeRegisterClass(&__CFNumberClass); // initOnce covered - - const char *caching = __CFgetenv("CFNumberDisableCache"); // "all" to disable caching and tagging; anything else to disable caching; nothing to leave both enabled - if (caching) __CFNumberCaching = (!strcmp(caching, "all")) ? kCFNumberCachingFullyDisabled : kCFNumberCachingDisabled; // initial state above is kCFNumberCachingEnabled - }); - return __kCFNumberTypeID; -} - CF_PRIVATE void __CFNumberInitialize(void) { _CFRuntimeSetInstanceTypeIDAndIsa(&__kCFNumberNaN, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberNaN._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat64Type); __kCFNumberNaN._pad = BITSFORDOUBLENAN; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberNegativeInfinity, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberNegativeInfinity._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat64Type); __kCFNumberNegativeInfinity._pad = BITSFORDOUBLENEGINF; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberPositiveInfinity, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberPositiveInfinity._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat64Type); __kCFNumberPositiveInfinity._pad = BITSFORDOUBLEPOSINF; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberFloat32Zero, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberFloat32Zero._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat32Type); __kCFNumberFloat32Zero._pad = BITSFORFLOATZERO; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberFloat32One, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberFloat32One._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat32Type); __kCFNumberFloat32One._pad = BITSFORFLOATONE; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberFloat64Zero, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberFloat64Zero._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat64Type); __kCFNumberFloat64Zero._pad = BITSFORDOUBLEZERO; - + _CFRuntimeSetInstanceTypeIDAndIsa(& __kCFNumberFloat64One, __kCFNumberTypeID); __CFBitfieldSetValue(__kCFNumberFloat64One._base._cfinfo[CF_INFO_BITS], 4, 0, kCFNumberFloat64Type); __kCFNumberFloat64One._pad = BITSFORDOUBLEONE; } +CFTypeID CFNumberGetTypeID(void) { + static dispatch_once_t initOnce; + dispatch_once(&initOnce, ^{ + __kCFNumberTypeID = _CFRuntimeRegisterClass(&__CFNumberClass); // initOnce covered +#if !DEPLOYMENT_RUNTIME_SWIFT + __CFNumberInitialize(); +#endif + + + const char *caching = __CFgetenv("CFNumberDisableCache"); // "all" to disable caching and tagging; anything else to disable caching; nothing to leave both enabled + if (caching) __CFNumberCaching = (!strcmp(caching, "all")) ? kCFNumberCachingFullyDisabled : kCFNumberCachingDisabled; // initial state above is kCFNumberCachingEnabled + }); + return __kCFNumberTypeID; +} + #define MinCachedInt (-1) #define MaxCachedInt (12) #define NotToBeCached (MinCachedInt - 1) @@ -1103,59 +1102,58 @@ static inline void _CFNumberInit(CFNumberRef result, CFNumberType type, const vo __CFBitfieldSetValue(((struct __CFNumber *)result)->_base._cfinfo[CF_INFO_BITS], 4, 0, (uint8_t)__CFNumberTypeTable[type].canonicalType); } -CF_EXPORT void _CFNumberInitBool(CFNumberRef result, Boolean value) { +void _CFNumberInitBool(CFNumberRef result, Boolean value) { _CFNumberInit(result, kCFNumberCharType, &value); } -CF_EXPORT void _CFNumberInitInt8(CFNumberRef result, int8_t value) { - _CFNumberInit(result, kCFNumberCharType, &value); +void _CFNumberInitInt8(CFNumberRef result, int8_t value) { + _CFNumberInit(result, kCFNumberCharType, &value); } -CF_EXPORT void _CFNumberInitUInt8(CFNumberRef result, uint8_t value) { +void _CFNumberInitUInt8(CFNumberRef result, uint8_t value) { _CFNumberInit(result, kCFNumberCharType, &value); } -CF_EXPORT void _CFNumberInitInt16(CFNumberRef result, int16_t value) { +void _CFNumberInitInt16(CFNumberRef result, int16_t value) { _CFNumberInit(result, kCFNumberShortType, &value); } -CF_EXPORT void _CFNumberInitUInt16(CFNumberRef result, uint16_t value) { +void _CFNumberInitUInt16(CFNumberRef result, uint16_t value) { _CFNumberInit(result, kCFNumberShortType, &value); } -CF_EXPORT void _CFNumberInitInt32(CFNumberRef result, int32_t value) { +void _CFNumberInitInt32(CFNumberRef result, int32_t value) { _CFNumberInit(result, kCFNumberIntType, &value); } -CF_EXPORT void _CFNumberInitUInt32(CFNumberRef result, uint32_t value) { +void _CFNumberInitUInt32(CFNumberRef result, uint32_t value) { _CFNumberInit(result, kCFNumberIntType, &value); } -CF_EXPORT void _CFNumberInitInt(CFNumberRef result, long value) { +void _CFNumberInitInt(CFNumberRef result, long value) { _CFNumberInit(result, kCFNumberLongType, &value); } -CF_EXPORT void _CFNumberInitUInt(CFNumberRef result, unsigned long value) { +void _CFNumberInitUInt(CFNumberRef result, unsigned long value) { _CFNumberInit(result, kCFNumberLongType, &value); } -CF_EXPORT void _CFNumberInitInt64(CFNumberRef result, int64_t value) { +void _CFNumberInitInt64(CFNumberRef result, int64_t value) { _CFNumberInit(result, kCFNumberLongLongType, &value); } -CF_EXPORT void _CFNumberInitUInt64(CFNumberRef result, uint64_t value) { +void _CFNumberInitUInt64(CFNumberRef result, uint64_t value) { _CFNumberInit(result, kCFNumberLongLongType, &value); } -CF_EXPORT void _CFNumberInitFloat(CFNumberRef result, float value) { +void _CFNumberInitFloat(CFNumberRef result, float value) { _CFNumberInit(result, kCFNumberFloatType, &value); } -CF_EXPORT void _CFNumberInitDouble(CFNumberRef result, double value) { +void _CFNumberInitDouble(CFNumberRef result, double value) { _CFNumberInit(result, kCFNumberDoubleType, &value); } - CFNumberRef CFNumberCreate(CFAllocatorRef allocator, CFNumberType type, const void *valuePtr) { __CFAssertIsValidNumberType(type); //printf("+ [%p] CFNumberCreate(%p, %d, %p)\n", pthread_self(), allocator, type, valuePtr); @@ -1202,7 +1200,7 @@ CFNumberRef CFNumberCreate(CFAllocatorRef allocator, CFNumberType type, const vo } } - CFIndex size = (sizeof(struct __CFNumber) - sizeof(CFRuntimeBase)) + ((!__CFNumberTypeTable[type].floatBit && __CFNumberTypeTable[type].storageBit) ? 8 : 0); + CFIndex size = 8 + ((!__CFNumberTypeTable[type].floatBit && __CFNumberTypeTable[type].storageBit) ? 8 : 0); #if OLD_CRAP_TOO size += 2 * sizeof(void *); #endif @@ -1239,6 +1237,17 @@ CFLog(kCFLogLevelWarning, CFSTR("+++ Create old number '%@'"), __CFNumberCopyDes return result; } + uint64_t value; + switch (__CFNumberTypeTable[type].canonicalType) { + case kCFNumberSInt8Type: value = (uint64_t)(int64_t)*(int8_t *)valuePtr; goto smallVal; + case kCFNumberSInt16Type: value = (uint64_t)(int64_t)*(int16_t *)valuePtr; goto smallVal; + case kCFNumberSInt32Type: value = (uint64_t)(int64_t)*(int32_t *)valuePtr; goto smallVal; + smallVal: memmove((void *)&result->_pad, &value, 8); break; + case kCFNumberSInt64Type: memmove((void *)&result->_pad, valuePtr, 8); break; + case kCFNumberSInt128Type: memmove((void *)&result->_pad, valuePtr, 16); break; + case kCFNumberFloat32Type: memmove((void *)&result->_pad, valuePtr, 4); break; + case kCFNumberFloat64Type: memmove((void *)&result->_pad, valuePtr, 8); break; + } _CFNumberInit(result, type, valuePtr); //printf(" => %p\n", result); return result; diff --git a/CoreFoundation/NumberDate.subproj/CFNumber.h b/CoreFoundation/NumberDate.subproj/CFNumber.h index 9ffb6f7294..d5e1012c13 100644 --- a/CoreFoundation/NumberDate.subproj/CFNumber.h +++ b/CoreFoundation/NumberDate.subproj/CFNumber.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFNumber.h - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFNUMBER__) diff --git a/CoreFoundation/NumberDate.subproj/CFTimeZone.c b/CoreFoundation/NumberDate.subproj/CFTimeZone.c index 63b5ea80b3..dd3701de27 100644 --- a/CoreFoundation/NumberDate.subproj/CFTimeZone.c +++ b/CoreFoundation/NumberDate.subproj/CFTimeZone.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFTimeZone.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -32,11 +27,7 @@ #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD #include #include -#if __has_include() #include -#else -#include -#endif #endif #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED #include @@ -470,7 +461,7 @@ static const CFRuntimeClass __CFTimeZoneClass = { }; CFTypeID CFTimeZoneGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFTimeZoneTypeID = _CFRuntimeRegisterClass(&__CFTimeZoneClass); }); return __kCFTimeZoneTypeID; } @@ -970,7 +961,7 @@ void CFTimeZoneSetAbbreviationDictionary(CFDictionaryRef dict) { } #if DEPLOYMENT_RUNTIME_SWIFT - + CF_INLINE const UChar *STRING_to_UTF16(CFStringRef S) { // UTF16String CFIndex length = CFStringGetLength((CFStringRef)S); UChar *buffer = (UChar *)malloc((length + 1) * sizeof(UChar)); @@ -1023,7 +1014,7 @@ static int32_t __tryParseGMTName(CFStringRef name) { return (('-' == ustr[3]) ? -1 : 1) * (hours * 3600 + minutes * 60); } - + static Boolean __nameStringOK(CFStringRef name) { int32_t offset = __tryParseGMTName(name); if (-1 != offset) return true; @@ -1042,7 +1033,7 @@ static Boolean __nameStringOK(CFStringRef name) { } return true; } - + static CFTimeZoneRef __CFTimeZoneInitFixed(CFTimeZoneRef result, int32_t seconds, CFStringRef name, int isDST) { CFDataRef data; int32_t nameLen = CFStringGetLength(name); @@ -1067,9 +1058,9 @@ static CFTimeZoneRef __CFTimeZoneInitFixed(CFTimeZoneRef result, int32_t seconds CFRelease(data); return result; } - -Boolean _CFTimeZoneInitWithTimeIntervalFromGMT(CFTimeZoneRef result, CFTimeInterval ti) { +Boolean _CFTimeZoneInitWithTimeIntervalFromGMT(CFTimeZoneRef result, CFTimeInterval ti) { + CFStringRef name; int32_t seconds, minute, hour; if (ti < -18.0 * 3600 || 18.0 * 3600 < ti) return false; @@ -1087,7 +1078,7 @@ Boolean _CFTimeZoneInitWithTimeIntervalFromGMT(CFTimeZoneRef result, CFTimeInter CFRelease(name); return true; } - + Boolean _CFTimeZoneInit(CFTimeZoneRef timeZone, CFStringRef name, CFDataRef data) { if (name && __nameStringOK(name)) { if (data) { @@ -1207,7 +1198,7 @@ Boolean _CFTimeZoneInit(CFTimeZoneRef timeZone, CFStringRef name, CFDataRef data return false; } #endif - + CFTimeZoneRef CFTimeZoneCreate(CFAllocatorRef allocator, CFStringRef name, CFDataRef data) { // assert: (NULL != name && NULL != data); CFTimeZoneRef memory; @@ -1221,21 +1212,21 @@ CFTimeZoneRef CFTimeZoneCreate(CFAllocatorRef allocator, CFStringRef name, CFDat __CFGenericValidateType(data, CFDataGetTypeID()); __CFTimeZoneLockGlobal(); if (NULL != __CFTimeZoneCache && CFDictionaryGetValueIfPresent(__CFTimeZoneCache, name, (const void **)&memory)) { - __CFTimeZoneUnlockGlobal(); - return (CFTimeZoneRef)CFRetain(memory); + __CFTimeZoneUnlockGlobal(); + return (CFTimeZoneRef)CFRetain(memory); } if (!__CFParseTimeZoneData(allocator, data, &tzp, &cnt)) { - __CFTimeZoneUnlockGlobal(); - return NULL; + __CFTimeZoneUnlockGlobal(); + return NULL; } size = sizeof(struct __CFTimeZone) - sizeof(CFRuntimeBase); memory = (CFTimeZoneRef)_CFRuntimeCreateInstance(allocator, CFTimeZoneGetTypeID(), size, NULL); if (NULL == memory) { - __CFTimeZoneUnlockGlobal(); - for (idx = 0; idx < cnt; idx++) { - if (NULL != tzp[idx].abbrev) CFRelease(tzp[idx].abbrev); - } - if (NULL != tzp) CFAllocatorDeallocate(allocator, tzp); + __CFTimeZoneUnlockGlobal(); + for (idx = 0; idx < cnt; idx++) { + if (NULL != tzp[idx].abbrev) CFRelease(tzp[idx].abbrev); + } + if (NULL != tzp) CFAllocatorDeallocate(allocator, tzp); return NULL; } ((struct __CFTimeZone *)memory)->_name = (CFStringRef)CFStringCreateCopy(allocator, name); @@ -1243,7 +1234,7 @@ CFTimeZoneRef CFTimeZoneCreate(CFAllocatorRef allocator, CFStringRef name, CFDat ((struct __CFTimeZone *)memory)->_periods = tzp; ((struct __CFTimeZone *)memory)->_periodCnt = cnt; if (NULL == __CFTimeZoneCache) { - __CFTimeZoneCache = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + __CFTimeZoneCache = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } CFDictionaryAddValue(__CFTimeZoneCache, ((struct __CFTimeZone *)memory)->_name, memory); __CFTimeZoneUnlockGlobal(); diff --git a/CoreFoundation/NumberDate.subproj/CFTimeZone.h b/CoreFoundation/NumberDate.subproj/CFTimeZone.h index 6bd3ae2eb6..2548eeeba8 100644 --- a/CoreFoundation/NumberDate.subproj/CFTimeZone.h +++ b/CoreFoundation/NumberDate.subproj/CFTimeZone.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFTimeZone.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFTIMEZONE__) @@ -21,6 +16,8 @@ #include #include #include +#include +#include CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN @@ -92,7 +89,7 @@ CF_EXPORT CFStringRef CFTimeZoneCopyLocalizedName(CFTimeZoneRef tz, CFTimeZoneNameStyle style, CFLocaleRef locale) CF_AVAILABLE(10_5, 2_0); CF_EXPORT -const CFStringRef kCFTimeZoneSystemTimeZoneDidChangeNotification CF_AVAILABLE(10_5, 2_0); +const CFNotificationName kCFTimeZoneSystemTimeZoneDidChangeNotification CF_AVAILABLE(10_5, 2_0); CF_EXTERN_C_END CF_IMPLICIT_BRIDGING_DISABLED diff --git a/CoreFoundation/Parsing.subproj/CFBinaryPList.c b/CoreFoundation/Parsing.subproj/CFBinaryPList.c index 57dd76d55f..a7b7f7141c 100644 --- a/CoreFoundation/Parsing.subproj/CFBinaryPList.c +++ b/CoreFoundation/Parsing.subproj/CFBinaryPList.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBinaryPList.c - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -26,13 +21,12 @@ #include #include #include +#include "CFBasicHash.h" #include #include #include #include "CFInternal.h" -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX #include -#endif typedef struct { int64_t high; @@ -117,7 +111,7 @@ static const CFRuntimeClass __CFKeyedArchiverUIDClass = { }; CFTypeID _CFKeyedArchiverUIDGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFKeyedArchiverUIDTypeID = _CFRuntimeRegisterClass(&__CFKeyedArchiverUIDClass); }); return __kCFKeyedArchiverUIDTypeID; } @@ -125,6 +119,9 @@ CFTypeID _CFKeyedArchiverUIDGetTypeID(void) { CFKeyedArchiverUIDRef _CFKeyedArchiverUIDCreate(CFAllocatorRef allocator, uint32_t value) { CFKeyedArchiverUIDRef uid; uid = (CFKeyedArchiverUIDRef)_CFRuntimeCreateInstance(allocator, _CFKeyedArchiverUIDGetTypeID(), sizeof(struct __CFKeyedArchiverUID) - sizeof(CFRuntimeBase), NULL); + if (NULL == uid) { + return NULL; + } ((struct __CFKeyedArchiverUID *)uid)->_value = value; return uid; } @@ -166,7 +163,6 @@ static void writeBytes(__CFBinaryPlistWriteBuffer *buf, const UInt8 *bytes, CFIn if (buf->stream && !dryRun) CFDataAppendBytes((CFMutableDataRef)buf->stream, bytes, length); buf->written += length; } else { -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX while (0 < length) { CFIndex ret = (buf->stream && !dryRun) ? CFWriteStreamWrite((CFWriteStreamRef)buf->stream, bytes, length) : length; if (ret == 0) { @@ -182,9 +178,6 @@ static void writeBytes(__CFBinaryPlistWriteBuffer *buf, const UInt8 *bytes, CFIn length -= ret; bytes += ret; } -#else - CFAssert(false, __kCFLogAssertion, "Streams are not supported on this platform"); -#endif } } @@ -272,42 +265,21 @@ static CFTypeID booltype = -1, nulltype = -1, dicttype = -1, arraytype = -1; static CFTypeID uuidtype = -1, urltype = -1, osettype = -1, settype = -1; static void initStatics() { - if ((CFTypeID)-1 == stringtype) { + static dispatch_once_t once; + dispatch_once(&once, ^{ stringtype = CFStringGetTypeID(); - } - if ((CFTypeID)-1 == datatype) { datatype = CFDataGetTypeID(); - } - if ((CFTypeID)-1 == numbertype) { numbertype = CFNumberGetTypeID(); - } - if ((CFTypeID)-1 == booltype) { booltype = CFBooleanGetTypeID(); - } - if ((CFTypeID)-1 == datetype) { datetype = CFDateGetTypeID(); - } - if ((CFTypeID)-1 == dicttype) { dicttype = CFDictionaryGetTypeID(); - } - if ((CFTypeID)-1 == arraytype) { arraytype = CFArrayGetTypeID(); - } - if ((CFTypeID)-1 == settype) { settype = CFSetGetTypeID(); - } - if ((CFTypeID)-1 == nulltype) { nulltype = CFNullGetTypeID(); - } - if ((CFTypeID)-1 == uuidtype) { uuidtype = CFUUIDGetTypeID(); - } - if ((CFTypeID)-1 == urltype) { urltype = CFURLGetTypeID(); - } - if ((CFTypeID)-1 == osettype) { osettype = -1; - } + }); } static void _appendInt(__CFBinaryPlistWriteBuffer *buf, uint64_t bigint, Boolean dryRun) { @@ -470,7 +442,7 @@ static Boolean _appendObject(__CFBinaryPlistWriteBuffer *buf, CFTypeRef obj, CFD _appendInt(buf, (uint64_t)count, dryRun); } CFPropertyListRef *list, buffer[512]; - list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * count * sizeof(CFTypeRef), __kCFAllocatorGCScannedMemory); + list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * count * sizeof(CFTypeRef), 0); CFDictionaryGetKeysAndValues((CFDictionaryRef)obj, list, list + count); for (idx2 = 0; idx2 < 2 * count; idx2++) { CFPropertyListRef value = list[idx2]; @@ -497,7 +469,7 @@ static Boolean _appendObject(__CFBinaryPlistWriteBuffer *buf, CFTypeRef obj, CFD if (15 <= count) { _appendInt(buf, (uint64_t)count, dryRun); } - list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, count * sizeof(CFTypeRef), __kCFAllocatorGCScannedMemory); + list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, count * sizeof(CFTypeRef), 0); CFArrayGetValues((CFArrayRef)obj, CFRangeMake(0, count), list); for (idx2 = 0; idx2 < count; idx2++) { CFPropertyListRef value = list[idx2]; @@ -550,7 +522,7 @@ static void _flattenPlist(CFPropertyListRef plist, CFMutableArrayRef objlist, CF if (dicttype == type) { CFIndex count = CFDictionaryGetCount((CFDictionaryRef)plist); STACK_BUFFER_DECL(CFPropertyListRef, buffer, count <= 128 ? count * 2 : 1); - CFPropertyListRef *list = (count <= 128) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * count * sizeof(CFTypeRef), __kCFAllocatorGCScannedMemory); + CFPropertyListRef *list = (count <= 128) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, 2 * count * sizeof(CFTypeRef), 0); CFDictionaryGetKeysAndValues((CFDictionaryRef)plist, list, list + count); for (CFIndex idx = 0; idx < 2 * count; idx++) { _flattenPlist(list[idx], objlist, objtable, uniquingset); @@ -559,7 +531,7 @@ static void _flattenPlist(CFPropertyListRef plist, CFMutableArrayRef objlist, CF } else if (arraytype == type) { CFIndex count = CFArrayGetCount((CFArrayRef)plist); STACK_BUFFER_DECL(CFPropertyListRef, buffer, count <= 256 ? count : 1); - CFPropertyListRef *list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, count * sizeof(CFTypeRef), __kCFAllocatorGCScannedMemory); + CFPropertyListRef *list = (count <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, count * sizeof(CFTypeRef), 0); CFArrayGetValues((CFArrayRef)plist, CFRangeMake(0, count), list); for (CFIndex idx = 0; idx < count; idx++) { _flattenPlist(list[idx], objlist, objtable, uniquingset); @@ -605,8 +577,12 @@ CF_PRIVATE CFIndex __CFBinaryPlistWriteOrPresize(CFPropertyListRef plist, CFType initStatics(); - const CFDictionaryKeyCallBacks dictKeyCallbacks = {0, __CFTypeCollectionRetain, __CFTypeCollectionRelease, 0, 0, 0}; - objtable = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, &dictKeyCallbacks, NULL); + /* + This is exactly the same as a CFDictionary with NULL callbacks, except that it has the "aggressive growth" flag set, since we're not keeping it around. Radar 21883482 + */ + CFBasicHashCallbacks callbacks = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + objtable = (CFMutableDictionaryRef)CFBasicHashCreate(kCFAllocatorSystemDefault, kCFBasicHashHasKeys | kCFBasicHashLinearHashing | kCFBasicHashAggressiveGrowth, &callbacks); + _CFRuntimeSetInstanceTypeIDAndIsa(objtable, CFDictionaryGetTypeID()); const CFArrayCallBacks arrayCallbacks = {0, __CFTypeCollectionRetain, __CFTypeCollectionRelease, 0, 0}; objlist = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &arrayCallbacks); @@ -752,7 +728,6 @@ CF_PRIVATE CFDataRef __CFBinaryPlistCreateDataUsingExternalBufferAllocator(CFPro #pragma mark Reading #define FAIL_FALSE do { return false; } while (0) -#define FAIL_MAXOFFSET do { return UINT64_MAX; } while (0) CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFAllocatorRef allocator, CFOptionFlags mutabilityOption, CFMutableDictionaryRef objects, CFMutableSetRef set, CFIndex curDepth, CFSetRef keyPaths, CFPropertyListRef *plist); @@ -895,20 +870,26 @@ CF_INLINE bool _readInt(const uint8_t *ptr, const uint8_t *end_byte_ptr, uint64_ } // bytesptr points at a ref -CF_INLINE uint64_t _getOffsetOfRefAt(const uint8_t *databytes, const uint8_t *bytesptr, const CFBinaryPlistTrailer *trailer) { +CF_INLINE Boolean _getOffsetOfRefAt(const uint8_t *databytes, const uint8_t *bytesptr, const CFBinaryPlistTrailer *trailer, uint64_t *outOffset) { // *trailer contents are trusted, even for overflows -- was checked when the trailer was parsed; // this pointer arithmetic and the multiplication was also already done once and checked, // and the offsetTable was already validated. const uint8_t *objectsFirstByte = databytes + 8; const uint8_t *offsetsFirstByte = databytes + trailer->_offsetTableOffset; - if (bytesptr < objectsFirstByte || offsetsFirstByte - trailer->_objectRefSize < bytesptr) FAIL_MAXOFFSET; - - uint64_t ref = _getSizedInt(bytesptr, trailer->_objectRefSize); - if (trailer->_numObjects <= ref) FAIL_MAXOFFSET; - + if (bytesptr < objectsFirstByte || offsetsFirstByte - trailer->_objectRefSize < bytesptr) { + FAIL_FALSE; + } + + const uint64_t ref = _getSizedInt(bytesptr, trailer->_objectRefSize); + if (trailer->_numObjects <= ref) { + FAIL_FALSE; + } + bytesptr = databytes + trailer->_offsetTableOffset + ref * trailer->_offsetIntSize; - uint64_t off = _getSizedInt(bytesptr, trailer->_offsetIntSize); - return off; + if (outOffset) { + *outOffset = _getSizedInt(bytesptr, trailer->_offsetIntSize); + } + return true; } bool __CFBinaryPlistGetOffsetForValueFromArray2(const uint8_t *databytes, uint64_t datalen, uint64_t startOffset, const CFBinaryPlistTrailer *trailer, CFIndex idx, uint64_t *offset, CFMutableDictionaryRef objects) { @@ -933,8 +914,9 @@ bool __CFBinaryPlistGetOffsetForValueFromArray2(const uint8_t *databytes, uint64 const uint8_t *extent = check_ptr_add(ptr, byte_cnt, &err) - 1; if (CF_NO_ERROR != err) FAIL_FALSE; if (databytes + objectsRangeEnd < extent) FAIL_FALSE; - uint64_t off = _getOffsetOfRefAt(databytes, ptr + idx * trailer->_objectRefSize, trailer); - if (offset) *offset = off; + if (!_getOffsetOfRefAt(databytes, ptr + idx * trailer->_objectRefSize, trailer, offset)) { + FAIL_FALSE; + } return true; } @@ -1022,14 +1004,17 @@ bool __CFBinaryPlistGetOffsetForValueFromDictionary3(const uint8_t *databytes, u // Perform linear search of the keys for (CFIndex idx = 0; idx < cnt; idx++) { - off = _getOffsetOfRefAt(databytes, ptr, trailer); + if (!_getOffsetOfRefAt(databytes, ptr, trailer, &off)) { + FAIL_FALSE; + } marker = *(databytes + off); // if it is an ASCII string in the data, then we do a memcmp. If the key isn't ASCII, then it won't pass the compare, unless it hits some odd edge case of the ASCII string actually containing the unicode escape sequence. if (keyBufferPtr && (marker & 0xf0) == kCFBinaryPlistMarkerASCIIString) { CFIndex len = marker & 0x0f; // move past the marker - const uint8_t *ptr2 = databytes + off; err = CF_NO_ERROR; + const uint8_t *ptr2 = check_ptr_add(databytes, off, &err); + if (CF_NO_ERROR != err) FAIL_FALSE; ptr2 = check_ptr_add(ptr2, 1, &err); if (CF_NO_ERROR != err) FAIL_FALSE; @@ -1068,9 +1053,11 @@ bool __CFBinaryPlistGetOffsetForValueFromDictionary3(const uint8_t *databytes, u } if (match) { - if (koffset) *koffset = off; - if (voffset) *voffset = _getOffsetOfRefAt(databytes, ptr + totalKeySize, trailer); - return true; + if (!_getOffsetOfRefAt(databytes, ptr + totalKeySize, trailer, voffset)) { + FAIL_FALSE; + } + if (koffset) { *koffset = off; } + return true; } ptr += trailer->_objectRefSize; @@ -1114,10 +1101,10 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui *plist = kCFNull; return true; case kCFBinaryPlistMarkerFalse: - *plist = !(0) ? CFRetain(kCFBooleanFalse) : kCFBooleanFalse; + *plist = CFRetain(kCFBooleanFalse); return true; case kCFBinaryPlistMarkerTrue: - *plist = !(0) ? CFRetain(kCFBooleanTrue) : kCFBooleanTrue; + *plist = CFRetain(kCFBooleanTrue); return true; } FAIL_FALSE; @@ -1343,7 +1330,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui byte_cnt = check_size_t_mul(arrayCount, sizeof(CFPropertyListRef), &err); if (CF_NO_ERROR != err) FAIL_FALSE; STACK_BUFFER_DECL(CFPropertyListRef, buffer, arrayCount <= 256 ? arrayCount : 1); - list = (arrayCount <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, byte_cnt, __kCFAllocatorGCScannedMemory); + list = (arrayCount <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, byte_cnt, 0); if (!list) FAIL_FALSE; Boolean madeSet = false; if (!set && 15 < curDepth) { @@ -1402,7 +1389,14 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui } else { for (CFIndex idx = 0; idx < arrayCount; idx++) { CFPropertyListRef pl; - off = _getOffsetOfRefAt(databytes, ptr, trailer); + if (!_getOffsetOfRefAt(databytes, ptr, trailer, &off)) { + while (idx--) { + CFRelease(list[idx]); + } + if (list != buffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, list); + if (madeSet) { CFRelease(set); } + FAIL_FALSE; + } if (!__CFBinaryPlistCreateObjectFiltered(databytes, datalen, off, trailer, allocator, mutabilityOption, objects, set, curDepth + 1, NULL, &pl)) { while (idx--) { CFRelease(list[idx]); @@ -1411,7 +1405,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui if (madeSet) { CFRelease(set); } FAIL_FALSE; } - __CFAssignWithWriteBarrier((void **)list + idx, (void *)pl); + *((void **)list + idx) = (void *)pl; ptr += trailer->_objectRefSize; } if ((marker & 0xf0) == kCFBinaryPlistMarkerArray) { @@ -1422,14 +1416,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui CFRelease(list[idx]); } } else { - if (!kCFUseCollectableAllocator) { - *plist = __CFArrayCreateTransfer(allocator, list, arrayCount); - } else { - *plist = CFArrayCreate(allocator, list, arrayCount, &kCFTypeArrayCallBacks); - for (CFIndex idx = 0; idx < arrayCount; idx++) { - CFRelease(list[idx]); - } - } + *plist = __CFArrayCreateTransfer(allocator, list, arrayCount); } } else { if (mutabilityOption != kCFPropertyListImmutable) { @@ -1441,14 +1428,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui CFRelease(list[idx]); } } else { - if (!kCFUseCollectableAllocator) { - *plist = __CFSetCreateTransfer(allocator, list, arrayCount); - } else { - *plist = CFSetCreate(allocator, list, arrayCount, &kCFTypeSetCallBacks); - for (CFIndex idx = 0; idx < arrayCount; idx++) { - CFRelease(list[idx]); - } - } + *plist = __CFSetCreateTransfer(allocator, list, arrayCount); } } } @@ -1484,8 +1464,8 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui if (databytes + objectsRangeEnd < extent) FAIL_FALSE; byte_cnt = check_size_t_mul(dictionaryCount, sizeof(CFPropertyListRef), &err); if (CF_NO_ERROR != err) FAIL_FALSE; - STACK_BUFFER_DECL(CFPropertyListRef, buffer, dictionaryCount <= 256 ? dictionaryCount : 1); - list = (dictionaryCount <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, byte_cnt, __kCFAllocatorGCScannedMemory); + STACK_BUFFER_DECL(CFPropertyListRef, buffer, 0 < dictionaryCount && dictionaryCount <= 256 ? dictionaryCount : 1); + list = (dictionaryCount <= 256) ? buffer : (CFPropertyListRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, byte_cnt, 0); if (!list) FAIL_FALSE; Boolean madeSet = false; if (!set && 15 < curDepth) { @@ -1539,9 +1519,17 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui } else { for (CFIndex idx = 0; idx < dictionaryCount; idx++) { CFPropertyListRef pl = NULL; - off = _getOffsetOfRefAt(databytes, ptr, trailer); + if (!_getOffsetOfRefAt(databytes, ptr, trailer, &off)) { + if (pl) CFRelease(pl); + while (idx--) { + CFRelease(list[idx]); + } + if (list != buffer) CFAllocatorDeallocate(kCFAllocatorSystemDefault, list); + if (madeSet) { CFRelease(set); } + FAIL_FALSE; + } if (!__CFBinaryPlistCreateObjectFiltered(databytes, datalen, off, trailer, allocator, mutabilityOption, objects, set, curDepth + 1, NULL, &pl) || (idx < dictionaryCount / 2 && !_plistIsPrimitive(pl))) { - if (pl && !(0)) CFRelease(pl); + if (pl) CFRelease(pl); while (idx--) { CFRelease(list[idx]); } @@ -1549,7 +1537,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui if (madeSet) { CFRelease(set); } FAIL_FALSE; } - __CFAssignWithWriteBarrier((void **)list + idx, (void *)pl); + *((void **)list + idx) = (void *)pl; ptr += trailer->_objectRefSize; } if (mutabilityOption != kCFPropertyListImmutable) { @@ -1561,14 +1549,7 @@ CF_PRIVATE bool __CFBinaryPlistCreateObjectFiltered(const uint8_t *databytes, ui CFRelease(list[idx]); } } else { - if (!kCFUseCollectableAllocator) { - *plist = __CFDictionaryCreateTransfer(allocator, list, list + dictionaryCount / 2, dictionaryCount / 2); - } else { - *plist = CFDictionaryCreate(allocator, list, list + dictionaryCount / 2, dictionaryCount / 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - for (CFIndex idx = 0; idx < dictionaryCount; idx++) { - CFRelease(list[idx]); - } - } + *plist = __CFDictionaryCreateTransfer(allocator, list, list + dictionaryCount / 2, dictionaryCount / 2); } } if (set) CFSetRemoveValue(set, (const void *)(uintptr_t)startOffset); diff --git a/CoreFoundation/Parsing.subproj/CFOldStylePList.c b/CoreFoundation/Parsing.subproj/CFOldStylePList.c index a68e896da4..e782489cb1 100644 --- a/CoreFoundation/Parsing.subproj/CFOldStylePList.c +++ b/CoreFoundation/Parsing.subproj/CFOldStylePList.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFOldStylePList.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -154,7 +149,7 @@ static UniChar getSlashedChar(_CFStringsFileParseInfo *pInfo) { } static CFStringRef _uniqueStringForCharacters(_CFStringsFileParseInfo *pInfo, const UniChar *base, CFIndex length) CF_RETURNS_RETAINED { - if (0 == length) return !(0) ? (CFStringRef)CFRetain(CFSTR("")) : CFSTR(""); + if (0 == length) return (CFStringRef)CFRetain(CFSTR("")); // This is to avoid having to promote the buffers of all the strings compared against // during the set probe; if a Unicode string is passed in, that's what happens. CFStringRef stringToUnique = NULL; @@ -181,7 +176,7 @@ static CFStringRef _uniqueStringForCharacters(_CFStringsFileParseInfo *pInfo, co uniqued = stringToUnique; } if (stringToUnique) CFRelease(stringToUnique); - if (uniqued && !(0)) CFRetain(uniqued); + if (uniqued) CFRetain(uniqued); return uniqued; } @@ -192,7 +187,7 @@ static CFStringRef _uniqueStringForString(_CFStringsFileParseInfo *pInfo, CFStri CFSetAddValue(pInfo->stringSet, uniqued); __CFTypeCollectionRelease(pInfo->allocator, uniqued); } - if (uniqued && !(0)) CFRetain(uniqued); + if (uniqued) CFRetain(uniqued); return uniqued; } @@ -326,11 +321,11 @@ static CFTypeRef parsePlistArray(_CFStringsFileParseInfo *pInfo) CF_RETURNS_RETA } __attribute__((noinline)) void _CFPropertyListMissingSemicolon(UInt32 line) { - CFLog(kCFLogLevelWarning, CFSTR("CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line %d. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug."), line); + CFLog(kCFLogLevelWarning, CFSTR("CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line %d. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug."), (unsigned int)line); } __attribute__((noinline)) void _CFPropertyListMissingSemicolonOrValue(UInt32 line) { - CFLog(kCFLogLevelWarning, CFSTR("CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon or value in dictionary on line %d. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolonOrValue to debug."), line); + CFLog(kCFLogLevelWarning, CFSTR("CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon or value in dictionary on line %d. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolonOrValue to debug."), (unsigned int)line); } static CFDictionaryRef parsePlistDictContent(_CFStringsFileParseInfo *pInfo) CF_RETURNS_RETAINED { @@ -374,7 +369,7 @@ static CFDictionaryRef parsePlistDictContent(_CFStringsFileParseInfo *pInfo) CF_ if (foundChar && *pInfo->curr == ';') { pInfo->curr ++; key = parsePlistString(pInfo, false); - } else if (true || !foundChar) { + } else { UInt32 line = lineNumberStrings(pInfo); _CFPropertyListMissingSemicolon(line); failedParse = true; @@ -605,7 +600,7 @@ CF_PRIVATE CFTypeRef __CFCreateOldStylePropertyListOrStringsFile(CFAllocatorRef if (result && format) *format = kCFPropertyListOpenStepFormat; - if (createdBuffer && !(0)) CFAllocatorDeallocate(allocator, buf); + if (createdBuffer) CFAllocatorDeallocate(allocator, buf); CFRelease(stringsPInfo.stringSet); CFRelease(originalString); return result; diff --git a/CoreFoundation/Parsing.subproj/CFPropertyList.c b/CoreFoundation/Parsing.subproj/CFPropertyList.c index 6a6acbadde..ad2b6bccef 100644 --- a/CoreFoundation/Parsing.subproj/CFPropertyList.c +++ b/CoreFoundation/Parsing.subproj/CFPropertyList.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPropertyList.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -25,9 +20,7 @@ #include "CFInternal.h" #include #include -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX #include -#endif #include #include "CFLocaleInternal.h" #include @@ -80,7 +73,7 @@ CF_EXPORT CFNumberType _CFNumberGetType2(CFNumberRef number); if (N ## _count__ == 0) N ## _count__ = 1; \ STACK_BUFFER_DECL(CFTypeRef, N ## _buffer__, N ## _is_stack__ ? N ## _count__ : 1); \ if (N ## _is_stack__) memset(N ## _buffer__, 0, N ## _count__ * sizeof(CFTypeRef)); \ - CFTypeRef * N = N ## _is_stack__ ? N ## _buffer__ : (CFTypeRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, (N ## _count__) * sizeof(CFTypeRef), __kCFAllocatorGCScannedMemory); \ + CFTypeRef * N = N ## _is_stack__ ? N ## _buffer__ : (CFTypeRef *)CFAllocatorAllocate(kCFAllocatorSystemDefault, (N ## _count__) * sizeof(CFTypeRef), 0); \ if (! N) { \ CRSetCrashLogMessage("CFPropertyList ran out of memory while attempting to allocate temporary storage."); \ HALT; \ @@ -101,10 +94,9 @@ CF_EXPORT CFNumberType _CFNumberGetType2(CFNumberRef number); static CFTypeID stringtype, datatype, numbertype, datetype; static CFTypeID booltype, nulltype, dicttype, arraytype, settype; -static CFTypeID uidtype; /* for debugging */ static void initStatics() { - static dispatch_once_t once = 0; + static dispatch_once_t once; dispatch_once(&once, ^{ stringtype = CFStringGetTypeID(); datatype = CFDataGetTypeID(); @@ -115,7 +107,6 @@ static void initStatics() { arraytype = CFArrayGetTypeID(); settype = CFSetGetTypeID(); nulltype = CFNullGetTypeID(); - uidtype = _CFKeyedArchiverUIDGetTypeID(); }); } @@ -162,7 +153,7 @@ static CFStringRef __copyErrorDebugDescription(CFErrorRef error) { #pragma mark Property List Validation // don't allow _CFKeyedArchiverUID here -#define __CFAssertIsPList(cf) CFAssert(CFGetTypeID(cf) == CFStringGetTypeID() || CFGetTypeID(cf) == CFArrayGetTypeID() || CFGetTypeID(cf) == CFBooleanGetTypeID() || CFGetTypeID(cf) == CFNumberGetTypeID() || CFGetTypeID(cf) == CFDictionaryGetTypeID() || CFGetTypeID(cf) == CFDateGetTypeID() || CFGetTypeID(cf) == CFDataGetTypeID(), __kCFLogAssertion, "%s(): %p not of a property list type", __PRETTY_FUNCTION__, cf); +#define __CFAssertIsPList(cf) CFAssert2(CFGetTypeID(cf) == CFStringGetTypeID() || CFGetTypeID(cf) == CFArrayGetTypeID() || CFGetTypeID(cf) == CFBooleanGetTypeID() || CFGetTypeID(cf) == CFNumberGetTypeID() || CFGetTypeID(cf) == CFDictionaryGetTypeID() || CFGetTypeID(cf) == CFDateGetTypeID() || CFGetTypeID(cf) == CFDataGetTypeID(), __kCFLogAssertion, "%s(): %p not of a property list type", __PRETTY_FUNCTION__, cf); struct context { bool answer; @@ -249,7 +240,7 @@ static bool __CFPropertyListIsValidAux(CFPropertyListRef plist, bool recursive, static Boolean _CFPropertyListIsValidWithErrorString(CFPropertyListRef plist, CFPropertyListFormat format, CFStringRef *error) { initStatics(); - CFAssert(plist != NULL, __kCFLogAssertion, "%s(): NULL is not a property list", __PRETTY_FUNCTION__); + CFAssert1(plist != NULL, __kCFLogAssertion, "%s(): NULL is not a property list", __PRETTY_FUNCTION__); return __CFPropertyListIsValidAux(plist, true, NULL, format, error); } @@ -305,7 +296,7 @@ typedef struct { CF_PRIVATE CFTypeRef __CFCreateOldStylePropertyListOrStringsFile(CFAllocatorRef allocator, CFDataRef xmlData, CFStringRef originalString, CFStringEncoding guessedEncoding, CFOptionFlags option, CFErrorRef *outError,CFPropertyListFormat *format); CF_INLINE void __CFPListRelease(CFTypeRef cf, CFAllocatorRef allocator) { - if (cf && !(0)) CFRelease(cf); + if (cf) CFRelease(cf); } @@ -343,7 +334,7 @@ static void _plistAppendCharacters(CFMutableDataRef mData, const UniChar *chars, } CFRelease(str); } - CFAssert(str && data, __kCFLogAssertion, "%s(): Error writing plist", __PRETTY_FUNCTION__); + CFAssert1(str && data, __kCFLogAssertion, "%s(): Error writing plist", __PRETTY_FUNCTION__); } } @@ -361,7 +352,7 @@ static void _plistAppendString(CFMutableDataRef mData, CFStringRef str) { CFDataAppendBytes (mData, CFDataGetBytePtr(data), CFDataGetLength(data)); CFRelease(data); } else { - CFAssert(TRUE, __kCFLogAssertion, "%s(): Error in plist writing", __PRETTY_FUNCTION__); + CFAssert1(TRUE, __kCFLogAssertion, "%s(): Error in plist writing", __PRETTY_FUNCTION__); } } @@ -376,7 +367,7 @@ static void _plistAppendFormat(CFMutableDataRef mData, CFStringRef format, ...) fStr = CFStringCreateWithFormatAndArguments(kCFAllocatorSystemDefault, NULL, format, argList); va_end(argList); - CFAssert(fStr, __kCFLogAssertion, "%s(): Error writing plist", __PRETTY_FUNCTION__); + CFAssert1(fStr, __kCFLogAssertion, "%s(): Error writing plist", __PRETTY_FUNCTION__); _plistAppendString(mData, fStr); CFRelease(fStr); } @@ -528,6 +519,36 @@ static void _CFAppendXML0(CFTypeRef object, UInt32 indentation, CFMutableDataRef _plistAppendUTF8CString(xmlString, "\n"); + } else if (typeID == _CFKeyedArchiverUIDGetTypeID()) { + // This is only used for the keyed archiver + _plistAppendUTF8CString(xmlString, "<"); + _plistAppendCharacters(xmlString, CFXMLPlistTagsUnicode[DICT_IX], DICT_TAG_LENGTH); + _plistAppendUTF8CString(xmlString, ">\n"); + _appendIndents(indentation+1, xmlString); + _plistAppendUTF8CString(xmlString, "<"); + _plistAppendCharacters(xmlString, CFXMLPlistTagsUnicode[KEY_IX], KEY_TAG_LENGTH); + _plistAppendUTF8CString(xmlString, ">"); + _appendEscapedString(CFSTR("CF$UID"), xmlString); + _plistAppendUTF8CString(xmlString, "\n"); + _appendIndents(indentation + 1, xmlString); + _plistAppendUTF8CString(xmlString, "<"); + _plistAppendCharacters(xmlString, CFXMLPlistTagsUnicode[INTEGER_IX], INTEGER_TAG_LENGTH); + _plistAppendUTF8CString(xmlString, ">"); + + uint64_t v = _CFKeyedArchiverUIDGetValue((CFKeyedArchiverUIDRef)object); + CFNumberRef num = CFNumberCreate(kCFAllocatorSystemDefault, kCFNumberSInt64Type, &v); + _plistAppendFormat(xmlString, CFSTR("%@"), num); + CFRelease(num); + + _plistAppendUTF8CString(xmlString, "\n"); + _appendIndents(indentation, xmlString); + _plistAppendUTF8CString(xmlString, "\n"); } else if (typeID == arraytype) { UInt32 i, count = CFArrayGetCount((CFArrayRef)object); if (count == 0) { @@ -665,14 +686,6 @@ if (date.year != y || date.month != M || date.day != d || date.hour != H || date _plistAppendCharacters(xmlString, CFXMLPlistTagsUnicode[FALSE_IX], FALSE_TAG_LENGTH); _plistAppendUTF8CString(xmlString, "/>\n"); } - } else if (typeID == uidtype) { - CFStringRef key = CFSTR("CF$UID"); - CFIndex n = _CFKeyedArchiverUIDGetValue((CFKeyedArchiverUIDRef)object); - CFNumberRef value = CFNumberCreate(kCFAllocatorSystemDefault, kCFNumberCFIndexType, &n); - CFDictionaryRef dict = CFDictionaryCreate(kCFAllocatorSystemDefault, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - _CFAppendXML0(dict, indentation, xmlString); - CFRelease(value); - CFRelease(dict); } } @@ -697,7 +710,7 @@ static void _CFGenerateXMLPropertyListToData(CFMutableDataRef xml, CFTypeRef pro CFDataRef _CFPropertyListCreateXMLData(CFAllocatorRef allocator, CFPropertyListRef propertyList, Boolean checkValidPlist) { initStatics(); CFMutableDataRef xml; - CFAssert(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); + CFAssert1(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); if (checkValidPlist && !CFPropertyListIsValid(propertyList, kCFPropertyListXMLFormat_v1_0)) { __CFAssertIsPList(propertyList); return NULL; @@ -717,7 +730,7 @@ CF_EXPORT CFDataRef _CFPropertyListCreateXMLDataWithExtras(CFAllocatorRef alloca Boolean CFPropertyListIsValid(CFPropertyListRef plist, CFPropertyListFormat format) { initStatics(); - CFAssert(plist != NULL, __kCFLogAssertion, "%s(): NULL is not a property list", __PRETTY_FUNCTION__); + CFAssert1(plist != NULL, __kCFLogAssertion, "%s(): NULL is not a property list", __PRETTY_FUNCTION__); return __CFPropertyListIsValidAux(plist, true, NULL, format, NULL); #if defined(DEBUG) CFStringRef error = NULL; @@ -1121,7 +1134,7 @@ static void _cleanupStringMap(_CFXMLPlistParseInfo *pInfo) { } static CFStringRef _createUniqueStringWithUTF8Bytes(_CFXMLPlistParseInfo *pInfo, const char *base, CFIndex length) { - if (length == 0) return !(0) ? (CFStringRef)CFRetain(CFSTR("")) : CFSTR(""); + if (length == 0) return (CFStringRef)CFRetain(CFSTR("")); CFStringRef result = NULL; uint32_t payload = 0; @@ -1203,6 +1216,7 @@ static Boolean parseStringTag(_CFXMLPlistParseInfo *pInfo, CFStringRef *out) { if (pInfo->mutabilityOption != kCFPropertyListMutableContainersAndLeaves) { CFStringRef s = _createUniqueStringWithUTF8Bytes(pInfo, (const char *)CFDataGetBytePtr(stringData), CFDataGetLength(stringData)); if (!s) { + CFRelease(stringData); pInfo->error = __CFPropertyListCreateError(kCFPropertyListReadCorruptError, CFSTR("Unable to convert string to correct encoding")); return false; } @@ -1210,6 +1224,7 @@ static Boolean parseStringTag(_CFXMLPlistParseInfo *pInfo, CFStringRef *out) { } else { CFStringRef s = CFStringCreateWithBytes(pInfo->allocator, (const UInt8 *)CFDataGetBytePtr(stringData), CFDataGetLength(stringData), kCFStringEncodingUTF8, NO); if (!s) { + CFRelease(stringData); pInfo->error = __CFPropertyListCreateError(kCFPropertyListReadCorruptError, CFSTR("Unable to convert string to correct encoding")); return false; } @@ -2373,8 +2388,8 @@ static Boolean __savePlistData(CFDataRef data, CFOptionFlags opt) { static Boolean _CFPropertyListCreateFromUTF8Data(CFAllocatorRef allocator, CFDataRef xmlData, CFIndex skipBytes, CFStringRef originalString, CFStringEncoding guessedEncoding, CFOptionFlags option, CFErrorRef *outError, Boolean allowNewTypes, CFPropertyListFormat *format, CFSetRef keyPaths, CFTypeRef *out) { initStatics(); - CFAssert(xmlData != NULL, __kCFLogAssertion, "%s(): NULL data not allowed", __PRETTY_FUNCTION__); - CFAssert(option == kCFPropertyListImmutable || option == kCFPropertyListMutableContainers || option == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, option); + CFAssert1(xmlData != NULL, __kCFLogAssertion, "%s(): NULL data not allowed", __PRETTY_FUNCTION__); + CFAssert2(option == kCFPropertyListImmutable || option == kCFPropertyListMutableContainers || option == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %lu", __PRETTY_FUNCTION__, option); CFIndex length = CFDataGetLength(xmlData); if (!length) { @@ -2408,7 +2423,7 @@ static Boolean _CFPropertyListCreateFromUTF8Data(CFAllocatorRef allocator, CFDat if (success && result && format) *format = kCFPropertyListXMLFormat_v1_0; _cleanupStringMap(pInfo); - if (pInfo->keyPaths && !(0)) CFRelease(pInfo->keyPaths); + if (pInfo->keyPaths) CFRelease(pInfo->keyPaths); CFRelease(xmlData); if (success) { @@ -2532,8 +2547,8 @@ static Boolean _CFPropertyListCreateWithData(CFAllocatorRef allocator, CFDataRef Boolean result = _CFPropertyListCreateFromUTF8Data(allocator, utf8Data, 0, xmlString, 0, option, outError, allowNewTypes, format, topLevelKeys, out); - if (xmlString && !(0)) CFRelease(xmlString); - if (utf8Data && !(0)) CFRelease(utf8Data); + if (xmlString) CFRelease(xmlString); + if (utf8Data) CFRelease(utf8Data); return result; } @@ -2548,7 +2563,7 @@ CFTypeRef _CFPropertyListCreateFromXMLStringError(CFAllocatorRef allocator, CFSt CFDataRef utf8Data = _createUTF8DataFromString(allocator, xmlString); CFTypeRef result = NULL; _CFPropertyListCreateFromUTF8Data(allocator, utf8Data, 0, xmlString, 0, option, error, allowNewTypes, format, NULL, &result); - if (utf8Data && !(0)) CFRelease(utf8Data); + if (utf8Data) CFRelease(utf8Data); return result; } @@ -2716,10 +2731,10 @@ bool _CFPropertyListCreateSingleValue(CFAllocatorRef allocator, CFDataRef data, for (CFIndex i = 0; i < CFArrayGetCount(keyPathArray); i++) { CFStringRef oneKey = (CFStringRef)CFArrayGetValueAtIndex(keyPathArray, i); SInt32 intValue = CFStringGetIntValue(oneKey); - if (((intValue == 0 && CFStringCompare(CFSTR("0"), oneKey, 0) != kCFCompareEqualTo) || intValue == INT_MAX || intValue == INT_MIN) && CFGetTypeID((CFTypeRef)nextObject) == dicttype) { + if (((intValue == 0 && CFStringCompare(CFSTR("0"), oneKey, 0) != kCFCompareEqualTo) || intValue == INT_MAX || intValue == INT_MIN) && nextObject && CFGetTypeID((CFTypeRef)nextObject) == dicttype) { // Treat as a string key into a dictionary nextObject = (CFPropertyListRef)CFDictionaryGetValue((CFDictionaryRef)nextObject, oneKey); - } else if (CFGetTypeID((CFTypeRef)nextObject) == arraytype) { + } else if (nextObject && CFGetTypeID((CFTypeRef)nextObject) == arraytype) { // Treat as integer index into an array nextObject = (CFPropertyListRef)CFArrayGetValueAtIndex((CFArrayRef)nextObject, intValue); } else { @@ -2760,8 +2775,8 @@ CFTypeRef _CFPropertyListCreateFromXMLData(CFAllocatorRef allocator, CFDataRef x CFPropertyListRef CFPropertyListCreateWithData(CFAllocatorRef allocator, CFDataRef data, CFOptionFlags options, CFPropertyListFormat *format, CFErrorRef *error) { initStatics(); - CFAssert(data != NULL, __kCFLogAssertion, "%s(): NULL data not allowed", __PRETTY_FUNCTION__); - CFAssert(options == kCFPropertyListImmutable || options == kCFPropertyListMutableContainers || options == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, options); + CFAssert1(data != NULL, __kCFLogAssertion, "%s(): NULL data not allowed", __PRETTY_FUNCTION__); + CFAssert2(options == kCFPropertyListImmutable || options == kCFPropertyListMutableContainers || options == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %lu", __PRETTY_FUNCTION__, options); CFPropertyListRef out = NULL; _CFPropertyListCreateWithData(allocator, data, options, error, true, format, NULL, &out); return out; @@ -2781,9 +2796,9 @@ CFPropertyListRef CFPropertyListCreateFromXMLData(CFAllocatorRef allocator, CFDa CFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef propertyList, CFPropertyListFormat format, CFOptionFlags options, CFErrorRef *error) { initStatics(); - CFAssert(format != kCFPropertyListOpenStepFormat, __kCFLogAssertion, "%s(): kCFPropertyListOpenStepFormat not supported for writing", __PRETTY_FUNCTION__); - CFAssert(format == kCFPropertyListXMLFormat_v1_0 || format == kCFPropertyListBinaryFormat_v1_0, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, format); - CFAssert(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); + CFAssert1(format != kCFPropertyListOpenStepFormat, __kCFLogAssertion, "%s(): kCFPropertyListOpenStepFormat not supported for writing", __PRETTY_FUNCTION__); + CFAssert2(format == kCFPropertyListXMLFormat_v1_0 || format == kCFPropertyListBinaryFormat_v1_0, __kCFLogAssertion, "%s(): Unrecognized option %ld", __PRETTY_FUNCTION__, format); + CFAssert1(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); __CFAssertIsPList(propertyList); CFDataRef data = NULL; @@ -2803,9 +2818,7 @@ CFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef p return NULL; } else if (format == kCFPropertyListXMLFormat_v1_0) { data = _CFPropertyListCreateXMLData(allocator, propertyList, true); - } else if (format == kCFPropertyListBinaryFormat_v1_0) { -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX - // TODO: Is it more efficient to create a stream here or just use a mutable data? + } else if (format == kCFPropertyListBinaryFormat_v1_0) { // TODO: Is it more efficient to create a stream here or just use a mutable data? CFWriteStreamRef stream = CFWriteStreamCreateWithAllocatedBuffers(kCFAllocatorSystemDefault, allocator); CFWriteStreamOpen(stream); CFIndex len = CFPropertyListWrite(propertyList, stream, format, options, error); @@ -2814,11 +2827,6 @@ CFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef p } CFWriteStreamClose(stream); CFRelease(stream); -#else - CFMutableDataRef dataForPlist = CFDataCreateMutable(allocator, 0); - __CFBinaryPlistWrite(propertyList, dataForPlist, 0, options, error); - return dataForPlist; -#endif } else { CFLog(kCFLogLevelError, CFSTR("Unknown format option")); } @@ -2826,21 +2834,19 @@ CFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef p return data; } -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX - CFIndex CFPropertyListWrite(CFPropertyListRef propertyList, CFWriteStreamRef stream, CFPropertyListFormat format, CFOptionFlags options, CFErrorRef *error) { initStatics(); - CFAssert(stream != NULL, __kCFLogAssertion, "%s(): NULL stream not allowed", __PRETTY_FUNCTION__); - CFAssert(format != kCFPropertyListOpenStepFormat, __kCFLogAssertion, "%s(): kCFPropertyListOpenStepFormat not supported for writing", __PRETTY_FUNCTION__); - CFAssert(format == kCFPropertyListXMLFormat_v1_0 || format == kCFPropertyListBinaryFormat_v1_0, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, format); - CFAssert(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); + CFAssert1(stream != NULL, __kCFLogAssertion, "%s(): NULL stream not allowed", __PRETTY_FUNCTION__); + CFAssert1(format != kCFPropertyListOpenStepFormat, __kCFLogAssertion, "%s(): kCFPropertyListOpenStepFormat not supported for writing", __PRETTY_FUNCTION__); + CFAssert2(format == kCFPropertyListXMLFormat_v1_0 || format == kCFPropertyListBinaryFormat_v1_0, __kCFLogAssertion, "%s(): Unrecognized option %ld", __PRETTY_FUNCTION__, format); + CFAssert1(propertyList != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL property list", __PRETTY_FUNCTION__); __CFAssertIsPList(propertyList); - CFAssert(CFWriteStreamGetTypeID() == CFGetTypeID(stream), __kCFLogAssertion, "%s(): stream argument is not a write stream", __PRETTY_FUNCTION__); - CFAssert(kCFStreamStatusOpen == CFWriteStreamGetStatus(stream) || kCFStreamStatusWriting == CFWriteStreamGetStatus(stream), __kCFLogAssertion, "%s(): stream is not open", __PRETTY_FUNCTION__); + CFAssert1(CFWriteStreamGetTypeID() == CFGetTypeID(stream), __kCFLogAssertion, "%s(): stream argument is not a write stream", __PRETTY_FUNCTION__); + CFAssert1(kCFStreamStatusOpen == CFWriteStreamGetStatus(stream) || kCFStreamStatusWriting == CFWriteStreamGetStatus(stream), __kCFLogAssertion, "%s(): stream is not open", __PRETTY_FUNCTION__); CFStringRef validErr = NULL; if (!_CFPropertyListIsValidWithErrorString(propertyList, format, &validErr)) { - CFLog(kCFLogLevelError, CFSTR("Property list invalid for format: %d (%@)"), format, validErr); + CFLog(kCFLogLevelError, CFSTR("Property list invalid for format: %ld (%@)"), format, validErr); if (validErr) CFRelease(validErr); return 0; } @@ -2969,10 +2975,10 @@ static bool __convertReadStreamToBytes(CFReadStreamRef stream, CFIndex max, uint CFPropertyListRef CFPropertyListCreateWithStream(CFAllocatorRef allocator, CFReadStreamRef stream, CFIndex streamLength, CFOptionFlags mutabilityOption, CFPropertyListFormat *format, CFErrorRef *error) { initStatics(); - CFAssert(stream != NULL, __kCFLogAssertion, "%s(): NULL stream not allowed", __PRETTY_FUNCTION__); - CFAssert(CFReadStreamGetTypeID() == CFGetTypeID(stream), __kCFLogAssertion, "%s(): stream argument is not a read stream", __PRETTY_FUNCTION__); - CFAssert(kCFStreamStatusOpen == CFReadStreamGetStatus(stream) || kCFStreamStatusReading == CFReadStreamGetStatus(stream), __kCFLogAssertion, "%s(): stream is not open", __PRETTY_FUNCTION__); - CFAssert(mutabilityOption == kCFPropertyListImmutable || mutabilityOption == kCFPropertyListMutableContainers || mutabilityOption == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, mutabilityOption); + CFAssert1(stream != NULL, __kCFLogAssertion, "%s(): NULL stream not allowed", __PRETTY_FUNCTION__); + CFAssert1(CFReadStreamGetTypeID() == CFGetTypeID(stream), __kCFLogAssertion, "%s(): stream argument is not a read stream", __PRETTY_FUNCTION__); + CFAssert1(kCFStreamStatusOpen == CFReadStreamGetStatus(stream) || kCFStreamStatusReading == CFReadStreamGetStatus(stream), __kCFLogAssertion, "%s(): stream is not open", __PRETTY_FUNCTION__); + CFAssert2(mutabilityOption == kCFPropertyListImmutable || mutabilityOption == kCFPropertyListMutableContainers || mutabilityOption == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %lu", __PRETTY_FUNCTION__, mutabilityOption); if (0 == streamLength) streamLength = LONG_MAX; CFErrorRef underlyingError = NULL; @@ -3021,7 +3027,6 @@ CFPropertyListRef CFPropertyListCreateFromStream(CFAllocatorRef allocator, CFRea return result; } -#endif //(DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX) #pragma mark - #pragma mark Property List Copies @@ -3039,7 +3044,7 @@ static CFArrayRef _arrayDeepImmutableCopy(CFAllocatorRef allocator, CFArrayRef a if (newValue == NULL) { break; } - __CFAssignWithWriteBarrier((void **)values + i, (void *)newValue); + *((void **)values + i) = (void *)newValue; } result = (i == c) ? CFArrayCreate(allocator, values, c, &kCFTypeArrayCallBacks) : NULL; c = i; @@ -3070,9 +3075,9 @@ static CFMutableArrayRef _arrayDeepMutableCopy(CFAllocatorRef allocator, CFArray CFPropertyListRef CFPropertyListCreateDeepCopy(CFAllocatorRef allocator, CFPropertyListRef propertyList, CFOptionFlags mutabilityOption) { initStatics(); CFPropertyListRef result = NULL; - CFAssert(propertyList != NULL, __kCFLogAssertion, "%s(): cannot copy a NULL property list", __PRETTY_FUNCTION__); + CFAssert1(propertyList != NULL, __kCFLogAssertion, "%s(): cannot copy a NULL property list", __PRETTY_FUNCTION__); __CFAssertIsPList(propertyList); - CFAssert(mutabilityOption == kCFPropertyListImmutable || mutabilityOption == kCFPropertyListMutableContainers || mutabilityOption == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %d", __PRETTY_FUNCTION__, mutabilityOption); + CFAssert2(mutabilityOption == kCFPropertyListImmutable || mutabilityOption == kCFPropertyListMutableContainers || mutabilityOption == kCFPropertyListMutableContainersAndLeaves, __kCFLogAssertion, "%s(): Unrecognized option %lu", __PRETTY_FUNCTION__, mutabilityOption); if (!CFPropertyListIsValid(propertyList, kCFPropertyListBinaryFormat_v1_0)) return NULL; CFTypeID typeID = CFGetTypeID(propertyList); @@ -3093,13 +3098,13 @@ CFPropertyListRef CFPropertyListCreateDeepCopy(CFAllocatorRef allocator, CFPrope if (newKey == NULL) { break; } - __CFAssignWithWriteBarrier((void **)keys + i, (void *)newKey); + *((void **)keys + i) = (void *)newKey; CFTypeRef newValue = CFPropertyListCreateDeepCopy(allocator, values[i], mutabilityOption); if (newValue == NULL) { CFRelease(keys[i]); break; } - __CFAssignWithWriteBarrier((void **)values + i, (void *)newValue); + *((void **)values + i) = (void *)newValue; } if (i == count) { result = isMutable ? CFDictionaryCreateMutable(allocator, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks) : CFDictionaryCreate(allocator, keys, values, count, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); @@ -3152,7 +3157,7 @@ CFPropertyListRef CFPropertyListCreateDeepCopy(CFAllocatorRef allocator, CFPrope result = CFStringCreateCopy(allocator, (CFStringRef)propertyList); } } else { - CFAssert(false, __kCFLogAssertion, "%s(): %p is not a property list type", __PRETTY_FUNCTION__, propertyList); + CFAssert2(false, __kCFLogAssertion, "%s(): %p is not a property list type", __PRETTY_FUNCTION__, propertyList); result = NULL; } return result; diff --git a/CoreFoundation/Parsing.subproj/CFPropertyList.h b/CoreFoundation/Parsing.subproj/CFPropertyList.h index 7e8f64aa67..36248ab792 100644 --- a/CoreFoundation/Parsing.subproj/CFPropertyList.h +++ b/CoreFoundation/Parsing.subproj/CFPropertyList.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPropertyList.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFPROPERTYLIST__) @@ -30,8 +25,6 @@ typedef CF_OPTIONS(CFOptionFlags, CFPropertyListMutabilityOptions) { kCFPropertyListMutableContainersAndLeaves }; -CF_IMPLICIT_BRIDGING_DISABLED - /* Creates a property list object from its XML description; xmlData should be the raw bytes of that description, possibly the contents of an XML @@ -60,8 +53,6 @@ CFPropertyListRef CFPropertyListCreateFromXMLData(CFAllocatorRef allocator, CFDa CF_EXPORT CFDataRef CFPropertyListCreateXMLData(CFAllocatorRef allocator, CFPropertyListRef propertyList) CF_DEPRECATED(10_0, 10_10, 2_0, 8_0, "Use CFPropertyListCreateData instead."); -CF_IMPLICIT_BRIDGING_ENABLED - /* Recursively creates a copy of the given property list (so nested arrays and dictionaries are copied as well as the top-most container). The @@ -85,8 +76,6 @@ typedef CF_ENUM(CFIndex, CFPropertyListFormat) { CF_EXPORT Boolean CFPropertyListIsValid(CFPropertyListRef plist, CFPropertyListFormat format); -CF_IMPLICIT_BRIDGING_DISABLED - /* Writes the bytes of a plist serialization out to the stream. The * stream must be opened and configured -- the function simply writes * a bunch of bytes to the stream. The output plist format can be chosen. @@ -115,8 +104,6 @@ CFIndex CFPropertyListWriteToStream(CFPropertyListRef propertyList, CFWriteStrea CF_EXPORT CFPropertyListRef CFPropertyListCreateFromStream(CFAllocatorRef allocator, CFReadStreamRef stream, CFIndex streamLength, CFOptionFlags mutabilityOption, CFPropertyListFormat *format, CFStringRef *errorString) CF_DEPRECATED(10_2, 10_10, 2_0, 8_0, "Use CFPropertyListCreateWithStream instead."); -CF_IMPLICIT_BRIDGING_ENABLED - CF_ENUM(CFIndex) { kCFPropertyListReadCorruptError = 3840, // Error parsing a property list kCFPropertyListReadUnknownVersionError = 3841, // The version number in the property list is unknown @@ -144,9 +131,8 @@ CFIndex CFPropertyListWrite(CFPropertyListRef propertyList, CFWriteStreamRef str CF_EXPORT CFDataRef CFPropertyListCreateData(CFAllocatorRef allocator, CFPropertyListRef propertyList, CFPropertyListFormat format, CFOptionFlags options, CFErrorRef *error) CF_AVAILABLE(10_6, 4_0); - -CF_IMPLICIT_BRIDGING_DISABLED CF_EXTERN_C_END +CF_IMPLICIT_BRIDGING_DISABLED #endif /* ! __COREFOUNDATION_CFPROPERTYLIST__ */ diff --git a/CoreFoundation/Parsing.subproj/CFXMLInputStream.c b/CoreFoundation/Parsing.subproj/CFXMLInputStream.c index 469cea8416..3b8c89976e 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInputStream.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInputStream.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLInputStream.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ diff --git a/CoreFoundation/Parsing.subproj/CFXMLInputStream.h b/CoreFoundation/Parsing.subproj/CFXMLInputStream.h index 61210399dd..c797a0f249 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInputStream.h +++ b/CoreFoundation/Parsing.subproj/CFXMLInputStream.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLInputStream.h - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFXMLINPUTSTREAM__) diff --git a/CoreFoundation/Parsing.subproj/CFXMLNode.c b/CoreFoundation/Parsing.subproj/CFXMLNode.c index 80ec2fc3f2..9ee42aea4f 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLNode.c +++ b/CoreFoundation/Parsing.subproj/CFXMLNode.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLNode.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ @@ -119,7 +114,7 @@ static CFHashCode __CFXMLNodeHash(CFTypeRef cf) { CFURLRef url = ((CFXMLDocumentInfo *)node->additionalData)->sourceURL; return url ? CFHash(url) : (CFHashCode)cf; } else { - CFAssert(false, __kCFLogAssertion, "%s(): Saw unexpected XML type code %d", __PRETTY_FUNCTION__, node->dataTypeID); + CFAssert2(false, __kCFLogAssertion, "%s(): Saw unexpected XML type code %ld", __PRETTY_FUNCTION__, node->dataTypeID); return CFHash(cf); } } @@ -191,7 +186,7 @@ static void __CFXMLNodeDeallocate(CFTypeRef cf) { break; } default: - CFAssert(false, __kCFLogAssertion, "%s(): Encountered unexpected typeID %d (additionalData should be empty)", node->dataTypeID); + CFAssert2(false, __kCFLogAssertion, "%s(): Encountered unexpected typeID %ld (additionalData should be empty)", __PRETTY_FUNCTION__, node->dataTypeID); } } } @@ -211,7 +206,7 @@ static const CFRuntimeClass __CFXMLNodeClass = { }; CFTypeID CFXMLNodeGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFXMLNodeTypeID = _CFRuntimeRegisterClass(&__CFXMLNodeClass); }); return __kCFXMLNodeTypeID; } @@ -299,7 +294,7 @@ static void _copyAddlDataForType(CFAllocatorRef alloc, CFXMLNodeTypeCode xmlType break; } default: - CFAssert(false, __kCFLogAssertion, "%s(): Encountered unexpected typeID %d (additionalData should be empty)", __PRETTY_FUNCTION__, xmlType); + CFAssert2(false, __kCFLogAssertion, "%s(): Encountered unexpected typeID %ld (additionalData should be empty)", __PRETTY_FUNCTION__, xmlType); } } diff --git a/CoreFoundation/Parsing.subproj/CFXMLNode.h b/CoreFoundation/Parsing.subproj/CFXMLNode.h index c3b41a2e9e..56e4b5ee60 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLNode.h +++ b/CoreFoundation/Parsing.subproj/CFXMLNode.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLNode.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /* CFXMLParser (and thus CFXMLNode) are deprecated as of Mac OS X 10.8 and iOS 6.0. The suggested replacements are the Foundation classes NSXMLParser and NSXMLDocument, or the libxml2 library. */ diff --git a/CoreFoundation/Parsing.subproj/CFXMLParser.c b/CoreFoundation/Parsing.subproj/CFXMLParser.c index ce934bc7a3..31381cadfe 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLParser.c +++ b/CoreFoundation/Parsing.subproj/CFXMLParser.c @@ -1,15 +1,5 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLParser.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. All rights reserved. Responsibility: David Smith */ @@ -77,13 +67,13 @@ static const CFRuntimeClass __CFXMLParserClass = { }; CFTypeID CFXMLParserGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFXMLParserTypeID = _CFRuntimeRegisterClass(&__CFXMLParserClass); }); return __kCFXMLParserTypeID; } void CFXMLParserGetContext(CFXMLParserRef parser, CFXMLParserContext *context) { - CFAssert(parser != NULL, __kCFLogAssertion, "%s(): NULL parser not permitted", __PRETTY_FUNCTION__); + CFAssert1(parser != NULL, __kCFLogAssertion, "%s(): NULL parser not permitted", __PRETTY_FUNCTION__); __CFGenericValidateType(parser, CFXMLParserGetTypeID()); if (context) { context->version = parser->context.version; @@ -151,8 +141,8 @@ CFStringRef CFXMLParserCopyErrorDescription(CFXMLParserRef parser) { void CFXMLParserAbort(CFXMLParserRef parser, CFXMLParserStatusCode errorCode, CFStringRef errorDescription) { __CFGenericValidateType(parser, CFXMLParserGetTypeID()); - CFAssert(errorCode > 0, __kCFLogAssertion, "%s(): errorCode must be greater than zero", __PRETTY_FUNCTION__); - CFAssert(errorDescription != NULL, __kCFLogAssertion, "%s(): errorDescription may not be NULL", __PRETTY_FUNCTION__); + CFAssert1(errorCode > 0, __kCFLogAssertion, "%s(): errorCode must be greater than zero", __PRETTY_FUNCTION__); + CFAssert1(errorDescription != NULL, __kCFLogAssertion, "%s(): errorDescription may not be NULL", __PRETTY_FUNCTION__); __CFGenericValidateType(errorDescription, CFStringGetTypeID()); parser->status = errorCode; @@ -238,20 +228,20 @@ static CFXMLParserRef __CFXMLParserInit(CFAllocatorRef alloc, CFURLRef dataSourc } CFXMLParserRef CFXMLParserCreate(CFAllocatorRef allocator, CFDataRef xmlData, CFURLRef dataSource, CFOptionFlags parseOptions, CFIndex versionOfNodes, CFXMLParserCallBacks *callBacks, CFXMLParserContext *context) { - CFAssert(xmlData != NULL, __kCFLogAssertion, "%s(): NULL data not permitted", __PRETTY_FUNCTION__); + CFAssert1(xmlData != NULL, __kCFLogAssertion, "%s(): NULL data not permitted", __PRETTY_FUNCTION__); __CFGenericValidateType(xmlData, CFDataGetTypeID()); - CFAssert(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); - CFAssert(callBacks != NULL && callBacks->createXMLStructure != NULL && callBacks->addChild != NULL && callBacks->endXMLStructure != NULL, __kCFLogAssertion, "%s(): callbacks createXMLStructure, addChild, and endXMLStructure must all be non-NULL", __PRETTY_FUNCTION__); - CFAssert(versionOfNodes <= 1, __kCFLogAssertion, "%s(): version number %d is higher than supported by CFXMLParser", __PRETTY_FUNCTION__, versionOfNodes); - CFAssert(versionOfNodes != 0, __kCFLogAssertion, "%s(): version number 0 is no longer supported by CFXMLParser", __PRETTY_FUNCTION__); + CFAssert1(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); + CFAssert1(callBacks != NULL && callBacks->createXMLStructure != NULL && callBacks->addChild != NULL && callBacks->endXMLStructure != NULL, __kCFLogAssertion, "%s(): callbacks createXMLStructure, addChild, and endXMLStructure must all be non-NULL", __PRETTY_FUNCTION__); + CFAssert2(versionOfNodes <= 1, __kCFLogAssertion, "%s(): version number %ld is higher than supported by CFXMLParser", __PRETTY_FUNCTION__, versionOfNodes); + CFAssert1(versionOfNodes != 0, __kCFLogAssertion, "%s(): version number 0 is no longer supported by CFXMLParser", __PRETTY_FUNCTION__); return __CFXMLParserInit(allocator, dataSource, parseOptions, xmlData, versionOfNodes, callBacks, context); } CFXMLParserRef CFXMLParserCreateWithDataFromURL(CFAllocatorRef allocator, CFURLRef dataSource, CFOptionFlags parseOptions, CFIndex versionOfNodes, CFXMLParserCallBacks *callBacks, CFXMLParserContext *context) { - CFAssert(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); - CFAssert(callBacks != NULL && callBacks->createXMLStructure != NULL && callBacks->addChild != NULL && callBacks->endXMLStructure != NULL, __kCFLogAssertion, "%s(): callbacks createXMLStructure, addChild, and endXMLStructure must all be non-NULL", __PRETTY_FUNCTION__); - CFAssert(versionOfNodes <= 1, __kCFLogAssertion, "%s(): version number %d is higher than supported by CFXMLParser", __PRETTY_FUNCTION__, versionOfNodes); - CFAssert(versionOfNodes != 0, __kCFLogAssertion, "%s(): version number 0 is no longer supported by CFXMLParser", __PRETTY_FUNCTION__); + CFAssert1(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); + CFAssert1(callBacks != NULL && callBacks->createXMLStructure != NULL && callBacks->addChild != NULL && callBacks->endXMLStructure != NULL, __kCFLogAssertion, "%s(): callbacks createXMLStructure, addChild, and endXMLStructure must all be non-NULL", __PRETTY_FUNCTION__); + CFAssert2(versionOfNodes <= 1, __kCFLogAssertion, "%s(): version number %ld is higher than supported by CFXMLParser", __PRETTY_FUNCTION__, versionOfNodes); + CFAssert1(versionOfNodes != 0, __kCFLogAssertion, "%s(): version number 0 is no longer supported by CFXMLParser", __PRETTY_FUNCTION__); return __CFXMLParserInit(allocator, dataSource, parseOptions, NULL, versionOfNodes, callBacks, context); } @@ -1593,13 +1583,6 @@ Boolean parseAttributes(CFXMLParserRef parser) { CFMutableDictionaryRef dict; CFMutableArrayRef array; Boolean failure = false; - if (_inputStreamPeekCharacter(&parser->input, &ch) && ch == '>') { - if (parser->argDict) { - CFDictionaryRemoveAllValues(parser->argDict); - CFArrayRemoveAllValues(parser->argArray); - } - return true; // No attributes; let caller deal with it - } if (!parser->argDict) { parser->argDict = CFDictionaryCreateMutable(CFGetAllocator(parser), 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); parser->argArray = CFArrayCreateMutable(CFGetAllocator(parser), 0, &kCFTypeArrayCallBacks); @@ -1792,7 +1775,7 @@ CFXMLTreeRef CFXMLTreeCreateWithDataFromURL(CFAllocatorRef allocator, CFURLRef d CFXMLParserCallBacks callbacks; CFXMLTreeRef result; - CFAssert(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); + CFAssert1(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); callbacks.createXMLStructure = _XMLTreeCreateXMLStructure; callbacks.addChild = _XMLTreeAddChild; @@ -1827,7 +1810,7 @@ CFXMLTreeRef CFXMLTreeCreateFromDataWithError(CFAllocatorRef allocator, CFDataRe CFXMLTreeRef result; __CFGenericValidateType(xmlData, CFDataGetTypeID()); - CFAssert(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); + CFAssert1(dataSource == NULL || CFGetTypeID(dataSource) == CFURLGetTypeID(), __kCFLogAssertion, "%s(): dataSource is not a valid CFURL", __PRETTY_FUNCTION__); callbacks.createXMLStructure = _XMLTreeCreateXMLStructure; callbacks.addChild = _XMLTreeAddChild; @@ -1887,7 +1870,7 @@ CFXMLTreeRef CFXMLTreeCreateFromDataWithError(CFAllocatorRef allocator, CFDataRe We should also be handling items that are up over certain values correctly. */ CFStringRef CFXMLCreateStringByEscapingEntities(CFAllocatorRef allocator, CFStringRef string, CFDictionaryRef entitiesDictionary) { - CFAssert(string != NULL, __kCFLogAssertion, "%s(): NULL string not permitted.", __PRETTY_FUNCTION__); + CFAssert1(string != NULL, __kCFLogAssertion, "%s(): NULL string not permitted.", __PRETTY_FUNCTION__); CFMutableStringRef newString = CFStringCreateMutable(allocator, 0); // unbounded mutable string CFMutableCharacterSetRef startChars = CFCharacterSetCreateMutable(allocator); @@ -1938,7 +1921,7 @@ CFStringRef CFXMLCreateStringByEscapingEntities(CFAllocatorRef allocator, CFStri } CFStringRef CFXMLCreateStringByUnescapingEntities(CFAllocatorRef allocator, CFStringRef string, CFDictionaryRef entitiesDictionary) { - CFAssert(string != NULL, __kCFLogAssertion, "%s(): NULL string not permitted.", __PRETTY_FUNCTION__); + CFAssert1(string != NULL, __kCFLogAssertion, "%s(): NULL string not permitted.", __PRETTY_FUNCTION__); CFStringInlineBuffer inlineBuf; /* use this for fast traversal of the string in question */ CFStringRef sub; diff --git a/CoreFoundation/Parsing.subproj/CFXMLParser.h b/CoreFoundation/Parsing.subproj/CFXMLParser.h index 50a7850f34..e5483b7c78 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLParser.h +++ b/CoreFoundation/Parsing.subproj/CFXMLParser.h @@ -1,15 +1,5 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLParser.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. All rights reserved. */ /* CFXMLParser is deprecated as of Mac OS X 10.8. The suggested replacements are the Foundation classes NSXMLParser and NSXMLDocument, or the libxml2 library. */ diff --git a/CoreFoundation/Parsing.subproj/CFXMLTree.c b/CoreFoundation/Parsing.subproj/CFXMLTree.c index f25ead1c9a..18f0602cc8 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLTree.c +++ b/CoreFoundation/Parsing.subproj/CFXMLTree.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFXMLTree.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ @@ -225,7 +220,7 @@ static void _CFAppendXMLProlog(CFMutableStringRef str, const CFXMLTreeRef tree) break; } default: - CFAssert(false, __kCFLogAssertion, "Encountered unexpected XMLDataTypeID %d", CFXMLNodeGetTypeCode(CFXMLTreeGetNode(tree))); + CFAssert1(false, __kCFLogAssertion, "Encountered unexpected XMLDataTypeID %ld", CFXMLNodeGetTypeCode(CFXMLTreeGetNode(tree))); } } diff --git a/CoreFoundation/PlugIn.subproj/CFBundle.c b/CoreFoundation/PlugIn.subproj/CFBundle.c index 0620c6b8e2..84408cc555 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -28,10 +23,6 @@ #include #include -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD -#else -#error Unknown deployment target -#endif #if defined(BINARY_SUPPORT_DYLD) #include @@ -116,6 +107,8 @@ CONST_STRING_DECL(_kCFBundleOldTypeExtensions2Key, "NSDOSExtensions") CONST_STRING_DECL(_kCFBundleOldTypeOSTypesKey, "NSMacOSType") // Internally used keys for loaded Info plists. +CONST_STRING_DECL(_kCFBundleInfoPlistURLKey, "CFBundleInfoPlistURL") +CONST_STRING_DECL(_kCFBundleRawInfoPlistURLKey, "CFBundleRawInfoPlistURL") CONST_STRING_DECL(_kCFBundleNumericVersionKey, "CFBundleNumericVersion") CONST_STRING_DECL(_kCFBundleExecutablePathKey, "CFBundleExecutablePath") CONST_STRING_DECL(_kCFBundleResourcesFileMappedKey, "CSResourcesFileMapped") @@ -149,9 +142,35 @@ static void _CFBundleEnsureBundlesExistForImagePaths(CFArrayRef imagePaths); #pragma mark - + +CF_PRIVATE os_log_t _CFBundleResourceLogger(void) { + static os_log_t _log; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _log = os_log_create("com.apple.CFBundle", "resources"); + }); + return _log; +} + +CF_PRIVATE os_log_t _CFBundleLocalizedStringLogger(void) { + static os_log_t _log; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _log = os_log_create("com.apple.CFBundle", "strings"); + }); + return _log; +} + +#pragma mark - + +#if DEPLOYMENT_TARGET_MACOSX +// Some apps may rely on the fact that CFBundle used to allow bundle objects to be deallocated (despite handing out unretained pointers via CFBundleGetBundleWithIdentifier or CFBundleGetAllBundles). To remain compatible even in the face of unsafe behavior, we can optionally use unsafe-unretained memory management for holding on to bundles. static Boolean _useUnsafeUnretainedTables(void) { return false; } +#endif + + @@ -576,7 +595,7 @@ static void _CFBundleInitializeMainBundleInfoDictionaryAlreadyLocked(CFStringRef } #if defined(BINARY_SUPPORT_DYLD) if (_mainBundle->_binaryType == __CFBundleDYLDExecutableBinary) { - if (_mainBundle->_infoDict && !(0)) CFRelease(_mainBundle->_infoDict); + if (_mainBundle->_infoDict) CFRelease(_mainBundle->_infoDict); _mainBundle->_infoDict = (CFDictionaryRef)_CFBundleCreateInfoDictFromMainExecutable(); } #endif /* BINARY_SUPPORT_DYLD */ @@ -617,6 +636,10 @@ static void _CFBundleFlushBundleCachesAlreadyLocked(CFBundleRef bundle, Boolean CFRelease(bundle->_localInfoDict); bundle->_localInfoDict = NULL; } + if (bundle->_infoPlistUrl) { + CFRelease(bundle->_infoPlistUrl); + bundle->_infoPlistUrl = NULL; + } if (bundle->_developmentRegion) { CFRelease(bundle->_developmentRegion); bundle->_developmentRegion = NULL; @@ -751,11 +774,14 @@ CFBundleRef CFBundleGetBundleWithIdentifier(CFStringRef bundleID) { _CFBundleEnsureBundlesUpToDateWithHintAlreadyLocked(bundleID); result = _CFBundlePrimitiveGetBundleWithIdentifierAlreadyLocked(bundleID); } - if (!result) { - // Make sure all bundles have been created and try again. - _CFBundleEnsureAllBundlesUpToDateAlreadyLocked(); - result = _CFBundlePrimitiveGetBundleWithIdentifierAlreadyLocked(bundleID); - } + pthread_mutex_unlock(&CFBundleGlobalDataLock); + } + + if (!result) { + pthread_mutex_lock(&CFBundleGlobalDataLock); + // Make sure all bundles have been created and try again. + _CFBundleEnsureAllBundlesUpToDateAlreadyLocked(); + result = _CFBundlePrimitiveGetBundleWithIdentifierAlreadyLocked(bundleID); pthread_mutex_unlock(&CFBundleGlobalDataLock); } @@ -818,9 +844,9 @@ static void __CFBundleDeallocate(CFTypeRef cf) { if (bundleURL) { CFRelease(bundleURL); } - if (bundle->_infoDict && !(0)) CFRelease(bundle->_infoDict); + if (bundle->_infoDict) CFRelease(bundle->_infoDict); if (bundle->_modDate) CFRelease(bundle->_modDate); - if (bundle->_localInfoDict && !(0)) CFRelease(bundle->_localInfoDict); + if (bundle->_localInfoDict) CFRelease(bundle->_localInfoDict); if (bundle->_searchLanguages) CFRelease(bundle->_searchLanguages); if (bundle->_executablePath) CFRelease(bundle->_executablePath); if (bundle->_developmentRegion) CFRelease(bundle->_developmentRegion); @@ -859,7 +885,7 @@ static const CFRuntimeClass __CFBundleClass = { CF_PRIVATE void _CFBundleResourcesInitialize(); CFTypeID CFBundleGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFBundleTypeID = _CFRuntimeRegisterClass(&__CFBundleClass); _CFBundleResourcesInitialize(); }); return __kCFBundleTypeID; } @@ -944,6 +970,7 @@ static CFBundleRef _CFBundleCreate(CFAllocatorRef allocator, CFURLRef bundleURL, bundle->_searchLanguages = NULL; bundle->_executablePath = NULL; bundle->_developmentRegion = NULL; + bundle->_infoPlistUrl = NULL; bundle->_developmentRegionCalculated = 0; #if defined(BINARY_SUPPORT_DYLD) /* We'll have to figure it out later */ @@ -1623,7 +1650,7 @@ static CFURLRef _CFBundleCopyExecutableURLInDirectory2(CFBundleRef bundle, CFURL if (lookupMainExe) CFRelease(executableName); } } - if (!bundle && infoDict && !(0)) CFRelease(infoDict); + if (!bundle && infoDict) CFRelease(infoDict); return executableURL; } @@ -2375,7 +2402,7 @@ CF_EXPORT CFURLRef CFBundleCopySharedSupportURL(CFBundleRef bundle) { return result; } -CF_EXPORT CFURLRef _CFBundleCopyBuiltInPlugInsURL(CFBundleRef bundle) { +CF_PRIVATE CFURLRef _CFBundleCopyBuiltInPlugInsURL(CFBundleRef bundle) { return CFBundleCopyBuiltInPlugInsURL(bundle); } diff --git a/CoreFoundation/PlugIn.subproj/CFBundle.h b/CoreFoundation/PlugIn.subproj/CFBundle.h index d58c531ae8..b1be87c716 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle.h +++ b/CoreFoundation/PlugIn.subproj/CFBundle.h @@ -1,15 +1,5 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. All rights reserved. */ #if !defined(__COREFOUNDATION_CFBUNDLE__) diff --git a/CoreFoundation/PlugIn.subproj/CFBundlePriv.h b/CoreFoundation/PlugIn.subproj/CFBundlePriv.h index 27d74f52d8..c0549463a5 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundlePriv.h +++ b/CoreFoundation/PlugIn.subproj/CFBundlePriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundlePriv.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBUNDLEPRIV__) @@ -246,6 +241,12 @@ Boolean _CFBundleGetStringsFilesShared(CFBundleRef bundle); CF_EXPORT CFURLRef _CFBundleCopyFrameworkURLForExecutablePath(CFStringRef executablePath); +#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) +#include +CF_EXPORT +void _CFBundleSetupXPCBootstrap(xpc_object_t bootstrap) CF_AVAILABLE(10_10, 8_0); +#endif + /* Functions deprecated as SPI */ CF_EXPORT diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Binary.c b/CoreFoundation/PlugIn.subproj/CFBundle_Binary.c index 3ce060aa02..0329d8a8c0 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Binary.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Binary.c @@ -1,21 +1,16 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Binary.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ #include "CFBundle_Internal.h" -#if defined(BINARY_SUPPORT_DYLD) +#if BINARY_SUPPORT_DYLD // Import the mach-o headers that define the macho magic numbers #include #include @@ -31,22 +26,22 @@ #endif /* USE_DYLD_PRIV */ #endif /* BINARY_SUPPORT_DYLD */ -#if defined(BINARY_SUPPORT_DLFCN) +#if BINARY_SUPPORT_DLFCN #include #ifndef RTLD_FIRST #define RTLD_FIRST 0 #endif #endif /* BINARY_SUPPORT_DLFCN */ -#if defined(BINARY_SUPPORT_DYLD) +#if BINARY_SUPPORT_DYLD static CFStringRef _CFBundleDYLDCopyLoadedImagePathForPointer(void *p); -#if !defined(BINARY_SUPPORT_DLFCN) +#if !BINARY_SUPPORT_DLFCN static void *_CFBundleDYLDGetSymbolByNameWithSearch(CFBundleRef bundle, CFStringRef symbolName, Boolean globalSearch); #endif /* !BINARY_SUPPORT_DLFCN */ #endif /* BINARY_SUPPORT_DYLD */ -#if defined(BINARY_SUPPORT_DLFCN) +#if BINARY_SUPPORT_DLFCN static void *_CFBundleDlfcnGetSymbolByNameWithSearch(CFBundleRef bundle, CFStringRef symbolName, Boolean globalSearch); -#if !defined(BINARY_SUPPORT_DYLD) +#if !BINARY_SUPPORT_DYLD static CFStringRef _CFBundleDlfcnCopyLoadedImagePathForPointer(void *p); #endif /* !BINARY_SUPPORT_DYLD */ #endif /* BINARY_SUPPORT_DLFCN */ @@ -69,7 +64,7 @@ CF_PRIVATE SInt32 _CFBundleCurrentArchitecture(void) { return arch; } -#if defined(BINARY_SUPPORT_DYLD) +#if BINARY_SUPPORT_DYLD CF_PRIVATE CFArrayRef _CFBundleDYLDCopyLoadedImagePathsForHint(CFStringRef hint) { uint32_t i, numImages = _dyld_image_count(); diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_BinaryTypes.h b/CoreFoundation/PlugIn.subproj/CFBundle_BinaryTypes.h index 162b4fe227..716ff52f29 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_BinaryTypes.h +++ b/CoreFoundation/PlugIn.subproj/CFBundle_BinaryTypes.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_BinaryTypes.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBUNDLE_BINARYTYPES__) @@ -20,7 +15,11 @@ CF_EXTERN_C_BEGIN #if DEPLOYMENT_TARGET_MACOSX #define BINARY_SUPPORT_DYLD 1 #define BINARY_SUPPORT_DLFCN 1 +#if DEPLOYMENT_RUNTIME_SWIFT #define USE_DYLD_PRIV 0 +#else +#define USE_DYLD_PRIV 1 +#endif #elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI #define BINARY_SUPPORT_DYLD 1 #define BINARY_SUPPORT_DLFCN 1 diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Grok.c b/CoreFoundation/PlugIn.subproj/CFBundle_Grok.c index 24b6194474..4c4fec2bfe 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Grok.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Grok.c @@ -1,21 +1,16 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Grok.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ #include "CFBundle_Internal.h" -#if defined(BINARY_SUPPORT_DYLD) +#if BINARY_SUPPORT_DYLD // Import the mach-o headers that define the macho magic numbers #include #include @@ -32,7 +27,7 @@ #include #include -#if defined(BINARY_SUPPORT_DLFCN) +#if BINARY_SUPPORT_DLFCN #include #endif /* BINARY_SUPPORT_DLFCN */ diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_InfoPlist.c b/CoreFoundation/PlugIn.subproj/CFBundle_InfoPlist.c index 07e184812d..a9ef705ccc 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_InfoPlist.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_InfoPlist.c @@ -1,20 +1,12 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - -// -// CFBundle_InfoPlist.c -// CoreFoundation -// -// Created by Tony Parker on 5/30/12. -// -// +/* CFBundle_InfoPlist.c + Copyright (c) 2012-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: Tony Parker + */ #include #include @@ -27,9 +19,7 @@ #if TARGET_OS_CYGWIN #else #include -#if __has_include() #include -#endif #include #endif #endif @@ -96,9 +86,12 @@ CF_EXPORT void _CFSetProductName(CFStringRef str) { CF_EXPORT CFStringRef _CFGetProductName(void) { #if DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI if (!_cfBundlePlatform) { - const char *isClassic = __CFgetenv("CLASSIC"); - if (isClassic && strnlen(isClassic, 1) >= 1 && isClassic[0] == '1') { - _cfBundlePlatform = CFSTR("iphone"); + // We only honor the classic suffix if it is one of two preset values. Otherwise we fall back to the result of sysctlbyname. + const char *classicSuffix = __CFgetenv("CLASSIC_SUFFIX"); + if (classicSuffix && strncmp(classicSuffix, "iphone", strlen("iphone")) == 0) { + _cfBundlePlatform = CFSTR("iphone"); + } else if (classicSuffix && strncmp(classicSuffix, "ipad", strlen("ipad")) == 0) { + _cfBundlePlatform = CFSTR("ipad"); } else { char buffer[256]; memset(buffer, 0, sizeof(buffer)); @@ -112,17 +105,17 @@ CF_EXPORT CFStringRef _CFGetProductName(void) { } else if (4 <= buflen && 0 == memcmp(buffer, "iPad", 4)) { _cfBundlePlatform = CFSTR("ipad"); } else { - const char *env = __CFgetenv("IPHONE_SIMULATOR_DEVICE"); + const char *env = __CFgetenv("SIMULATOR_LEGACY_ASSET_SUFFIX"); if (env) { - if (0 == strcmp(env, "iPhone")) { + if (0 == strcmp(env, "iphone")) { _cfBundlePlatform = CFSTR("iphone"); - } else if (0 == strcmp(env, "iPad")) { + } else if (0 == strcmp(env, "ipad")) { _cfBundlePlatform = CFSTR("ipad"); } else { - // fallback, unrecognized IPHONE_SIMULATOR_DEVICE + // fallback, unrecognized SIMULATOR_LEGACY_ASSET_SUFFIX } } else { - // fallback, unrecognized hw.machine and no IPHONE_SIMULATOR_DEVICE + // fallback, unrecognized hw.machine and no SIMULATOR_LEGACY_ASSET_SUFFIX } } } @@ -296,16 +289,16 @@ static Boolean _isOverrideKey(CFStringRef fullKey, CFStringRef *outBaseKey, CFSt if (outPlatformSuffix) { *outPlatformSuffix = platform; } else { - if (platform && !(0)) CFRelease(platform); + if (platform) CFRelease(platform); } if (outProductSuffix) { *outProductSuffix = product; } else { - if (product && !(0)) CFRelease(product); + if (product) CFRelease(product); } } else { - if (platform && !(0)) CFRelease(platform); - if (product && !(0)) CFRelease(product); + if (platform) CFRelease(platform); + if (product) CFRelease(product); } return result; } @@ -441,12 +434,13 @@ CF_PRIVATE CFDictionaryRef _CFBundleCopyInfoDictionaryInDirectory(CFAllocatorRef return dict; } +// If infoPlistUrl is passed as non-null it will return retained as the out parameter; callers are responsible for releasing. CF_PRIVATE CFDictionaryRef _CFBundleCopyInfoDictionaryInDirectoryWithVersion(CFAllocatorRef alloc, CFURLRef url, CFURLRef * infoPlistUrl, uint8_t version) { // We only return NULL for a bad URL, otherwise we create a dummy dictionary if (!url) return NULL; - - CFDictionaryRef result = NULL; - + + CFDictionaryRef result = NULL; + // We're going to search for two files here - Info.plist and Info-macos.plist (platform specific). The platform-specific one takes precedence. // First, construct the URL to the directory we'll search by using the passed in URL as a base CFStringRef platformInfoURLFromBase = _CFBundlePlatformInfoURLFromBase0; @@ -483,10 +477,10 @@ CF_PRIVATE CFDictionaryRef _CFBundleCopyInfoDictionaryInDirectoryWithVersion(CFA absoluteURL = CFURLCopyAbsoluteURL(directoryURL); CFStringRef directoryPath = CFURLCopyFileSystemPath(absoluteURL, PLATFORM_PATH_STYLE); CFRelease(absoluteURL); - + __block CFURLRef localInfoPlistURL = NULL; __block CFURLRef platformInfoPlistURL = NULL; - + if (directoryPath) { CFIndex infoPlistLength = CFStringGetLength(_CFBundleInfoPlistName); CFIndex platformInfoPlistLength = CFStringGetLength(_CFBundlePlatformInfoPlistName); @@ -551,11 +545,9 @@ CF_PRIVATE CFDictionaryRef _CFBundleCopyInfoDictionaryInDirectoryWithVersion(CFA } } else if (error) { // Avoid calling out from CFError (which can cause infinite recursion) by grabbing some of the vital info and printing it ourselves - CFDictionaryRef userInfo = CFErrorCopyUserInfo(error); CFStringRef domain = CFErrorGetDomain(error); CFIndex code = CFErrorGetCode(error); - CFLog(kCFLogLevelError, CFSTR("There was an error parsing the Info.plist for the bundle at URL %@\n %@ - %ld\n %@"), localInfoPlistURL, domain, code, userInfo); - if (userInfo) CFRelease(userInfo); + CFLog(kCFLogLevelError, CFSTR("There was an error parsing the Info.plist for the bundle at URL <%p>: %@ - %ld"), localInfoPlistURL, domain, code); CFRelease(error); } @@ -578,10 +570,10 @@ CF_PRIVATE CFDictionaryRef _CFBundleCopyInfoDictionaryInDirectoryWithVersion(CFA if (!result) { result = CFDictionaryCreateMutable(alloc, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } - + // process ~ipad, ~iphone, etc. _CFBundleInfoPlistProcessInfoDictionary((CFMutableDictionaryRef)result); - + return result; } @@ -657,7 +649,7 @@ static Boolean _CFBundleGetPackageInfoInDirectoryWithInfoDictionary(CFAllocatorR if (packageCreator) *packageCreator = CFSwapInt32BigToHost(tmp); retVal = hasCreator = true; } - if (releaseInfoDict && !(0)) CFRelease(infoDict); + if (releaseInfoDict) CFRelease(infoDict); } } if (!hasType || !hasCreator) { @@ -759,9 +751,12 @@ static void _CFBundleInfoPlistFixupInfoDictionary(CFBundleRef bundle, CFMutableD CFDictionaryRef CFBundleGetInfoDictionary(CFBundleRef bundle) { __CFLock(&bundle->_lock); if (!bundle->_infoDict) { - CFURLRef infoPlistUrl; + CFURLRef infoPlistUrl = NULL; bundle->_infoDict = _CFBundleCopyInfoDictionaryInDirectoryWithVersion(kCFAllocatorSystemDefault, bundle->_url, &infoPlistUrl, bundle->_version); - bundle->_infoPlistUrl = infoPlistUrl; + if (bundle->_infoPlistUrl) { + CFRelease(bundle->_infoPlistUrl); + } + bundle->_infoPlistUrl = infoPlistUrl; // transfered as retained // Add or fixup any keys that will be expected later if (bundle->_infoDict) _CFBundleInfoPlistFixupInfoDictionary(bundle, (CFMutableDictionaryRef)bundle->_infoDict); @@ -950,6 +945,9 @@ CF_EXPORT CFPropertyListRef _CFBundleCreateFilteredLocalizedInfoPlist(CFBundleRe } CF_EXPORT CFURLRef _CFBundleCopyInfoPlistURL(CFBundleRef bundle) { + __CFLock(&bundle->_lock); CFURLRef url = bundle->_infoPlistUrl; - return (url ? (CFURLRef) CFRetain(url) : NULL); + CFURLRef result = (url ? (CFURLRef) CFRetain(url) : NULL); + __CFUnlock(&bundle->_lock); + return result; } diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h b/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h index 67e8668449..3cab577f8b 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Internal.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Internal.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBUNDLE_INTERNAL__) @@ -45,9 +40,6 @@ CF_EXTERN_C_BEGIN CF_INLINE uint32_t _CFBundleSwapInt32Conditional(uint32_t arg, Boolean swap) {return swap ? CFSwapInt32(arg) : arg;} CF_INLINE uint32_t _CFBundleSwapInt64Conditional(uint64_t arg, Boolean swap) {return swap ? CFSwapInt64(arg) : arg;} -// uncomment this to enable the checking for 8302591 -//#define CFBUNDLE_NO_TRAVERSE_OUTSIDE - typedef struct __CFResourceData { Boolean _executableLacksResourceFork; Boolean _infoDictionaryFromResourceFork; @@ -71,8 +63,8 @@ struct __CFBundle { CFURLRef _url; CFDateRef _modDate; - __strong CFDictionaryRef _infoDict; - __strong CFDictionaryRef _localInfoDict; + CFDictionaryRef _infoDict; + CFDictionaryRef _localInfoDict; CFArrayRef _searchLanguages; __CFPBinaryType _binaryType; @@ -129,6 +121,9 @@ struct __CFBundle { }; +CF_PRIVATE os_log_t _CFBundleResourceLogger(void); +CF_PRIVATE os_log_t _CFBundleLocalizedStringLogger(void); + extern _CFPlugInData *__CFBundleGetPlugInData(CFBundleRef bundle); /* Private CFBundle API */ @@ -244,7 +239,6 @@ extern void _CFPlugInRemovePlugInInstance(CFPlugInRef plugIn); extern void _CFPlugInAddFactory(CFPlugInRef plugIn, _CFPFactoryRef factory); extern void _CFPlugInRemoveFactory(CFPlugInRef plugIn, _CFPFactoryRef factory); - /* Strings for parsing bundle structure */ #define _CFBundleSupportFilesDirectoryName1 CFSTR("Support Files") #define _CFBundleSupportFilesDirectoryName2 CFSTR("Contents") diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c b/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c index fe595933c2..6e3d7567ea 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c @@ -1,21 +1,17 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Locale.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ #include "CFBundle_Internal.h" #include + #if __HAS_APPLE_ICU__ #include #else @@ -663,6 +659,7 @@ static CFStringRef _CFBundleCopyLanguageFoundInLocalizations(CFArrayRef localiza // Given a list of localizations (e.g., provided as argument to API, or present as .lproj directories), return a mutable array of localizations in preferred order. Returns NULL if nothing is found. static CFMutableArrayRef _CFBundleCreateMutableArrayOfFallbackLanguages(CFArrayRef availableLocalizations, CFArrayRef preferredLocalizations) { + // stringPointers must be the length of list char * (^makeBuffer)(CFArrayRef, char **) = ^(CFArrayRef list, char *stringPointers[]) { #if !__HAS_APPLE_ICU__ diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Resources.c b/CoreFoundation/PlugIn.subproj/CFBundle_Resources.c index 57ad89127f..b82ec828f4 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Resources.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Resources.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Resources.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -30,12 +25,9 @@ #include #include - #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX #include -#if __has_include() #include -#endif #include #include #endif @@ -1112,7 +1104,45 @@ static CFTypeRef _copyResourceURLsFromBundle(CFBundleRef bundle, CFURLRef bundle // Another idea: if you want caching, you should create a bundle object. Otherwise we'll happily readdir each time. CF_EXPORT CFTypeRef _CFBundleCopyFindResources(CFBundleRef bundle, CFURLRef bundleURL, CFArrayRef _unused_pass_null_, CFStringRef resourceName, CFStringRef resourceType, CFStringRef subPath, CFStringRef lproj, Boolean returnArray, Boolean localized, Boolean (^predicate)(CFStringRef filename, Boolean *stop)) { - + CFTypeRef returnValue = NULL; + + if ( + subPath) { + int depthLevel = 0; + CFArrayRef subPathComponents = CFStringCreateArrayBySeparatingStrings(kCFAllocatorSystemDefault, subPath, CFSTR("/")); + CFIndex subPathComponentsCount = CFArrayGetCount(subPathComponents); + + for (int i = 0; i < subPathComponentsCount; i++) { + CFStringRef comp = CFArrayGetValueAtIndex(subPathComponents, i); + + if (i == 0 && (CFStringCompare(comp, CFSTR(""), 0) == kCFCompareEqualTo)) { + continue; + } + + if (CFStringCompare(comp, CFSTR("."), 0) == kCFCompareEqualTo) { + continue; + } + + if (CFStringCompare(comp, CFSTR(".."), 0) == kCFCompareEqualTo) { + depthLevel--; + } else { + depthLevel++; + } + + if(depthLevel < 0) { + break; + } + } + CFRelease(subPathComponents); + + if (depthLevel < 0) { + if (returnArray) { + returnValue = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); + } + return returnValue; + } + } + // Don't use any path info passed into the resource name CFStringRef realResourceName = NULL; CFStringRef subPathFromResourceName = NULL; @@ -1185,7 +1215,7 @@ CF_EXPORT CFTypeRef _CFBundleCopyFindResources(CFBundleRef bundle, CFURLRef bund CFStringRef resDir = _CFBundleGetResourceDirForVersion(bundleVersion); // if returnArray is true then this function will always return a CFArrayRef, even if it's empty - CFTypeRef returnValue = _copyResourceURLsFromBundle(bundle, bundleURL, bundleURLLanguages, resDir, realSubdirectory, key, lproj, returnArray, localized, bundleVersion, predicate); + returnValue = _copyResourceURLsFromBundle(bundle, bundleURL, bundleURLLanguages, resDir, realSubdirectory, key, lproj, returnArray, localized, bundleVersion, predicate); if ((!returnValue || (CFGetTypeID(returnValue) == CFArrayGetTypeID() && CFArrayGetCount((CFArrayRef)returnValue) == 0)) && (0 == bundleVersion || 2 == bundleVersion)) { CFStringRef bundlePath = NULL; @@ -1258,7 +1288,7 @@ CF_EXPORT CFTypeRef _CFBundleCopyFindResources(CFBundleRef bundle, CFURLRef bund // If we were building up a newResult array, replace the returnValue with it if (combinedResultFromOtherBundles) { - CFRelease(returnValue); + if (returnValue) { CFRelease(returnValue); } returnValue = combinedResultFromOtherBundles; } diff --git a/CoreFoundation/PlugIn.subproj/CFBundle_Strings.c b/CoreFoundation/PlugIn.subproj/CFBundle_Strings.c index 9d60876188..1764032b5e 100644 --- a/CoreFoundation/PlugIn.subproj/CFBundle_Strings.c +++ b/CoreFoundation/PlugIn.subproj/CFBundle_Strings.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBundle_Strings.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -77,11 +72,11 @@ static CFStringRef _copyStringFromTable(CFBundleRef bundle, CFStringRef tableNam CFRelease(tableData); if (stringsTable && CFDictionaryGetTypeID() != CFGetTypeID(stringsTable)) { - CFLog(kCFLogLevelError, CFSTR("Unable to load .strings file: %@ / %@: Top-level object was not a dictionary"), bundle, tableName); + os_log_error(_CFBundleLocalizedStringLogger(), "Unable to load .strings file: %@ / %@: Top-level object was not a dictionary", bundle, tableName); CFRelease(stringsTable); stringsTable = NULL; } else if (!stringsTable && error) { - CFLog(kCFLogLevelError, CFSTR("Unable to load .strings file: %@ / %@: %@"), bundle, tableName, error); + os_log_error(_CFBundleLocalizedStringLogger(), "Unable to load .strings file: %@ / %@: %@", bundle, tableName, error); CFRelease(error); error = NULL; } @@ -98,11 +93,11 @@ static CFStringRef _copyStringFromTable(CFBundleRef bundle, CFStringRef tableNam CFRelease(tableData); if (stringsDictTable && CFDictionaryGetTypeID() != CFGetTypeID(stringsDictTable)) { - CFLog(kCFLogLevelError, CFSTR("Unable to load .stringsdict file: %@ / %@: Top-level object was not a dictionary"), bundle, tableName); + os_log_error(_CFBundleLocalizedStringLogger(), "Unable to load .stringsdict file: %@ / %@: Top-level object was not a dictionary", bundle, tableName); CFRelease(stringsDictTable); stringsDictTable = NULL; } else if (!stringsDictTable && error) { - CFLog(kCFLogLevelError, CFSTR("Unable to load .stringsdict file: %@ / %@: %@"), bundle, tableName, error); + os_log_error(_CFBundleLocalizedStringLogger(), "Unable to load .stringsdict file: %@ / %@: %@", bundle, tableName, error); CFRelease(error); error = NULL; } @@ -117,6 +112,8 @@ static CFStringRef _copyStringFromTable(CFBundleRef bundle, CFStringRef tableNam // Start from scratch with the stringsdict mutableStringsDictTable = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } + + CFRelease(stringsDictTable); if (stringsTable) CFRelease(stringsTable); stringsTable = mutableStringsDictTable; @@ -129,6 +126,7 @@ static CFStringRef _copyStringFromTable(CFBundleRef bundle, CFStringRef tableNam // Last resort: create an empty table if (!stringsTable) { + os_log_debug(_CFBundleLocalizedStringLogger(), "Hit last resort and creating empty strings table"); stringsTable = CFDictionaryCreate(CFGetAllocator(bundle), NULL, NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } @@ -158,7 +156,7 @@ static CFStringRef _copyStringFromTable(CFBundleRef bundle, CFStringRef tableNam } CF_EXPORT CFStringRef CFBundleCopyLocalizedStringForLocalization(CFBundleRef bundle, CFStringRef key, CFStringRef value, CFStringRef tableName, CFStringRef localizationName) { - if (!key) return (value ? (CFStringRef)CFRetain(value) : (CFStringRef)CFRetain(CFSTR(""))); + if (!key) { return (value ? (CFStringRef)CFRetain(value) : (CFStringRef)CFRetain(CFSTR(""))); } // Make sure to check the mixed localizations key early -- if the main bundle has not yet been cached, then we need to create the cache of the Info.plist before we start asking for resources (11172381) (void)CFBundleAllowMixedLocalizations(); @@ -178,13 +176,13 @@ CF_EXPORT CFStringRef CFBundleCopyLocalizedStringForLocalization(CFBundleRef bun static Boolean capitalize = false; if (capitalize) { CFMutableStringRef capitalizedResult = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, result); - CFLog(__kCFLogBundle, CFSTR("Localizable string \"%@\" not found in strings table \"%@\" of bundle %@."), key, tableName, bundle); + os_log_error(_CFBundleLocalizedStringLogger(), "ERROR: %@ not found in table %@ of bundle %@", key, tableName, bundle); CFStringUppercase(capitalizedResult, NULL); CFRelease(result); result = capitalizedResult; } } - + os_log_debug(_CFBundleLocalizedStringLogger(), "Bundle: %{private}@, key: %{public}@, value: %{public}@, table: %{public}@, localizationName: %{public}@, result: %{public}@", bundle, key, value, tableName, localizationName, result); return result; } diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn.c b/CoreFoundation/PlugIn.subproj/CFPlugIn.c index 911c24d202..b9b29882a7 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn.c +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn.h b/CoreFoundation/PlugIn.subproj/CFPlugIn.h index 390b48c8f1..9c2fdda4bc 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn.h +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFPLUGIN__) diff --git a/CoreFoundation/PlugIn.subproj/CFPlugInCOM.h b/CoreFoundation/PlugIn.subproj/CFPlugInCOM.h index 216cce2dcc..0231b88dd9 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugInCOM.h +++ b/CoreFoundation/PlugIn.subproj/CFPlugInCOM.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugInCOM.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFPLUGINCOM__) diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.c b/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.c index f509005014..9e026f1df6 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.c +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn_Factory.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -49,7 +44,7 @@ static const CFRuntimeClass __CFPFactoryClass = { }; CF_PRIVATE void __CFPFactoryInitialize(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFPFactoryTypeID = _CFRuntimeRegisterClass(&__CFPFactoryClass); }); } diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.h b/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.h index 529505192f..70e0735e41 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.h +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn_Factory.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn_Factory.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFPLUGIN_FACTORY__) diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn_Instance.c b/CoreFoundation/PlugIn.subproj/CFPlugIn_Instance.c index 36c07abc3c..afd647a697 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn_Instance.c +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn_Instance.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn_Instance.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -67,7 +62,7 @@ static const CFRuntimeClass __CFPlugInInstanceClass = { }; CFTypeID CFPlugInInstanceGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFPlugInInstanceTypeID = _CFRuntimeRegisterClass(&__CFPlugInInstanceClass); }); return __kCFPlugInInstanceTypeID; } diff --git a/CoreFoundation/PlugIn.subproj/CFPlugIn_PlugIn.c b/CoreFoundation/PlugIn.subproj/CFPlugIn_PlugIn.c index 79fb8559a2..7c2f7ef5b2 100644 --- a/CoreFoundation/PlugIn.subproj/CFPlugIn_PlugIn.c +++ b/CoreFoundation/PlugIn.subproj/CFPlugIn_PlugIn.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlugIn_PlugIn.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ diff --git a/CoreFoundation/Preferences.subproj/CFApplicationPreferences.c b/CoreFoundation/Preferences.subproj/CFApplicationPreferences.c index 0841f216d1..1029622b08 100644 --- a/CoreFoundation/Preferences.subproj/CFApplicationPreferences.c +++ b/CoreFoundation/Preferences.subproj/CFApplicationPreferences.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFApplicationPreferences.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ @@ -37,8 +32,8 @@ static CFTypeRef _CFApplicationPreferencesCreateValueForKey2(_CFApplicationPrefe CFPropertyListRef CFPreferencesCopyAppValue(CFStringRef key, CFStringRef appName) { _CFApplicationPreferences *standardPrefs; - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); standardPrefs = _CFStandardApplicationPreferences(appName); return standardPrefs ? _CFApplicationPreferencesCreateValueForKey2(standardPrefs, key) : NULL; @@ -48,8 +43,8 @@ CF_EXPORT Boolean CFPreferencesAppBooleanValue(CFStringRef key, CFStringRef appN CFPropertyListRef value; Boolean result, valid; CFTypeID typeID = 0; - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); if (!keyExistsAndHasValidFormat) { keyExistsAndHasValidFormat = &valid; @@ -98,8 +93,8 @@ CF_PRIVATE CFIndex CFPreferencesAppIntegerValue(CFStringRef key, CFStringRef app CFIndex result; CFTypeID typeID = 0; Boolean valid; - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); value = CFPreferencesCopyAppValue(key, appName); if (!keyExistsAndHasValidFormat) { @@ -136,21 +131,21 @@ CF_PRIVATE CFIndex CFPreferencesAppIntegerValue(CFStringRef key, CFStringRef app } Boolean CFPreferencesGetAppBooleanValue(CFStringRef key, CFStringRef appName, Boolean *keyExistsAndHasValidFormat) { - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); return CFPreferencesAppBooleanValue(key, appName, keyExistsAndHasValidFormat); } CFIndex CFPreferencesGetAppIntegerValue(CFStringRef key, CFStringRef appName, Boolean *keyExistsAndHasValidFormat) { - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); return CFPreferencesAppIntegerValue(key, appName, keyExistsAndHasValidFormat); } void CFPreferencesSetAppValue(CFStringRef key, CFTypeRef value, CFStringRef appName) { _CFApplicationPreferences *standardPrefs; - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); standardPrefs = _CFStandardApplicationPreferences(appName); if (standardPrefs) { @@ -166,7 +161,7 @@ static CFMutableDictionaryRef __CFStandardUserPreferences = NULL; // Mutable dic Boolean CFPreferencesAppSynchronize(CFStringRef appName) { _CFApplicationPreferences *standardPrefs; Boolean result; - CFAssert(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL, __kCFLogAssertion, "%s(): Cannot access application preferences with a NULL application name", __PRETTY_FUNCTION__); // Do not call _CFStandardApplicationPreferences(), as we do not want to create the preferences only to synchronize __CFLock(&__CFApplicationPreferencesLock); @@ -231,7 +226,7 @@ void _CFApplicationPreferencesDomainHasChanged(CFPreferencesDomainRef changedDom updateDictRep(appPrefs); } } - if(prefsArray != prefsBuf) _CFAllocatorDeallocateGC(alloc, prefsArray); + if(prefsArray != prefsBuf) CFAllocatorDeallocate(alloc, prefsArray); } __CFUnlock(&__CFApplicationPreferencesLock); } @@ -423,7 +418,7 @@ void _CFApplicationPreferencesSetStandardSearchList(_CFApplicationPreferences *a #undef ADD_DOMAIN -CF_EXPORT _CFApplicationPreferences *_CFStandardApplicationPreferences(CFStringRef appName) { +CF_PRIVATE _CFApplicationPreferences *_CFStandardApplicationPreferences(CFStringRef appName) { _CFApplicationPreferences *appPreferences; // CFAssert(appName != kCFPreferencesAnyApplication, __kCFLogAssertion, "Cannot use any of the CFPreferences...App... functions with an appName of kCFPreferencesAnyApplication"); __CFLock(&__CFApplicationPreferencesLock); diff --git a/CoreFoundation/Preferences.subproj/CFPreferences.c b/CoreFoundation/Preferences.subproj/CFPreferences.c index 18067db608..8f00af07c8 100644 --- a/CoreFoundation/Preferences.subproj/CFPreferences.c +++ b/CoreFoundation/Preferences.subproj/CFPreferences.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPreferences.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: David Smith */ @@ -54,7 +49,7 @@ CONST_STRING_DECL(kCFPreferencesCurrentUser, "kCFPreferencesCurrentUser") static CFAllocatorRef _preferencesAllocator = NULL; -CF_EXPORT CFAllocatorRef __CFPreferencesAllocator(void) { +CF_PRIVATE CFAllocatorRef __CFPreferencesAllocator(void) { if (!_preferencesAllocator) { #if DEBUG_PREFERENCES_MEMORY _preferencesAllocator = CFCountingAllocatorCreate(NULL); @@ -238,8 +233,8 @@ static CFMutableDictionaryRef domainCache = NULL; // mutable CFTypeRef CFPreferencesCopyValue(CFStringRef key, CFStringRef appName, CFStringRef user, CFStringRef host) { CFPreferencesDomainRef domain; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); domain = _CFPreferencesStandardDomain(appName, user, host); if (domain) { @@ -254,7 +249,7 @@ CFDictionaryRef CFPreferencesCopyMultiple(CFArrayRef keysToFetch, CFStringRef ap CFMutableDictionaryRef result; CFIndex idx, count; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); __CFGenericValidateType(appName, CFStringGetTypeID()); __CFGenericValidateType(user, CFStringGetTypeID()); __CFGenericValidateType(host, CFStringGetTypeID()); @@ -284,8 +279,8 @@ CFDictionaryRef CFPreferencesCopyMultiple(CFArrayRef keysToFetch, CFStringRef ap void CFPreferencesSetValue(CFStringRef key, CFTypeRef value, CFStringRef appName, CFStringRef user, CFStringRef host) { CFPreferencesDomainRef domain; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); - CFAssert(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(key != NULL, __kCFLogAssertion, "%s(): Cannot access preferences with a NULL key", __PRETTY_FUNCTION__); domain = _CFPreferencesStandardDomain(appName, user, host); if (domain) { @@ -298,7 +293,7 @@ void CFPreferencesSetValue(CFStringRef key, CFTypeRef value, CFStringRef appN void CFPreferencesSetMultiple(CFDictionaryRef keysToSet, CFArrayRef keysToRemove, CFStringRef appName, CFStringRef user, CFStringRef host) { CFPreferencesDomainRef domain; CFIndex idx, count; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); if (keysToSet) __CFGenericValidateType(keysToSet, CFDictionaryGetTypeID()); if (keysToRemove) __CFGenericValidateType(keysToRemove, CFArrayGetTypeID()); __CFGenericValidateType(appName, CFStringGetTypeID()); @@ -340,7 +335,7 @@ void CFPreferencesSetMultiple(CFDictionaryRef keysToSet, CFArrayRef keysToRemove Boolean CFPreferencesSynchronize(CFStringRef appName, CFStringRef user, CFStringRef host) { CFPreferencesDomainRef domain; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); domain = _CFPreferencesStandardDomain(appName, user, host); if(domain) _CFApplicationPreferencesDomainHasChanged(domain); @@ -350,14 +345,14 @@ Boolean CFPreferencesSynchronize(CFStringRef appName, CFStringRef user, CFStri CFArrayRef CFPreferencesCopyApplicationList(CFStringRef user, CFStringRef host) { CFArrayRef array; - CFAssert(user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL user or host", __PRETTY_FUNCTION__); + CFAssert1(user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL user or host", __PRETTY_FUNCTION__); array = _CFPreferencesCreateDomainList(user, host); return array; } CFArrayRef CFPreferencesCopyKeyList(CFStringRef appName, CFStringRef user, CFStringRef host) { CFPreferencesDomainRef domain; - CFAssert(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); + CFAssert1(appName != NULL && user != NULL && host != NULL, __kCFLogAssertion, "%s(): Cannot access preferences for a NULL application name, user, or host", __PRETTY_FUNCTION__); domain = _CFPreferencesStandardDomain(appName, user, host); if (!domain) { @@ -557,7 +552,7 @@ static void __CFPreferencesPerformSynchronize(const void *key, const void *value if (!_CFPreferencesDomainSynchronize(domain)) *cumulativeResult = false; } -CF_EXPORT Boolean _CFSynchronizeDomainCache(void) { +CF_PRIVATE Boolean _CFSynchronizeDomainCache(void) { Boolean result = true; __CFLock(&domainCacheLock); if (domainCache) { @@ -577,7 +572,7 @@ CF_PRIVATE void _CFPreferencesPurgeDomainCache(void) { __CFUnlock(&domainCacheLock); } -CF_EXPORT CFArrayRef _CFPreferencesCreateDomainList(CFStringRef userName, CFStringRef hostName) { +CF_PRIVATE CFArrayRef _CFPreferencesCreateDomainList(CFStringRef userName, CFStringRef hostName) { CFAllocatorRef prefAlloc = __CFPreferencesAllocator(); CFArrayRef domains; CFMutableArrayRef marray; @@ -680,7 +675,7 @@ CF_EXPORT CFArrayRef _CFPreferencesCreateDomainList(CFStringRef userName, CFSt // CFPreferencesDomainRef _CFPreferencesDomainCreate(CFTypeRef context, const _CFPreferencesDomainCallBacks *callBacks) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFPreferencesDomainTypeID = _CFRuntimeRegisterClass(&__CFPreferencesDomainClass); }); CFAllocatorRef alloc = __CFPreferencesAllocator(); CFPreferencesDomainRef newDomain; @@ -703,11 +698,11 @@ void _CFPreferencesDomainSet(CFPreferencesDomainRef domain, CFStringRef key, CF domain->_callBacks->writeValue(domain->_context, domain->_domain, key, value); } -CF_EXPORT Boolean _CFPreferencesDomainSynchronize(CFPreferencesDomainRef domain) { +CF_PRIVATE Boolean _CFPreferencesDomainSynchronize(CFPreferencesDomainRef domain) { return domain->_callBacks->synchronize(domain->_context, domain->_domain); } -CF_EXPORT void _CFPreferencesDomainSetIsWorldReadable(CFPreferencesDomainRef domain, Boolean isWorldReadable) { +CF_PRIVATE void _CFPreferencesDomainSetIsWorldReadable(CFPreferencesDomainRef domain, Boolean isWorldReadable) { if (domain->_callBacks->setIsWorldReadable) { domain->_callBacks->setIsWorldReadable(domain->_context, domain->_domain, isWorldReadable); } diff --git a/CoreFoundation/Preferences.subproj/CFPreferences.h b/CoreFoundation/Preferences.subproj/CFPreferences.h index 5a16439e24..7c095981e7 100644 --- a/CoreFoundation/Preferences.subproj/CFPreferences.h +++ b/CoreFoundation/Preferences.subproj/CFPreferences.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPreferences.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFPREFERENCES__) @@ -20,6 +15,7 @@ #include CF_IMPLICIT_BRIDGING_ENABLED +CF_ASSUME_NONNULL_BEGIN CF_EXTERN_C_BEGIN CF_EXPORT @@ -50,25 +46,25 @@ value for the given key. key must not be NULL. If a value is found, it returns it; otherwise returns NULL. Caller must release the returned value */ CF_EXPORT -CFPropertyListRef CFPreferencesCopyAppValue(CFStringRef key, CFStringRef applicationID); +_Nullable CFPropertyListRef CFPreferencesCopyAppValue(CFStringRef key, CFStringRef applicationID); /* Convenience to interpret a preferences value as a boolean directly. Returns false if the key doesn't exist, or has an improper format; under those conditions, keyExistsAndHasValidFormat (if non-NULL) is set to false */ CF_EXPORT -Boolean CFPreferencesGetAppBooleanValue(CFStringRef key, CFStringRef applicationID, Boolean *keyExistsAndHasValidFormat); +Boolean CFPreferencesGetAppBooleanValue(CFStringRef key, CFStringRef applicationID, Boolean * _Nullable keyExistsAndHasValidFormat); /* Convenience to interpret a preferences value as an integer directly. Returns 0 if the key doesn't exist, or has an improper format; under those conditions, keyExistsAndHasValidFormat (if non-NULL) is set to false */ CF_EXPORT -CFIndex CFPreferencesGetAppIntegerValue(CFStringRef key, CFStringRef applicationID, Boolean *keyExistsAndHasValidFormat); +CFIndex CFPreferencesGetAppIntegerValue(CFStringRef key, CFStringRef applicationID, Boolean * _Nullable keyExistsAndHasValidFormat); /* Sets the given value for the given key in the "normal" place for application preferences. key must not be NULL. If value is NULL, key is removed instead. */ CF_EXPORT -void CFPreferencesSetAppValue(CFStringRef key, CFPropertyListRef value, CFStringRef applicationID); +void CFPreferencesSetAppValue(CFStringRef key, _Nullable CFPropertyListRef value, CFStringRef applicationID); /* Adds the preferences for the given suite to the app preferences for the specified application. To write to the suite domain, use @@ -90,43 +86,44 @@ Boolean CFPreferencesAppSynchronize(CFStringRef applicationID); location specified by app-user-host is searched. The returned CFType must be released by the caller when it is finished with it. */ CF_EXPORT -CFPropertyListRef CFPreferencesCopyValue(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); +_Nullable CFPropertyListRef CFPreferencesCopyValue(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); /* Convenience to fetch multiple keys at once. Keys in keysToFetch that are not present in the returned dictionary are not present in the domain. If keysToFetch is NULL, all keys are fetched. */ CF_EXPORT -CFDictionaryRef CFPreferencesCopyMultiple(CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); +CFDictionaryRef CFPreferencesCopyMultiple(_Nullable CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); /* The primitive set function; all arguments except value must be non-NULL. If value is NULL, the given key is removed */ CF_EXPORT -void CFPreferencesSetValue(CFStringRef key, CFPropertyListRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); +void CFPreferencesSetValue(CFStringRef key, _Nullable CFPropertyListRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); /* Convenience to set multiple values at once. Behavior is undefined if a key is in both keysToSet and keysToRemove */ CF_EXPORT -void CFPreferencesSetMultiple(CFDictionaryRef keysToSet, CFArrayRef keysToRemove, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); +void CFPreferencesSetMultiple(_Nullable CFDictionaryRef keysToSet, _Nullable CFArrayRef keysToRemove, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); CF_EXPORT Boolean CFPreferencesSynchronize(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); /* Constructs and returns the list of the name of all applications -which have preferences in the scope of the given user and host. +which have preferences in the scope of the given user and host, or NULL if no applications are there. The returned value must be released by the caller; neither argument -may be NULL. */ +may be NULL. Does not supported sandboxed applications. */ CF_EXPORT -CFArrayRef CFPreferencesCopyApplicationList(CFStringRef userName, CFStringRef hostName) CF_DEPRECATED(10_0, 10_9, 2_0, 7_0); +_Nullable CFArrayRef CFPreferencesCopyApplicationList(CFStringRef userName, CFStringRef hostName) CF_DEPRECATED(10_0, 10_9, 2_0, 7_0); /* Constructs and returns the list of all keys set in the given -location. The returned value must be released by the caller; +location, or NULL if no keys are set. The returned value must be released by the caller; all arguments must be non-NULL */ CF_EXPORT -CFArrayRef CFPreferencesCopyKeyList(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); +_Nullable CFArrayRef CFPreferencesCopyKeyList(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName); CF_EXTERN_C_END +CF_ASSUME_NONNULL_END CF_IMPLICIT_BRIDGING_DISABLED #endif /* ! __COREFOUNDATION_CFPREFERENCES__ */ diff --git a/CoreFoundation/Preferences.subproj/CFXMLPreferencesDomain.c b/CoreFoundation/Preferences.subproj/CFXMLPreferencesDomain.c new file mode 100644 index 0000000000..594111844a --- /dev/null +++ b/CoreFoundation/Preferences.subproj/CFXMLPreferencesDomain.c @@ -0,0 +1,520 @@ +/* CFXMLPreferencesDomain.c + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: David Smith +*/ + + +#include +#include +#include +#include +#include +#include "CFInternal.h" +#include +#if DEPLOYMENT_TARGET_MACOSX +#include +#include +#include +#include +#include +#endif + +Boolean __CFPreferencesShouldWriteXML(void); + +typedef struct { + CFMutableDictionaryRef _domainDict; // Current value of the domain dictionary + CFMutableArrayRef _dirtyKeys; // The array of keys which must be synchronized + CFAbsoluteTime _lastReadTime; // The last time we synchronized with the disk + CFLock_t _lock; // Lock for accessing fields in the domain + Boolean _isWorldReadable; // HACK - this is because we have no good way to propogate the kCFPreferencesAnyUser information from the upper level CFPreferences routines REW, 1/13/00 + char _padding[3]; +} _CFXMLPreferencesDomain; + +static void *createXMLDomain(CFAllocatorRef allocator, CFTypeRef context); +static void freeXMLDomain(CFAllocatorRef allocator, CFTypeRef context, void *tDomain); +static CFTypeRef fetchXMLValue(CFTypeRef context, void *xmlDomain, CFStringRef key); +static void writeXMLValue(CFTypeRef context, void *xmlDomain, CFStringRef key, CFTypeRef value); +static Boolean synchronizeXMLDomain(CFTypeRef context, void *xmlDomain); +static void getXMLKeysAndValues(CFAllocatorRef alloc, CFTypeRef context, void *xmlDomain, void **buf[], CFIndex *numKeyValuePairs); +static CFDictionaryRef copyXMLDomainDictionary(CFTypeRef context, void *domain); +static void setXMLDomainIsWorldReadable(CFTypeRef context, void *domain, Boolean isWorldReadable); + +CF_PRIVATE const _CFPreferencesDomainCallBacks __kCFXMLPropertyListDomainCallBacks = {createXMLDomain, freeXMLDomain, fetchXMLValue, writeXMLValue, synchronizeXMLDomain, getXMLKeysAndValues, copyXMLDomainDictionary, setXMLDomainIsWorldReadable}; + +// Directly ripped from Foundation.... +static void __CFMilliSleep(uint32_t msecs) { +#if DEPLOYMENT_TARGET_WINDOWS + SleepEx(msecs, false); +#elif defined(__svr4__) || defined(__hpux__) + sleep((msecs + 900) / 1000); +#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_LINUX + struct timespec input; + input.tv_sec = msecs / 1000; + input.tv_nsec = (msecs - input.tv_sec * 1000) * 1000000; + nanosleep(&input, NULL); +#else +#error Dont know how to define sleep for this platform +#endif +} + +static CFLock_t _propDictLock = CFLockInit; // Annoying that we need this, but otherwise we have a multithreading risk + +CF_INLINE CFDictionaryRef URLPropertyDictForPOSIXMode(SInt32 mode) { + static CFMutableDictionaryRef _propertyDict = NULL; + CFNumberRef num = CFNumberCreate(__CFPreferencesAllocator(), kCFNumberSInt32Type, &mode); + __CFLock(&_propDictLock); + if (!_propertyDict) { + _propertyDict = CFDictionaryCreateMutable(__CFPreferencesAllocator(), 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + } + CFDictionarySetValue(_propertyDict, kCFURLFilePOSIXMode, num); + CFRelease(num); + return _propertyDict; +} + +CF_INLINE void URLPropertyDictRelease(void) { + __CFUnlock(&_propDictLock); +} + +// Asssumes caller already knows the directory doesn't exist. +static Boolean _createDirectory(CFURLRef dirURL, Boolean worldReadable) { + CFAllocatorRef alloc = __CFPreferencesAllocator(); + CFURLRef parentURL = CFURLCreateCopyDeletingLastPathComponent(alloc, dirURL); + CFBooleanRef val = (CFBooleanRef) CFURLCreatePropertyFromResource(alloc, parentURL, kCFURLFileExists, NULL); + Boolean parentExists = (val && CFBooleanGetValue(val)); + SInt32 mode; + Boolean result; + if (val) CFRelease(val); + if (!parentExists) { + CFStringRef path = CFURLCopyPath(parentURL); + if (!CFEqual(path, CFSTR("/"))) { + _createDirectory(parentURL, worldReadable); + val = (CFBooleanRef) CFURLCreatePropertyFromResource(alloc, parentURL, kCFURLFileExists, NULL); + parentExists = (val && CFBooleanGetValue(val)); + if (val) CFRelease(val); + } + CFRelease(path); + } + if (parentURL) CFRelease(parentURL); + if (!parentExists) return false; + +#if DEPLOYMENT_TARGET_MACOSX + mode = worldReadable ? S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH : S_IRWXU; +#else + mode = 0666; +#endif + + result = CFURLWriteDataAndPropertiesToResource(dirURL, (CFDataRef)dirURL, URLPropertyDictForPOSIXMode(mode), NULL); + URLPropertyDictRelease(); + return result; +} + + +/* XML - context is the CFURL where the property list is stored on disk; domain is an _CFXMLPreferencesDomain */ +static void *createXMLDomain(CFAllocatorRef allocator, CFTypeRef context) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain*) CFAllocatorAllocate(allocator, sizeof(_CFXMLPreferencesDomain), 0); + domain->_lastReadTime = 0.0; + domain->_domainDict = NULL; + domain->_dirtyKeys = CFArrayCreateMutable(allocator, 0, & kCFTypeArrayCallBacks); + const CFLock_t lock = CFLockInit; + domain->_lock = lock; + domain->_isWorldReadable = false; + return domain; +} + +static void freeXMLDomain(CFAllocatorRef allocator, CFTypeRef context, void *tDomain) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)tDomain; + if (domain->_domainDict) CFRelease(domain->_domainDict); + if (domain->_dirtyKeys) CFRelease(domain->_dirtyKeys); + CFAllocatorDeallocate(allocator, domain); +} + +// Assumes the domain has already been locked +static void _loadXMLDomainIfStale(CFURLRef url, _CFXMLPreferencesDomain *domain) { + CFAllocatorRef alloc = __CFPreferencesAllocator(); + int idx; + if (domain->_domainDict) { + CFDateRef modDate; + CFAbsoluteTime modTime; + CFURLRef testURL = url; + + if (CFDictionaryGetCount(domain->_domainDict) == 0) { + // domain never existed; check the parent directory, not the child + testURL = CFURLCreateWithFileSystemPathRelativeToBase(alloc, CFSTR(".."), kCFURLPOSIXPathStyle, true, url); + } + + modDate = (CFDateRef )CFURLCreatePropertyFromResource(alloc, testURL, kCFURLFileLastModificationTime, NULL); + modTime = modDate ? CFDateGetAbsoluteTime(modDate) : 0.0; + + // free before possible return. we can test non-NULL of modDate but don't depend on contents after this. + if (testURL != url) CFRelease(testURL); + if (modDate) CFRelease(modDate); + + if (modDate != NULL && modTime < domain->_lastReadTime) { // We're up-to-date + return; + } + } + + + // We're out-of-date; destroy domainDict and reload + if (domain->_domainDict) { + CFRelease(domain->_domainDict); + domain->_domainDict = NULL; + } + + // We no longer lock on read; instead, we assume parse failures are because someone else is writing the file, and just try to parse again. If we fail 3 times in a row, we assume the file is corrupted. REW, 7/13/99 + + for (idx = 0; idx < 3; idx ++) { + CFDataRef data; + if (!CFURLCreateDataAndPropertiesFromResource(alloc, url, &data, NULL, NULL, NULL) || !data) { + // Either a file system error (so we can't read the file), or an empty (or perhaps non-existant) file + domain->_domainDict = CFDictionaryCreateMutable(alloc, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + break; + } else { + CFTypeRef pList = CFPropertyListCreateFromXMLData(alloc, data, kCFPropertyListImmutable, NULL); + CFRelease(data); + if (pList && CFGetTypeID(pList) == CFDictionaryGetTypeID()) { + domain->_domainDict = CFDictionaryCreateMutableCopy(alloc, 0, (CFDictionaryRef)pList); + CFRelease(pList); + break; + } else if (pList) { + CFRelease(pList); + } + // Assume the file is being written; sleep for a short time (to allow the write to complete) then re-read + __CFMilliSleep(150); + } + } + if (!domain->_domainDict) { + // Failed to ever load + domain->_domainDict = CFDictionaryCreateMutable(alloc, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + } + domain->_lastReadTime = CFAbsoluteTimeGetCurrent(); +} + +static CFTypeRef fetchXMLValue(CFTypeRef context, void *xmlDomain, CFStringRef key) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)xmlDomain; + CFTypeRef result; + + // Never reload if we've looked at the file system within the last 5 seconds. + __CFLock(&domain->_lock); + if (domain->_domainDict == NULL) _loadXMLDomainIfStale((CFURLRef )context, domain); + result = CFDictionaryGetValue(domain->_domainDict, key); + if (result) CFRetain(result); + __CFUnlock(&domain->_lock); + + return result; +} + + +#if DEPLOYMENT_TARGET_MACOSX +#include + +/* __CFWriteBytesToFileWithAtomicity is a "safe save" facility. Write the bytes using the specified mode on the file to the provided URL. If the atomic flag is true, try to do it in a fashion that will enable a safe save. + */ +static Boolean __CFWriteBytesToFileWithAtomicity(CFURLRef url, const void *bytes, int length, SInt32 mode, Boolean atomic) { + int fd = -1; + char auxPath[CFMaxPathSize + 16]; + char cpath[CFMaxPathSize]; + uid_t owner = getuid(); + gid_t group = getgid(); + Boolean writingFileAsRoot = ((getuid() != geteuid()) && (geteuid() == 0)); + + if (!CFURLGetFileSystemRepresentation(url, true, (uint8_t *)cpath, CFMaxPathSize)) { + return false; + } + + if (-1 == mode || writingFileAsRoot) { + struct stat statBuf; + if (0 == stat(cpath, &statBuf)) { + mode = statBuf.st_mode; + owner = statBuf.st_uid; + group = statBuf.st_gid; + } else { + mode = 0664; + if (writingFileAsRoot && (0 == strncmp(cpath, "/Library/Preferences", 20))) { + owner = geteuid(); + group = 80; + } + } + } + + if (atomic) { + CFURLRef dir = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorSystemDefault, url); + CFURLRef tempFile = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, dir, CFSTR("cf#XXXXX"), false); + CFRelease(dir); + if (!CFURLGetFileSystemRepresentation(tempFile, true, (uint8_t *)auxPath, CFMaxPathSize)) { + CFRelease(tempFile); + return false; + } + CFRelease(tempFile); + fd = mkstemp(auxPath); + } else { + fd = open(cpath, O_WRONLY|O_CREAT|O_TRUNC, mode); + } + + if (fd < 0) return false; + + if (length && (write(fd, bytes, length) != length || fsync(fd) < 0)) { + int saveerr = thread_errno(); + close(fd); + if (atomic) + unlink(auxPath); + thread_set_errno(saveerr); + return false; + } + + close(fd); + + if (atomic) { + // preserve the mode as passed in originally + chmod(auxPath, mode); + + if (0 != rename(auxPath, cpath)) { + unlink(auxPath); + return false; + } + + // If the file was renamed successfully and we wrote it as root we need to reset the owner & group as they were. + if (writingFileAsRoot) { + chown(cpath, owner, group); + } + } + return true; +} +#endif + +// domain should already be locked. +static Boolean _writeXMLFile(CFURLRef url, CFMutableDictionaryRef dict, Boolean isWorldReadable, Boolean *tryAgain) { + Boolean success = false; + CFAllocatorRef alloc = __CFPreferencesAllocator(); + *tryAgain = false; + if (CFDictionaryGetCount(dict) == 0) { + // Destroy the file + CFBooleanRef val = (CFBooleanRef) CFURLCreatePropertyFromResource(alloc, url, kCFURLFileExists, NULL); + if (val && CFBooleanGetValue(val)) { + success = CFURLDestroyResource(url, NULL); + } else { + success = true; + } + if (val) CFRelease(val); + } else { + CFPropertyListFormat desiredFormat = __CFPreferencesShouldWriteXML() ? kCFPropertyListXMLFormat_v1_0 : kCFPropertyListBinaryFormat_v1_0; + CFDataRef data = CFPropertyListCreateData(alloc, dict, desiredFormat, 0, NULL); + if (data) { + SInt32 mode; +#if DEPLOYMENT_TARGET_MACOSX + mode = isWorldReadable ? S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH : S_IRUSR|S_IWUSR; +#else + mode = 0666; +#endif +#if DEPLOYMENT_TARGET_MACOSX + { // Try quick atomic way first, then fallback to slower ways and error cases + CFStringRef scheme = CFURLCopyScheme(url); + if (!scheme) { + *tryAgain = false; + CFRelease(data); + return false; + } else if (CFStringCompare(scheme, CFSTR("file"), 0) == kCFCompareEqualTo) { + SInt32 length = CFDataGetLength(data); + const void *bytes = (0 == length) ? (const void *)"" : CFDataGetBytePtr(data); + Boolean atomicWriteSuccess = __CFWriteBytesToFileWithAtomicity(url, bytes, length, mode, true); + if (atomicWriteSuccess) { + CFRelease(scheme); + *tryAgain = false; + CFRelease(data); + return true; + } + if (!atomicWriteSuccess && thread_errno() == ENOSPC) { + CFRelease(scheme); + *tryAgain = false; + CFRelease(data); + return false; + } + } + CFRelease(scheme); + } +#endif + success = CFURLWriteDataAndPropertiesToResource(url, data, URLPropertyDictForPOSIXMode(mode), NULL); + URLPropertyDictRelease(); + if (success) { + CFDataRef readData; + if (!CFURLCreateDataAndPropertiesFromResource(alloc, url, &readData, NULL, NULL, NULL) || !CFEqual(readData, data)) { + success = false; + *tryAgain = true; + } + if (readData) CFRelease(readData); + } else { + CFBooleanRef val = (CFBooleanRef) CFURLCreatePropertyFromResource(alloc, url, kCFURLFileExists, NULL); + if (!val || !CFBooleanGetValue(val)) { + CFURLRef tmpURL = CFURLCreateWithFileSystemPathRelativeToBase(alloc, CFSTR("."), kCFURLPOSIXPathStyle, true, url); // Just "." because url is not a directory URL + CFURLRef parentURL = tmpURL ? CFURLCopyAbsoluteURL(tmpURL) : NULL; + if (tmpURL) CFRelease(tmpURL); + if (val) CFRelease(val); + val = (CFBooleanRef) CFURLCreatePropertyFromResource(alloc, parentURL, kCFURLFileExists, NULL); + if ((!val || !CFBooleanGetValue(val)) && _createDirectory(parentURL, isWorldReadable)) { + // parent directory didn't exist; now it does; try again to write + success = CFURLWriteDataAndPropertiesToResource(url, data, URLPropertyDictForPOSIXMode(mode), NULL); + URLPropertyDictRelease(); + if (success) { + CFDataRef rdData; + if (!CFURLCreateDataAndPropertiesFromResource(alloc, url, &rdData, NULL, NULL, NULL) || !CFEqual(rdData, data)) { + success = false; + *tryAgain = true; + } + if (rdData) CFRelease(rdData); + } + + } + if (parentURL) CFRelease(parentURL); + } + if (val) CFRelease(val); + } + CFRelease(data); + } else { + // ??? This should never happen + CFLog(__kCFLogAssertion, CFSTR("Could not generate XML data for property list")); + success = false; + } + } + return success; +} + +static void writeXMLValue(CFTypeRef context, void *xmlDomain, CFStringRef key, CFTypeRef value) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)xmlDomain; + const void *existing = NULL; + + __CFLock(&domain->_lock); + if (domain->_domainDict == NULL) { + _loadXMLDomainIfStale((CFURLRef )context, domain); + } + + // check to see if the value is the same + // if (1) the key is present AND value is !NULL and equal to existing, do nothing, or + // if (2) the key is not present AND value is NULL, do nothing + // these things are no-ops, and should not dirty the domain + if (CFDictionaryGetValueIfPresent(domain->_domainDict, key, &existing)) { + if (NULL != value && (existing == value || CFEqual(existing, value))) { + __CFUnlock(&domain->_lock); + return; + } + } else { + if (NULL == value) { + __CFUnlock(&domain->_lock); + return; + } + } + + // We must append first so key gets another retain (in case we're + // about to remove it from the dictionary, and that's the sole reference) + // This should be a set not an array. + if (!CFArrayContainsValue(domain->_dirtyKeys, CFRangeMake(0, CFArrayGetCount(domain->_dirtyKeys)), key)) { + CFArrayAppendValue(domain->_dirtyKeys, key); + } + if (value) { + // Must copy for two reasons - we don't want mutable objects in the cache, and we don't want objects allocated from a different allocator in the cache. + CFTypeRef newValue = CFPropertyListCreateDeepCopy(__CFPreferencesAllocator(), value, kCFPropertyListImmutable); + CFDictionarySetValue(domain->_domainDict, key, newValue); + CFRelease(newValue); + } else { + CFDictionaryRemoveValue(domain->_domainDict, key); + } + __CFUnlock(&domain->_lock); +} + +static void getXMLKeysAndValues(CFAllocatorRef alloc, CFTypeRef context, void *xmlDomain, void **buf[], CFIndex *numKeyValuePairs) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)xmlDomain; + CFIndex count; + __CFLock(&domain->_lock); + if (!domain->_domainDict) { + _loadXMLDomainIfStale((CFURLRef )context, domain); + } + count = CFDictionaryGetCount(domain->_domainDict); + if (buf) { + void **values; + if (count <= *numKeyValuePairs) { + values = *buf + count; + CFDictionaryGetKeysAndValues(domain->_domainDict, (const void **)*buf, (const void **)values); + } else if (alloc != kCFAllocatorNull) { + *buf = (void**) CFAllocatorReallocate(alloc, (*buf ? *buf : NULL), count * 2 * sizeof(void *), 0); + if (*buf) { + values = *buf + count; + CFDictionaryGetKeysAndValues(domain->_domainDict, (const void **)*buf, (const void **)values); + } + } + } + *numKeyValuePairs = count; + __CFUnlock(&domain->_lock); +} + +static CFDictionaryRef copyXMLDomainDictionary(CFTypeRef context, void *xmlDomain) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)xmlDomain; + CFDictionaryRef result; + + __CFLock(&domain->_lock); + if(!domain->_domainDict) { + _loadXMLDomainIfStale((CFURLRef)context, domain); + } + + result = (CFDictionaryRef)CFPropertyListCreateDeepCopy(__CFPreferencesAllocator(), domain->_domainDict, kCFPropertyListImmutable); + + __CFUnlock(&domain->_lock); + return result; +} + + +static void setXMLDomainIsWorldReadable(CFTypeRef context, void *domain, Boolean isWorldReadable) { + ((_CFXMLPreferencesDomain *)domain)->_isWorldReadable = isWorldReadable; +} + +static Boolean synchronizeXMLDomain(CFTypeRef context, void *xmlDomain) { + _CFXMLPreferencesDomain *domain = (_CFXMLPreferencesDomain *)xmlDomain; + CFMutableDictionaryRef cachedDict; + CFMutableArrayRef changedKeys; + SInt32 idx, count; + Boolean success, tryAgain; + + __CFLock(&domain->_lock); + cachedDict = domain->_domainDict; + changedKeys = domain->_dirtyKeys; + count = CFArrayGetCount(changedKeys); + + if (count == 0) { + // no changes were made to this domain; just remove it from the cache to guarantee it will be taken from disk next access + if (cachedDict) { + CFRelease(cachedDict); + domain->_domainDict = NULL; + } + __CFUnlock(&domain->_lock); + return true; + } + + domain->_domainDict = NULL; // This forces a reload. Note that we now have a retain on cachedDict + do { + _loadXMLDomainIfStale((CFURLRef )context, domain); + // now cachedDict holds our changes; domain->_domainDict has the latest version from the disk + for (idx = 0; idx < count; idx ++) { + CFStringRef key = (CFStringRef) CFArrayGetValueAtIndex(changedKeys, idx); + CFTypeRef value = CFDictionaryGetValue(cachedDict, key); + if (value) + CFDictionarySetValue(domain->_domainDict, key, value); + else + CFDictionaryRemoveValue(domain->_domainDict, key); + } + success = _writeXMLFile((CFURLRef )context, domain->_domainDict, domain->_isWorldReadable, &tryAgain); + if (tryAgain) { + __CFMilliSleep(50); + } + } while (tryAgain); + CFRelease(cachedDict); + if (success) { + CFArrayRemoveAllValues(domain->_dirtyKeys); + } + domain->_lastReadTime = CFAbsoluteTimeGetCurrent(); + __CFUnlock(&domain->_lock); + return success; +} + diff --git a/CoreFoundation/RunLoop.subproj/CFMachPort.c b/CoreFoundation/RunLoop.subproj/CFMachPort.c index 4fb91bef62..457cef521e 100644 --- a/CoreFoundation/RunLoop.subproj/CFMachPort.c +++ b/CoreFoundation/RunLoop.subproj/CFMachPort.c @@ -1,43 +1,197 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFMachPort.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ #include #include #include -#if __HAS_DISPATCH__ #include +#if __has_include() #include #endif #include #include #include #include "CFInternal.h" +#include +#include -#if __HAS_DISPATCH__ +// This queue is used for the cancel/event handler for dead name notification. static dispatch_queue_t _CFMachPortQueue() { static volatile dispatch_queue_t __CFMachPortQueue = NULL; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ dispatch_queue_attr_t dqattr = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_BACKGROUND, 0); - __CFMachPortQueue = dispatch_queue_create("com.apple.CFMachPort", dqattr); + __CFMachPortQueue = dispatch_queue_create("com.apple.CFMachPort", dispatch_queue_attr_make_with_overcommit(dqattr, true)); }); return __CFMachPortQueue; } -#endif +// NOTE: all _cfmp_ prefixed state/functions exist to orchestrate the exact time/circumstances we want to call _cfmp_mod_refs. +CF_INLINE void _cfmp_mod_refs(const mach_port_t port, const Boolean doSend, const Boolean doReceive) { + // MUST deallocate the send right FIRST if necessary, + // then the receive right if necessary. Don't ask me why; + // if it's done in the other order the port will leak. + if (doSend) { + mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_SEND, -1); + } + if (doReceive) { + mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); + } +} + +// Records information relevant for cleaning up after a given mach port. It has states: +// port & invalidated -- dispatch_source invalidated, but _CFMachPortDeallocate has yet to be called +// port & doSend & doReceive -- _CFMachPortDeallocate has been called, but dispatch_source not yet invalidate +typedef struct { + mach_port_t port; + uint8_t doSend:1; + uint8_t doReceive:1; + uint8_t invalidated:1; // flag to indicate that the source has already been invalidated and the port can be cleaned up inline during deallocation + uint8_t unused:5; +} _cfmp_deallocation_record; +// Various CFSet callbacks for _cfmp_deallocation_record +Boolean _cfmp_equal(const void *value1, const void *value2) { + Boolean equal = false; + if (value1 && value2) { + if (value1 == value2) { + equal = true; + } else { + const _cfmp_deallocation_record R1 = *(_cfmp_deallocation_record *)value1; + const _cfmp_deallocation_record R2 = *(_cfmp_deallocation_record *)value2; + equal = R1.port == R2.port; + } + } + return equal; +} +CFHashCode _cfmp_hash(const void *value) { + CFHashCode hash = 0; + if (value) { + const _cfmp_deallocation_record R = *(_cfmp_deallocation_record *)value; + hash = _CFHashInt(R.port); + } + return hash; +} +void _cfmp_deallocation_record_release(CFAllocatorRef allocator, const void *value) { + free((_cfmp_deallocation_record *)value); +} +CFStringRef _cfmp_copy_description(const void *value) { + CFStringRef s = CFSTR("{null}"); + if (value) { + const _cfmp_deallocation_record R = *(_cfmp_deallocation_record *)value; + s = CFStringCreateWithFormat(NULL, NULL, CFSTR("{p:%d,s:%d,r:%d,i:%d}"), R.port, R.doSend, R.doReceive, R.invalidated); + } + return s; +} +CF_BREAKPOINT_FUNCTION(void _CFMachPortDeallocationFailure(void)); +void _cfmp_log_failure(const char *const msg, _cfmp_deallocation_record *pr) { + if (pr) { + const _cfmp_deallocation_record R = *pr; + os_log(OS_LOG_DEFAULT, "*** %{public}s break on '_CFMachPortDeallocationFailure' to debug: {p:%{private}d,s:%d,r:%d,i:%d}", msg, R.port, R.doSend, R.doReceive, R.invalidated); + } + else { + os_log(OS_LOG_DEFAULT, "*** %{public}s break on '_CFMachPortDeallocationFailure' to debug: {null}", msg); + } + _CFMachPortDeallocationFailure(); +} + +// all pending deallocates are recording in this global set, if there are every +static os_unfair_lock _cfmp_records_lock = OS_UNFAIR_LOCK_INIT; +CF_INLINE CFMutableSetRef _cfmp_records() { // mutations of result GuardedBy(_cfmp_records_lock) + static CFSetCallBacks oCallbacks; + static CFMutableSetRef oRecords; + static dispatch_once_t oGuard; + dispatch_once(&oGuard, ^{ + oCallbacks.hash = _cfmp_hash; + oCallbacks.equal = _cfmp_equal; + oCallbacks.release = _cfmp_deallocation_record_release; + oCallbacks.copyDescription = _cfmp_copy_description; + oRecords = CFSetCreateMutable(NULL, 16, &oCallbacks); + }); + return oRecords; +}; +CF_INLINE _cfmp_deallocation_record *_cfmp_find_record_for_port(CFSetRef records, const mach_port_t port) { + _cfmp_deallocation_record lookup = {.port = port}; + _cfmp_deallocation_record *pr = (_cfmp_deallocation_record *)CFSetGetValue(records, &lookup); + return pr; +} +CF_INLINE void _cfmp_record_deallocation(const mach_port_t port, const Boolean doSend, const Boolean doReceive) { + if (port == MACH_PORT_NULL) { return; } + if (doSend == false && doReceive == false) { return; } + + // now that we know we're not a no-op, look for an existing deallocation record + CFMutableSetRef records = _cfmp_records(); + Boolean cleanupNow = false; + _cfmp_deallocation_record R; + + os_unfair_lock_lock(&_cfmp_records_lock); + _cfmp_deallocation_record *pr = _cfmp_find_record_for_port(records, port); + if (pr) { + // if we have a pr it means we're expecting invalidation. which has either happened or not. if not, record doSend/Receive for later, otherwise get ready to handle it. + R = *(_cfmp_deallocation_record *)pr; + if (R.invalidated) { + cleanupNow = true; + R.port = port; + R.doSend = doSend; + R.doReceive = doReceive; + CFSetRemoveValue(records, pr); + } else { + pr->doSend = doSend; + pr->doReceive = doReceive; + } + } else { + cleanupNow = true; + R.port = port; + R.doSend = doSend; + R.doReceive = doReceive; + } + os_unfair_lock_unlock(&_cfmp_records_lock); + + if (cleanupNow) { + _cfmp_mod_refs(R.port, R.doSend, R.doReceive); + } +} +CF_INLINE void _cfmp_record_intent_to_invalidate(const mach_port_t port) { + CFMutableSetRef records = _cfmp_records(); + _cfmp_deallocation_record *pr = calloc(1, sizeof(_cfmp_deallocation_record)); + if (pr) { + pr->port = port; + os_unfair_lock_lock(&_cfmp_records_lock); + CFSetAddValue(records, pr); + os_unfair_lock_unlock(&_cfmp_records_lock); + } +} +CF_INLINE void _cfmp_source_invalidated(mach_port_t port) { + Boolean cleanupNow = false; + _cfmp_deallocation_record R; + + CFMutableSetRef records = _cfmp_records(); + os_unfair_lock_lock(&_cfmp_records_lock); + _cfmp_deallocation_record *pr = _cfmp_find_record_for_port(records, port); + if (pr) { + R = *(_cfmp_deallocation_record *)pr; + if (!R.invalidated) { + cleanupNow = true; + CFSetRemoveValue(records, pr); + } else { + _cfmp_log_failure("already invalidated", pr); + } + } else { + _cfmp_log_failure("not expecting invalidation", pr); + } + os_unfair_lock_unlock(&_cfmp_records_lock); + + if (cleanupNow) { + _cfmp_mod_refs(R.port, R.doSend, R.doReceive); + } +} enum { kCFMachPortStateReady = 0, @@ -50,10 +204,7 @@ struct __CFMachPort { CFRuntimeBase _base; int32_t _state; mach_port_t _port; /* immutable */ -#if __HAS_DISPATCH__ dispatch_source_t _dsrc; /* protected by _lock */ - dispatch_semaphore_t _dsrc_sem; /* protected by _lock */ -#endif CFMachPortInvalidationCallBack _icallout; /* protected by _lock */ CFRunLoopSourceRef _source; /* immutable, once created */ CFMachPortCallBack _callout; /* immutable */ @@ -65,7 +216,6 @@ struct __CFMachPort { /* Bit 1 in the base reserved bits is used for has-receive-ref state */ /* Bit 2 in the base reserved bits is used for has-send-ref state */ -/* Bit 3 in the base reserved bits is used for has-send-ref2 state */ CF_INLINE Boolean __CFMachPortHasReceive(CFMachPortRef mp) { return (Boolean)__CFBitfieldGetValue(((const CFRuntimeBase *)mp)->_cfinfo[CF_INFO_BITS], 1, 1); @@ -83,15 +233,6 @@ CF_INLINE void __CFMachPortSetHasSend(CFMachPortRef mp) { __CFBitfieldSetValue(((CFRuntimeBase *)mp)->_cfinfo[CF_INFO_BITS], 2, 2, 1); } -CF_INLINE Boolean __CFMachPortHasSend2(CFMachPortRef mp) { - return (Boolean)__CFBitfieldGetValue(((const CFRuntimeBase *)mp)->_cfinfo[CF_INFO_BITS], 3, 3); -} -/* - //TODO we should either use this or delete the entire Send2 flag concept -CF_INLINE void __CFMachPortSetHasSend2(CFMachPortRef mp) { - __CFBitfieldSetValue(((CFRuntimeBase *)mp)->_cfinfo[CF_INFO_BITS], 3, 3, 1); -} -*/ CF_INLINE Boolean __CFMachPortIsValid(CFMachPortRef mp) { return kCFMachPortStateReady == mp->_state; } @@ -160,19 +301,17 @@ static void __CFMachPortDeallocate(CFTypeRef cf) { CHECK_FOR_FORK_RET(); CFMachPortRef mp = (CFMachPortRef)cf; - // CFMachPortRef is invalid before we get here, except under GC + // CFMachPortRef is invalid before we get here __CFLock(&mp->_lock); CFRunLoopSourceRef source = NULL; Boolean wasReady = (mp->_state == kCFMachPortStateReady); if (wasReady) { mp->_state = kCFMachPortStateInvalidating; OSMemoryBarrier(); -#if __HAS_DISPATCH__ if (mp->_dsrc) { dispatch_source_cancel(mp->_dsrc); mp->_dsrc = NULL; } -#endif source = mp->_source; mp->_source = NULL; } @@ -181,36 +320,12 @@ static void __CFMachPortDeallocate(CFTypeRef cf) { } mp->_state = kCFMachPortStateDeallocating; - // hand ownership of the port and semaphores to the block below - mach_port_t port = mp->_port; -#if __HAS_DISPATCH__ - dispatch_semaphore_t sem1 = mp->_dsrc_sem; -#endif - Boolean doSend2 = __CFMachPortHasSend2(mp), doSend = __CFMachPortHasSend(mp), doReceive = __CFMachPortHasReceive(mp); - + const mach_port_t port = mp->_port; + const Boolean doSend = __CFMachPortHasSend(mp), doReceive = __CFMachPortHasReceive(mp); __CFUnlock(&mp->_lock); -#if __HAS_DISPATCH__ - dispatch_async(__CFDispatchQueueGetGenericBackground(), ^{ - if (sem1) { - dispatch_semaphore_wait(sem1, DISPATCH_TIME_FOREVER); - // immediate release is only safe if dispatch_semaphore_signal() does not touch the semaphore after doing the signal bit - dispatch_release(sem1); - } - - // MUST deallocate the send right FIRST if necessary, - // then the receive right if necessary. Don't ask me why; - // if it's done in the other order the port will leak. - if (doSend2) { - mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_SEND, -1); - } - if (doSend) { - mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_SEND, -1); - } - if (doReceive) { - mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); - } - }); -#endif + + _cfmp_record_deallocation(port, doSend, doReceive); + } // This lock protects __CFAllMachPorts. Take before any instance-specific lock. @@ -225,14 +340,13 @@ static Boolean __CFMachPortCheck(mach_port_t port) { return (KERN_SUCCESS != ret || (0 == (type & MACH_PORT_TYPE_PORT_RIGHTS))) ? false : true; } -#if 0 static void __CFMachPortChecker(Boolean fromTimer) { __CFLock(&__CFAllMachPortsLock); // take this lock first before any instance-specific lock for (CFIndex idx = 0, cnt = __CFAllMachPorts ? CFArrayGetCount(__CFAllMachPorts) : 0; idx < cnt; idx++) { CFMachPortRef mp = (CFMachPortRef)CFArrayGetValueAtIndex(__CFAllMachPorts, idx); if (!mp) continue; // second clause cleans no-longer-wanted CFMachPorts out of our strong table - if (!__CFMachPortCheck(mp->_port) || (!kCFUseCollectableAllocator && 1 == CFGetRetainCount(mp))) { + if (!__CFMachPortCheck(mp->_port) || (1 == CFGetRetainCount(mp))) { CFRunLoopSourceRef source = NULL; Boolean wasReady = (mp->_state == kCFMachPortStateReady); if (wasReady) { @@ -245,17 +359,14 @@ static void __CFMachPortChecker(Boolean fromTimer) { else { mp->_state = kCFMachPortStateInvalidating; OSMemoryBarrier(); -#if __HAS_DISPATCH__ if (mp->_dsrc) { dispatch_source_cancel(mp->_dsrc); mp->_dsrc = NULL; } -#endif source = mp->_source; mp->_source = NULL; CFRetain(mp); __CFUnlock(&mp->_lock); -#if __HAS_DISPATCH__ dispatch_async(dispatch_get_main_queue(), ^{ // We can grab the mach port-specific spin lock here since we're no longer on the same thread as the one taking the all mach ports spin lock. // But be sure to release it during callouts @@ -264,7 +375,6 @@ static void __CFMachPortChecker(Boolean fromTimer) { __CFUnlock(&mp->_lock); CFRelease(mp); }); -#endif } } CFArrayRemoveValueAtIndex(__CFAllMachPorts, idx); @@ -274,7 +384,7 @@ static void __CFMachPortChecker(Boolean fromTimer) { } __CFUnlock(&__CFAllMachPortsLock); }; -#endif + static CFTypeID __kCFMachPortTypeID = _kCFRuntimeNotATypeID; @@ -291,7 +401,7 @@ static const CFRuntimeClass __CFMachPortClass = { }; CFTypeID CFMachPortGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFMachPortTypeID = _CFRuntimeRegisterClass(&__CFMachPortClass); }); return __kCFMachPortTypeID; } @@ -344,10 +454,7 @@ CFMachPortRef _CFMachPortCreateWithPort2(CFAllocatorRef allocator, mach_port_t p return NULL; } memory->_port = port; -#if __HAS_DISPATCH__ memory->_dsrc = NULL; - memory->_dsrc_sem = NULL; -#endif memory->_icallout = NULL; memory->_source = NULL; memory->_context.info = NULL; @@ -359,7 +466,7 @@ CFMachPortRef _CFMachPortCreateWithPort2(CFAllocatorRef allocator, mach_port_t p memory->_callout = callout; memory->_lock = CFLockInit; if (NULL != context) { - objc_memmove_collectable(&memory->_context, context, sizeof(CFMachPortContext)); + memmove(&memory->_context, context, sizeof(CFMachPortContext)); memory->_context.info = context->retain ? (void *)context->retain(context->info) : context->info; memory->retain = context->retain; memory->release = context->release; @@ -374,20 +481,19 @@ CFMachPortRef _CFMachPortCreateWithPort2(CFAllocatorRef allocator, mach_port_t p mp = memory; if (shouldFreeInfo) *shouldFreeInfo = false; -#if __HAS_DISPATCH__ if (type & MACH_PORT_TYPE_SEND_RIGHTS) { + _cfmp_record_intent_to_invalidate(port); dispatch_source_t theSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_MACH_SEND, port, DISPATCH_MACH_SEND_DEAD, _CFMachPortQueue()); if (theSource) { - dispatch_semaphore_t sem = dispatch_semaphore_create(0); - dispatch_retain(sem); - dispatch_source_set_cancel_handler(theSource, ^{ dispatch_semaphore_signal(sem); dispatch_release(sem); dispatch_release(theSource); }); + dispatch_source_set_cancel_handler(theSource, ^{ + _cfmp_source_invalidated(port); + dispatch_release(theSource); + }); dispatch_source_set_event_handler(theSource, ^{ __CFMachPortChecker(false); }); - memory->_dsrc_sem = sem; memory->_dsrc = theSource; dispatch_resume(theSource); } } -#endif } if (mp && !CFMachPortIsValid(mp)) { // must do this outside lock to avoid deadlock @@ -443,12 +549,10 @@ void CFMachPortInvalidate(CFMachPortRef mp) { break; } } -#if __HAS_DISPATCH__ if (mp->_dsrc) { dispatch_source_cancel(mp->_dsrc); mp->_dsrc = NULL; } -#endif source = mp->_source; mp->_source = NULL; } @@ -471,8 +575,8 @@ mach_port_t CFMachPortGetPort(CFMachPortRef mp) { void CFMachPortGetContext(CFMachPortRef mp, CFMachPortContext *context) { __CFGenericValidateType(mp, CFMachPortGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); - objc_memmove_collectable(context, &mp->_context, sizeof(CFMachPortContext)); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + memmove(context, &mp->_context, sizeof(CFMachPortContext)); } Boolean CFMachPortIsValid(CFMachPortRef mp) { @@ -583,7 +687,7 @@ CFRunLoopSourceRef CFMachPortCreateRunLoopSource(CFAllocatorRef allocator, CFMac context.retain = (const void *(*)(const void *))CFRetain; context.release = (void (*)(const void *))CFRelease; context.copyDescription = (CFStringRef (*)(const void *))__CFMachPortCopyDescription; - context.equal = __CFMachPortEqual; + context.equal = (Boolean (*)(const void *, const void *))__CFMachPortEqual; context.hash = (CFHashCode (*)(const void *))__CFMachPortHash; context.getPort = __CFMachPortGetPort; context.perform = __CFMachPortPerform; diff --git a/CoreFoundation/RunLoop.subproj/CFMachPort.h b/CoreFoundation/RunLoop.subproj/CFMachPort.h index acb8c3bf40..c3f59c1071 100644 --- a/CoreFoundation/RunLoop.subproj/CFMachPort.h +++ b/CoreFoundation/RunLoop.subproj/CFMachPort.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFMachPort.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFMACHPORT__) @@ -19,7 +14,6 @@ #if TARGET_OS_MAC #include - CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN diff --git a/CoreFoundation/RunLoop.subproj/CFMessagePort.c b/CoreFoundation/RunLoop.subproj/CFMessagePort.c index 56c75181d7..235480f829 100644 --- a/CoreFoundation/RunLoop.subproj/CFMessagePort.c +++ b/CoreFoundation/RunLoop.subproj/CFMessagePort.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFMessagePort.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -28,7 +23,7 @@ #include #if __HAS_DISPATCH__ #include -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) && __has_include() #include #endif #endif @@ -64,10 +59,8 @@ struct __CFMessagePort { int32_t _perPID; /* zero if not per-pid, else pid */ CFMachPortRef _replyPort; /* only used by remote port; immutable once created; invalidated */ CFRunLoopSourceRef _source; /* only used by local port; immutable once created; invalidated */ -#if __HAS_DISPATCH__ dispatch_source_t _dispatchSource; /* only used by local port; invalidated */ dispatch_queue_t _dispatchQ; /* only used by local port */ -#endif CFMessagePortInvalidationCallBack _icallout; CFMessagePortCallBack _callout; /* only used by local port; immutable */ CFMessagePortCallBackEx _calloutEx; /* only used by local port; immutable */ @@ -255,7 +248,7 @@ static void __CFMessagePortDeallocate(CFTypeRef cf) { CFIndex cnt = 0; if (NULL != __CFAllRemoteMessagePorts) { cnt = CFDictionaryGetCount(__CFAllRemoteMessagePorts); - remotePorts = CFAllocatorAllocate(kCFAllocatorSystemDefault, cnt * sizeof(CFMessagePortRef), __kCFAllocatorGCScannedMemory); + remotePorts = CFAllocatorAllocate(kCFAllocatorSystemDefault, cnt * sizeof(CFMessagePortRef), 0); CFDictionaryGetKeysAndValues(__CFAllRemoteMessagePorts, NULL, (const void **)remotePorts); for (CFIndex idx = 0; idx < cnt; idx++) { CFRetain(remotePorts[idx]); @@ -287,7 +280,7 @@ static const CFRuntimeClass __CFMessagePortClass = { }; CFTypeID CFMessagePortGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFMessagePortTypeID = _CFRuntimeRegisterClass(&__CFMessagePortClass); }); return __kCFMessagePortTypeID; } @@ -375,10 +368,8 @@ static CFMessagePortRef __CFMessagePortCreateLocal(CFAllocatorRef allocator, CFS memory->_perPID = perPID ? getpid() : 0; // actual value not terribly useful for local ports memory->_replyPort = NULL; memory->_source = NULL; -#if __HAS_DISPATCH__ memory->_dispatchSource = NULL; memory->_dispatchQ = NULL; -#endif memory->_icallout = NULL; memory->_callout = callout; memory->_calloutEx = calloutEx; @@ -448,7 +439,7 @@ CFMessagePortRef _CFMessagePortCreateLocalEx(CFAllocatorRef allocator, CFStringR static CFMessagePortRef __CFMessagePortCreateRemote(CFAllocatorRef allocator, CFStringRef name, Boolean perPID, CFIndex pid) { CFMessagePortRef memory; - CFMachPortRef native = NULL; + CFMachPortRef native; CFMachPortContext ctx; uint8_t *utfname = NULL; CFIndex size; @@ -495,10 +486,8 @@ static CFMessagePortRef __CFMessagePortCreateRemote(CFAllocatorRef allocator, CF memory->_perPID = perPID ? pid : 0; memory->_replyPort = NULL; memory->_source = NULL; -#if __HAS_DISPATCH__ memory->_dispatchSource = NULL; memory->_dispatchQ = NULL; -#endif memory->_icallout = NULL; memory->_callout = NULL; memory->_calloutEx = NULL; @@ -507,6 +496,8 @@ static CFMessagePortRef __CFMessagePortCreateRemote(CFAllocatorRef allocator, CF ctx.retain = NULL; ctx.release = NULL; ctx.copyDescription = NULL; + task_get_bootstrap_port(mach_task_self(), &bp); + native = (KERN_SUCCESS == ret) ? CFMachPortCreateWithPort(allocator, port, __CFMessagePortDummyCallback, &ctx, NULL) : NULL; CFAllocatorDeallocate(kCFAllocatorSystemDefault, utfname); if (NULL == native) { // name is released by deallocation @@ -591,6 +582,30 @@ Boolean CFMessagePortSetName(CFMessagePortRef ms, CFStringRef name) { kern_return_t ret; mach_port_t bs, mp; task_get_bootstrap_port(mach_task_self(), &bs); + ret = bootstrap_check_in(bs, (char *)utfname, &mp); /* If we're started by launchd or the old mach_init */ + if (ret == KERN_SUCCESS) { + ret = mach_port_insert_right(mach_task_self(), mp, mp, MACH_MSG_TYPE_MAKE_SEND); + if (KERN_SUCCESS == ret) { + CFMachPortContext ctx = {0, ms, NULL, NULL, NULL}; + native = CFMachPortCreateWithPort(allocator, mp, __CFMessagePortDummyCallback, &ctx, NULL); + __CFMessagePortSetExtraMachRef(ms); + } else { + mach_port_destroy(mach_task_self(), mp); + CFAllocatorDeallocate(kCFAllocatorSystemDefault, utfname); + CFRelease(name); + return false; + } + } + if (!native) { + CFMachPortContext ctx = {0, ms, NULL, NULL, NULL}; + native = CFMachPortCreate(allocator, __CFMessagePortDummyCallback, &ctx, NULL); + if (!native) { + CFAllocatorDeallocate(kCFAllocatorSystemDefault, utfname); + CFRelease(name); + return false; + } + mp = CFMachPortGetPort(native); + } CFMachPortSetInvalidationCallBack(native, __CFMessagePortInvalidationCallBack); ms->_port = native; if (NULL != oldPort && oldPort != native) { @@ -620,6 +635,10 @@ Boolean CFMessagePortSetName(CFMessagePortRef ms, CFStringRef name) { CFDictionaryAddValue(__CFAllLocalMessagePorts, name, ms); __CFUnlock(&__CFAllMessagePortsLock); } + else if (name) { + // if setting the same name on the message port, then avoid leak + CFRelease(name); + } CFAllocatorDeallocate(kCFAllocatorSystemDefault, utfname); return true; @@ -628,7 +647,7 @@ Boolean CFMessagePortSetName(CFMessagePortRef ms, CFStringRef name) { void CFMessagePortGetContext(CFMessagePortRef ms, CFMessagePortContext *context) { __CFGenericValidateType(ms, CFMessagePortGetTypeID()); //#warning CF: assert that this is a local port - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); memmove(context, &ms->_context, sizeof(CFMessagePortContext)); } @@ -639,13 +658,11 @@ void CFMessagePortInvalidate(CFMessagePortRef ms) { } __CFMessagePortLock(ms); if (__CFMessagePortIsValid(ms)) { -#if __HAS_DISPATCH__ if (ms->_dispatchSource) { dispatch_source_cancel(ms->_dispatchSource); ms->_dispatchSource = NULL; ms->_dispatchQ = NULL; } -#endif CFMessagePortInvalidationCallBack callout = ms->_icallout; CFRunLoopSourceRef source = ms->_source; @@ -1052,12 +1069,7 @@ CFRunLoopSourceRef CFMessagePortCreateRunLoopSource(CFAllocatorRef allocator, CF CFRelease(ms->_source); ms->_source = NULL; } - Boolean hasDispatchSource = false; -#if __HAS_DISPATCH__ - hasDispatchSource = (NULL == ms->_dispatchSource); -#endif - if (NULL == ms->_source && !hasDispatchSource && __CFMessagePortIsValid(ms)) - { + if (NULL == ms->_source && NULL == ms->_dispatchSource && __CFMessagePortIsValid(ms)) { CFRunLoopSourceContext1 context; context.version = 1; context.info = (void *)ms; @@ -1077,8 +1089,6 @@ CFRunLoopSourceRef CFMessagePortCreateRunLoopSource(CFAllocatorRef allocator, CF return result; } -#if __HAS_DISPATCH__ - void CFMessagePortSetDispatchQueue(CFMessagePortRef ms, dispatch_queue_t queue) { __CFGenericValidateType(ms, CFMessagePortGetTypeID()); __CFMessagePortLock(ms); @@ -1108,7 +1118,7 @@ void CFMessagePortSetDispatchQueue(CFMessagePortRef ms, dispatch_queue_t queue) mach_port_t port = __CFMessagePortGetPort(ms); if (MACH_PORT_NULL != port) { static dispatch_queue_t mportQueue = NULL; - static dispatch_once_t once = 0; + static dispatch_once_t once; dispatch_once(&once, ^{ dispatch_queue_attr_t dqattr = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, qos_class_main(), 0); mportQueue = dispatch_queue_create("com.apple.CFMessagePort", dqattr); @@ -1161,5 +1171,4 @@ void CFMessagePortSetDispatchQueue(CFMessagePortRef ms, dispatch_queue_t queue) } __CFMessagePortUnlock(ms); } -#endif diff --git a/CoreFoundation/RunLoop.subproj/CFMessagePort.h b/CoreFoundation/RunLoop.subproj/CFMessagePort.h index e24ac45839..25b05b31bc 100644 --- a/CoreFoundation/RunLoop.subproj/CFMessagePort.h +++ b/CoreFoundation/RunLoop.subproj/CFMessagePort.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFMessagePort.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFMESSAGEPORT__) @@ -18,9 +13,7 @@ #include #include #include -#if __HAS_DISPATCH__ #include -#endif CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN @@ -67,9 +60,7 @@ CF_EXPORT SInt32 CFMessagePortSendRequest(CFMessagePortRef remote, SInt32 msgid, CF_EXPORT CFRunLoopSourceRef CFMessagePortCreateRunLoopSource(CFAllocatorRef allocator, CFMessagePortRef local, CFIndex order); -#if __HAS_DISPATCH__ CF_EXPORT void CFMessagePortSetDispatchQueue(CFMessagePortRef ms, dispatch_queue_t queue) CF_AVAILABLE(10_6, 4_0); -#endif CF_EXTERN_C_END CF_IMPLICIT_BRIDGING_DISABLED diff --git a/CoreFoundation/RunLoop.subproj/CFRunLoop.c b/CoreFoundation/RunLoop.subproj/CFRunLoop.c index 4eec228289..b92c2bf9b3 100644 --- a/CoreFoundation/RunLoop.subproj/CFRunLoop.c +++ b/CoreFoundation/RunLoop.subproj/CFRunLoop.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFRunLoop.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Tony Parker */ @@ -32,43 +27,57 @@ #include #endif +#if __has_include() +#include +#else enum { - CF_NO_ERROR = 0, - CF_OVERFLOW_ERROR = (1 << 0), + CHECKINT_NO_ERROR = 0, + CHECKINT_OVERFLOW_ERROR = (1 << 0), }; -CF_INLINE uint64_t __check_uint64_add_unsigned_unsigned(uint64_t x, uint64_t y, int32_t* err) { +CF_INLINE uint64_t check_uint64_add(uint64_t x, uint64_t y, int32_t* err) { if((ULLONG_MAX - y) < x) - *err = *err | CF_OVERFLOW_ERROR; + *err = *err | CHECKINT_OVERFLOW_ERROR; return x + y; }; +#endif -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI -#include -#if __HAS_DISPATCH__ +#if __HAS_DISPATCH__ && __has_include() #include +#elif __HAS_DISPATCH__ +extern dispatch_queue_t _dispatch_runloop_root_queue_create_4CF(const char *_Nullable label, unsigned long flags); +extern mach_port_t _dispatch_runloop_root_queue_get_port_4CF(dispatch_queue_t queue); +extern void _dispatch_source_set_runloop_timer_4CF(dispatch_source_t source, dispatch_time_t start, uint64_t interval, uint64_t leeway); #endif + +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI +#include #include #include #include #include #include #include + extern pthread_t pthread_main_thread_np(void); typedef struct voucher_s *voucher_t; + +extern voucher_t _Nullable voucher_copy(void); +extern void os_release(void *object); + extern mach_port_t _dispatch_get_main_queue_port_4CF(void); -extern void _dispatch_main_queue_callback_4CF(mach_msg_header_t *msg); + #elif DEPLOYMENT_TARGET_WINDOWS || TARGET_OS_CYGWIN -#include #include #define DISPATCH_EXPORT extern DISPATCH_EXPORT HANDLE _dispatch_get_main_queue_handle_4CF(void); -DISPATCH_EXPORT void _dispatch_main_queue_callback_4CF(void*); +DISPATCH_EXPORT void _dispatch_main_queue_callback_4CF(void); #define MACH_PORT_NULL 0 #define mach_port_name_t HANDLE #define mach_port_t HANDLE #define _dispatch_get_main_queue_port_4CF _dispatch_get_main_queue_handle_4CF +#define _dispatch_main_queue_callback_4CF(x) _dispatch_main_queue_callback_4CF() #define LARGE_INTEGER uint64_t @@ -81,7 +90,11 @@ DISPATCH_EXPORT void _dispatch_main_queue_callback_4CF(void*); #include #include +dispatch_runloop_handle_t _dispatch_get_main_queue_handle_4CF(void); +extern void _dispatch_main_queue_callback_4CF(void *_Null_unspecified msg); + #define _dispatch_get_main_queue_port_4CF _dispatch_get_main_queue_handle_4CF +#define _dispatch_main_queue_callback_4CF(x) _dispatch_main_queue_callback_4CF(x) #endif #endif @@ -90,19 +103,14 @@ CF_EXPORT pthread_t _CF_pthread_main_thread_np(void); #define pthread_main_thread_np() _CF_pthread_main_thread_np() #endif -#if DEPLOYMENT_RUNTIME_SWIFT -// Just declare these here instead of bothering with the header file -extern void *_Block_copy(const void *aBlock); -extern void _Block_release(const void *aBlock); - -#define Block_copy(...) ((__typeof(__VA_ARGS__))_Block_copy((const void *)(__VA_ARGS__))) -#define Block_release(...) _Block_release((const void *)(__VA_ARGS__)) - -#else #include +#if __has_include() +#include +#elif __has_include("Block_private.h") +#include "Block_private.h" #endif -#if DEPLOYMENT_TARGET_MACOSX +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS #define USE_DISPATCH_SOURCE_FOR_TIMERS __HAS_DISPATCH__ #define USE_MK_TIMER_TOO 1 #else @@ -235,7 +243,7 @@ CF_PRIVATE void __CFRestartAllThreads(CFArrayRef threads) { for (CFIndex idx = 0; idx < CFArrayGetCount(threads); idx++) { thread_act_t thread = (thread_act_t)(uintptr_t)CFArrayGetValueAtIndex(threads, idx); kern_return_t ret = thread_resume(thread); - if (ret != KERN_SUCCESS) CRASH("*** Failure from thread_resume (%d) ***", ret); + if (ret != KERN_SUCCESS) CRASH("*** Failure from thread_resume (%x) ***", ret); mach_port_deallocate(mach_task_self(), thread); } } @@ -483,7 +491,7 @@ CF_INLINE kern_return_t __CFPortSetRemove(__CFPort port, __CFPortSet portSet) { if (CFPORT_NULL == port) { return -1; } - return epoll_ctl(portSet, EPOLL_CTL_DEL, port, NULL); + return epoll_ctl(portSet, EPOLL_CTL_DEL, port, NULL); } CF_INLINE void __CFPortSetFree(__CFPortSet portSet) { @@ -547,7 +555,7 @@ static kern_return_t mk_timer_arm(int timer, int64_t expire_time) { // Non-repeating timer ts.it_interval.tv_sec = 0; ts.it_interval.tv_nsec = 0; - + return timerfd_settime(timer, TFD_TIMER_ABSTIME, &ts, NULL); } @@ -606,6 +614,11 @@ static kern_return_t mk_timer_cancel(HANDLE name, LARGE_INTEGER *result_time) { } #endif + +CF_EXPORT Boolean __CFMainThreadHasExited; + +CF_BREAKPOINT_FUNCTION(void _CFRunLoopError_MainThreadHasExited(void)); + #pragma mark - #pragma mark Modes @@ -912,6 +925,9 @@ static CFRunLoopModeRef __CFRunLoopFindMode(CFRunLoopRef rl, CFStringRef modeNam #endif #if USE_MK_TIMER_TOO rlm->_timerPort = mk_timer_create(); + if (rlm->_timerPort == MACH_PORT_NULL) { + CRASH("*** Unable to create timer Port (%d) ***", rlm->_timerPort); + } ret = __CFPortSetInsert(rlm->_timerPort, rlm->_portSet); if (KERN_SUCCESS != ret) CRASH("*** Unable to insert timer port into port set. (%d) ***", ret); #endif @@ -998,7 +1014,7 @@ CFWindowsMessageQueueHandler _CFRunLoopGetWindowsMessageQueueHandler(CFRunLoopRe CFLog(kCFLogLevelError, CFSTR("_CFRunLoopGetWindowsMessageQueueMask: kCFRunLoopCommonModes unsupported")); HALT; } - if (rl != CFRunLoopGetCurrent()) { + if (!_CFRunLoopIsCurrent(rl)) { CFLog(kCFLogLevelError, CFSTR("_CFRunLoopGetWindowsMessageQueueHandler: run loop parameter must be the current run loop")); HALT; } @@ -1018,7 +1034,7 @@ void _CFRunLoopSetWindowsMessageQueueHandler(CFRunLoopRef rl, CFStringRef modeNa CFLog(kCFLogLevelError, CFSTR("_CFRunLoopGetWindowsMessageQueueMask: kCFRunLoopCommonModes unsupported")); HALT; } - if (rl != CFRunLoopGetCurrent()) { + if (!_CFRunLoopIsCurrent(rl)) { CFLog(kCFLogLevelError, CFSTR("_CFRunLoopGetWindowsMessageQueueHandler: run loop parameter must be the current run loop")); HALT; } @@ -1418,7 +1434,7 @@ static const CFRuntimeClass __CFRunLoopClass = { CF_PRIVATE void __CFFinalizeRunLoop(uintptr_t data); CFTypeID CFRunLoopGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFRunLoopTypeID = _CFRuntimeRegisterClass(&__CFRunLoopClass); __kCFRunLoopModeTypeID = _CFRuntimeRegisterClass(&__CFRunLoopModeClass); }); return __kCFRunLoopTypeID; } @@ -1458,6 +1474,43 @@ static CFRunLoopRef __CFRunLoopCreate(pthread_t t) { static CFMutableDictionaryRef __CFRunLoops = NULL; static CFLock_t loopsLock = CFLockInit; +CF_PRIVATE CFRunLoopRef _CFRunLoopCacheLookup(pthread_t t, const Boolean createCache) { + CFRunLoopRef loop = NULL; + if (pthread_equal(t, kNilPthreadT)) { + t = pthread_main_thread_np(); + } + __CFLock(&loopsLock); + if (!__CFRunLoops && createCache) { + __CFUnlock(&loopsLock); + CFMutableDictionaryRef dict = CFDictionaryCreateMutable(kCFAllocatorSystemDefault, 0, NULL, &kCFTypeDictionaryValueCallBacks); + CFRunLoopRef mainLoop = __CFRunLoopCreate(pthread_main_thread_np()); + CFDictionarySetValue(dict, pthreadPointer(pthread_main_thread_np()), mainLoop); + if (!OSAtomicCompareAndSwapPtrBarrier(NULL, dict, (void * volatile *)&__CFRunLoops)) { + CFRelease(dict); + } + CFRelease(mainLoop); + __CFLock(&loopsLock); + } + if (__CFRunLoops) { + loop = (CFRunLoopRef)CFDictionaryGetValue(__CFRunLoops, pthreadPointer(t)); + } + __CFUnlock(&loopsLock); + return loop; +} + +// should only be called by Foundation +CF_EXPORT Boolean _CFRunLoopIsCurrent(const CFRunLoopRef rl) { + Boolean result = false; + if (rl) { + CFRunLoopRef loop = (CFRunLoopRef)_CFGetTSDCreateIfNeeded(__CFTSDKeyRunLoop, false); + if (loop == NULL) { + loop = _CFRunLoopCacheLookup(pthread_self(), false); + } + result = (rl == loop); + } + return result; +} + // should only be called by Foundation // t==0 is a synonym for "main thread" that always works CF_EXPORT CFRunLoopRef _CFRunLoopGet0(pthread_t t) { @@ -2028,10 +2081,10 @@ static void __CFArmNextTimerInMode(CFRunLoopModeRef rlm, CFRunLoopRef rl) { // discount timers currently firing if (__CFRunLoopTimerIsFiring(t)) continue; - int32_t err = CF_NO_ERROR; + int32_t err = CHECKINT_NO_ERROR; uint64_t oneTimerSoftDeadline = t->_fireTSR; - uint64_t oneTimerHardDeadline = __check_uint64_add_unsigned_unsigned(t->_fireTSR, __CFTimeIntervalToTSR(t->_tolerance), &err); - if (err != CF_NO_ERROR) oneTimerHardDeadline = UINT64_MAX; + uint64_t oneTimerHardDeadline = check_uint64_add(t->_fireTSR, __CFTimeIntervalToTSR(t->_tolerance), &err); + if (err != CHECKINT_NO_ERROR) oneTimerHardDeadline = UINT64_MAX; // We can stop searching if the soft deadline for this timer exceeds the current hard deadline. Otherwise, later timers with lower tolerance could still have earlier hard deadlines. if (oneTimerSoftDeadline > nextHardDeadline) { @@ -2375,20 +2428,20 @@ static int __CFPollFileDescriptors(struct pollfd *fds, nfds_t nfds, uint64_t tim struct timespec *tsPtr = &ts; if (timeout == TIMEOUT_INFINITY) { tsPtr = NULL; - + } else if (elapsed < timeout) { uint64_t delta = timeout - elapsed; ts.tv_sec = delta / 1000000000UL; ts.tv_nsec = delta % 1000000000UL; } - + result = ppoll(fds, 1, tsPtr, NULL); - + if (result == -1 && errno == EINTR) { uint64_t end = mach_absolute_time(); elapsed += (end - start); start = end; - + } else { return result; } @@ -2402,33 +2455,33 @@ static Boolean __CFRunLoopServiceFileDescriptors(__CFPortSet portSet, __CFPort o .fd = (onePort == CFPORT_NULL) ? portSet : onePort, .events = POLLIN }; - + ssize_t result = __CFPollFileDescriptors(&fdInfo, 1, timeout); if (result == 0) return false; - - CFAssert(result != -1, __kCFLogAssertion, "%s(): error %d from ppoll", __PRETTY_FUNCTION__, errno); - + + CFAssert2(result != -1, __kCFLogAssertion, "%s(): error %d from ppoll", __PRETTY_FUNCTION__, errno); + int awokenFd; - + if (onePort != CFPORT_NULL) { - CFAssert(0 == (fdInfo.revents & (POLLERR|POLLHUP)), __kCFLogAssertion, "%s(): ppoll reported error for fd", __PRETTY_FUNCTION__); + CFAssert1(0 == (fdInfo.revents & (POLLERR|POLLHUP)), __kCFLogAssertion, "%s(): ppoll reported error for fd", __PRETTY_FUNCTION__); awokenFd = onePort; - + } else { struct epoll_event event; do { result = epoll_wait(portSet, &event, 1 /*numEvents*/, 0 /*timeout*/); } while (result == -1 && errno == EINTR); - CFAssert(result >= 0, __kCFLogAssertion, "%s(): error %d from epoll_wait", __PRETTY_FUNCTION__, errno); - + CFAssert2(result >= 0, __kCFLogAssertion, "%s(): error %d from epoll_wait", __PRETTY_FUNCTION__, errno); + if (result == 0) { return false; } - + awokenFd = event.data.fd; } - + // Now we acknowledge the wakeup. awokenFd is an eventfd (or possibly a // timerfd ?). In either case, we read an 8-byte integer, as per eventfd(2) // and timerfd_create(2). @@ -2436,14 +2489,14 @@ static Boolean __CFRunLoopServiceFileDescriptors(__CFPortSet portSet, __CFPort o do { result = read(awokenFd, &value, sizeof(value)); } while (result == -1 && errno == EINTR); - + if (result == -1 && errno == EAGAIN) { - // Another thread stole the wakeup for this fd. (FIXME Can this actually + // Another thread stole the wakeup for this fd. (FIXME Can this actually // happen?) - return false; + return false; } - - CFAssert(result == sizeof(value), __kCFLogAssertion, "%s(): error %d from read(2) while acknowledging wakeup", __PRETTY_FUNCTION__, errno); + + CFAssert2(result == sizeof(value), __kCFLogAssertion, "%s(): error %d from read(2) while acknowledging wakeup", __PRETTY_FUNCTION__, errno); if (livePort) *livePort = awokenFd; @@ -2477,7 +2530,7 @@ static Boolean __CFRunLoopWaitForMultipleObjects(__CFPortSet portSet, HANDLE *on // The run loop mode and loop are already in proper unlocked state from caller waitResult = MsgWaitForMultipleObjectsEx(__CFMin(handleCount, MAXIMUM_WAIT_OBJECTS), handles, timeout, mask, MWMO_INPUTAVAILABLE); - CFAssert(waitResult != WAIT_FAILED, __kCFLogAssertion, "%s(): error %d from MsgWaitForMultipleObjects", __PRETTY_FUNCTION__, GetLastError()); + CFAssert2(waitResult != WAIT_FAILED, __kCFLogAssertion, "%s(): error %d from MsgWaitForMultipleObjects", __PRETTY_FUNCTION__, GetLastError()); if (waitResult == WAIT_TIMEOUT) { // do nothing, just return to caller @@ -2495,7 +2548,7 @@ static Boolean __CFRunLoopWaitForMultipleObjects(__CFPortSet portSet, HANDLE *on if (livePort) *livePort = handles[waitResult-WAIT_ABANDONED_0]; result = true; } else { - CFAssert(waitResult == WAIT_FAILED, __kCFLogAssertion, "%s(): unexpected result from MsgWaitForMultipleObjects: %d", __PRETTY_FUNCTION__, waitResult); + CFAssert2(waitResult == WAIT_FAILED, __kCFLogAssertion, "%s(): unexpected result from MsgWaitForMultipleObjects: %d", __PRETTY_FUNCTION__, waitResult); result = false; } @@ -2560,7 +2613,7 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter } } #endif - + #if __HAS_DISPATCH__ dispatch_source_t timeout_timer = NULL; #endif @@ -2651,7 +2704,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter // Must push the local-to-this-activation ports in on every loop // iteration, as this mode could be run re-entrantly and we don't // want these ports to get serviced. - #if __HAS_DISPATCH__ __CFPortSetInsert(dispatchPort, waitSet); #endif @@ -2664,11 +2716,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI #if USE_DISPATCH_SOURCE_FOR_TIMERS do { - if (kCFUseCollectableAllocator) { - // objc_clear_stack(0); - // - memset(msg_buffer, 0, sizeof(msg_buffer)); - } msg = (mach_msg_header_t *)msg_buffer; __CFRunLoopServiceMachPort(waitSet, &msg, sizeof(msg_buffer), &livePort, poll ? 0 : TIMEOUT_INFINITY, &voucherState, &voucherCopy); @@ -2689,11 +2736,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter } } while (1); #else - if (kCFUseCollectableAllocator) { - // objc_clear_stack(0); - // - memset(msg_buffer, 0, sizeof(msg_buffer)); - } msg = (mach_msg_header_t *)msg_buffer; __CFRunLoopServiceMachPort(waitSet, &msg, sizeof(msg_buffer), &livePort, poll ? 0 : TIMEOUT_INFINITY, &voucherState, &voucherCopy); #endif @@ -2715,7 +2757,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter // iteration, as this mode could be run re-entrantly and we don't // want these ports to get serviced. Also, we don't want them left // in there if this function returns. - #if __HAS_DISPATCH__ __CFPortSetRemove(dispatchPort, waitSet); #endif @@ -2816,7 +2857,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter #endif else { CFRUNLOOP_WAKEUP_FOR_SOURCE(); - // Despite the name, this works for windows handles as well CFRunLoopSourceRef rls = __CFRunLoopModeFindSourceForMachPort(rl, rlm, livePort); if (rls) { @@ -2839,7 +2879,6 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter __CFRunLoopDoBlocks(rl, rlm); - if (sourceHandledThisLoop && stopAfterHandle) { retVal = kCFRunLoopRunHandledSource; } else if (timeout_context->termTSR < mach_absolute_time()) { @@ -2853,9 +2892,8 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter } else if (__CFRunLoopModeIsEmpty(rl, rlm, previousMode)) { retVal = kCFRunLoopRunFinished; } - - } while (0 == retVal); + } while (0 == retVal); #if __HAS_DISPATCH__ if (timeout_timer) { dispatch_source_cancel(timeout_timer); @@ -2869,8 +2907,18 @@ static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInter return retVal; } +CF_BREAKPOINT_FUNCTION(void _CFRunLoopError_RunCalledWithInvalidMode(void)); + SInt32 CFRunLoopRunSpecific(CFRunLoopRef rl, CFStringRef modeName, CFTimeInterval seconds, Boolean returnAfterSourceHandled) { /* DOES CALLOUT */ CHECK_FOR_FORK(); + if (modeName == NULL || modeName == kCFRunLoopCommonModes || CFEqual(modeName, kCFRunLoopCommonModes)) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CFLog(kCFLogLevelError, CFSTR("invalid mode '%@' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution."), modeName); + _CFRunLoopError_RunCalledWithInvalidMode(); + }); + return kCFRunLoopRunFinished; + } if (__CFRunLoopIsDeallocating(rl)) return kCFRunLoopRunFinished; __CFRunLoopLock(rl); CFRunLoopModeRef currentMode = __CFRunLoopFindMode(rl, modeName, false); @@ -2942,14 +2990,14 @@ void CFRunLoopWakeUp(CFRunLoopRef rl) { * to lose a wakeup, but the send may fail if there is already a * wakeup pending, since the queue length is 1. */ ret = __CFSendTrivialMachMessage(rl->_wakeUpPort, 0, MACH_SEND_TIMEOUT, 0); - if (ret != MACH_MSG_SUCCESS && ret != MACH_SEND_TIMED_OUT) CRASH("*** Unable to send message to wake up port. (%d) ***", ret); + if (ret != MACH_MSG_SUCCESS && ret != MACH_SEND_TIMED_OUT) CRASH("*** Unable to send message to wake up port. (%x) ***", ret); #elif DEPLOYMENT_TARGET_LINUX && !TARGET_OS_CYGWIN int ret; do { ret = eventfd_write(rl->_wakeUpPort, 1); } while (ret == -1 && errno == EINTR); - - CFAssert(0 == ret, __kCFLogAssertion, "%s(): Unable to send wake message to eventfd", __PRETTY_FUNCTION__); + + CFAssert1(0 == ret, __kCFLogAssertion, "%s(): Unable to send wake message to eventfd", __PRETTY_FUNCTION__); #elif DEPLOYMENT_TARGET_WINDOWS SetEvent(rl->_wakeUpPort); #endif @@ -2990,6 +3038,14 @@ CF_EXPORT Boolean _CFRunLoopModeContainsMode(CFRunLoopRef rl, CFStringRef modeNa void CFRunLoopPerformBlock(CFRunLoopRef rl, CFTypeRef mode, void (^block)(void)) { CHECK_FOR_FORK(); + if (__CFMainThreadHasExited && rl == CFRunLoopGetMain()) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CFLog(kCFLogLevelError, CFSTR("Attempting to perform block on main runloop, but the main thread as exited. This message will only log once. Break on _CFRunLoopError_MainThreadHasExited to debug.")); + }); + _CFRunLoopError_MainThreadHasExited(); + return; + } if (CFStringGetTypeID() == CFGetTypeID(mode)) { mode = CFStringCreateCopy(kCFAllocatorSystemDefault, (CFStringRef)mode); __CFRunLoopLock(rl); @@ -3069,6 +3125,15 @@ Boolean CFRunLoopContainsSource(CFRunLoopRef rl, CFRunLoopSourceRef rls, CFStrin void CFRunLoopAddSource(CFRunLoopRef rl, CFRunLoopSourceRef rls, CFStringRef modeName) { /* DOES CALLOUT */ CHECK_FOR_FORK(); if (__CFRunLoopIsDeallocating(rl)) return; + if (__CFMainThreadHasExited && rl == CFRunLoopGetMain()) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CFLog(kCFLogLevelError, CFSTR("Attempting to add source to main runloop, but the main thread as exited. This message will only log once. Break on _CFRunLoopError_MainThreadHasExited to debug.")); + }); + _CFRunLoopError_MainThreadHasExited(); + return; + } + if (!__CFIsValid(rls)) return; Boolean doVer0Callout = false; __CFRunLoopLock(rl); @@ -3257,6 +3322,14 @@ void CFRunLoopAddObserver(CFRunLoopRef rl, CFRunLoopObserverRef rlo, CFStringRef CHECK_FOR_FORK(); CFRunLoopModeRef rlm; if (__CFRunLoopIsDeallocating(rl)) return; + if (__CFMainThreadHasExited && rl == CFRunLoopGetMain()) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CFLog(kCFLogLevelError, CFSTR("Attempting to add observer to main runloop, but the main thread as exited. This message will only log once. Break on _CFRunLoopError_MainThreadHasExited to debug.")); + }); + _CFRunLoopError_MainThreadHasExited(); + return; + } if (!__CFIsValid(rlo) || (NULL != rlo->_runLoop && rlo->_runLoop != rl)) return; __CFRunLoopLock(rl); if (modeName == kCFRunLoopCommonModes) { @@ -3359,6 +3432,14 @@ Boolean CFRunLoopContainsTimer(CFRunLoopRef rl, CFRunLoopTimerRef rlt, CFStringR void CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef rlt, CFStringRef modeName) { CHECK_FOR_FORK(); if (__CFRunLoopIsDeallocating(rl)) return; + if (__CFMainThreadHasExited && rl == CFRunLoopGetMain()) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CFLog(kCFLogLevelError, CFSTR("Attempting to add timer to main runloop, but the main thread as exited. This message will only log once. Break on _CFRunLoopError_MainThreadHasExited to debug.")); + }); + _CFRunLoopError_MainThreadHasExited(); + return; + } if (!__CFIsValid(rlt) || (NULL != rlt->_runLoop && rlt->_runLoop != rl)) return; __CFRunLoopLock(rl); if (modeName == kCFRunLoopCommonModes) { @@ -3400,7 +3481,7 @@ void CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef rlt, CFStringRef modeN if (!_CFExecutableLinkedOnOrAfter(CFSystemVersionLion)) { // Normally we don't do this on behalf of clients, but for // backwards compatibility due to the change in timer handling... - if (rl != CFRunLoopGetCurrent()) CFRunLoopWakeUp(rl); + if (!_CFRunLoopIsCurrent(rl)) { CFRunLoopWakeUp(rl); } } } if (NULL != rlm) { @@ -3526,7 +3607,7 @@ static const CFRuntimeClass __CFRunLoopSourceClass = { }; CFTypeID CFRunLoopSourceGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFRunLoopSourceTypeID = _CFRuntimeRegisterClass(&__CFRunLoopSourceClass); }); return __kCFRunLoopSourceTypeID; } @@ -3557,7 +3638,7 @@ CFRunLoopSourceRef CFRunLoopSourceCreate(CFAllocatorRef allocator, CFIndex order size = sizeof(CFRunLoopSourceContext1); break; } - objc_memmove_collectable(&memory->_context, context, size); + memmove(&memory->_context, context, size); if (context->retain) { memory->_context.version0.info = (void *)context->retain(context->info); } @@ -3632,7 +3713,7 @@ Boolean CFRunLoopSourceIsValid(CFRunLoopSourceRef rls) { void CFRunLoopSourceGetContext(CFRunLoopSourceRef rls, CFRunLoopSourceContext *context) { CHECK_FOR_FORK(); __CFGenericValidateType(rls, CFRunLoopSourceGetTypeID()); - CFAssert(0 == context->version || 1 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0 or 1", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version || 1 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0 or 1", __PRETTY_FUNCTION__); CFIndex size = 0; switch (context->version) { case 0: @@ -3718,7 +3799,7 @@ static const CFRuntimeClass __CFRunLoopObserverClass = { }; CFTypeID CFRunLoopObserverGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFRunLoopObserverTypeID = _CFRuntimeRegisterClass(&__CFRunLoopObserverClass); }); return __kCFRunLoopObserverTypeID; } @@ -3846,7 +3927,7 @@ Boolean CFRunLoopObserverIsValid(CFRunLoopObserverRef rlo) { void CFRunLoopObserverGetContext(CFRunLoopObserverRef rlo, CFRunLoopObserverContext *context) { CHECK_FOR_FORK(); __CFGenericValidateType(rlo, CFRunLoopObserverGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); *context = rlo->_context; } @@ -3911,7 +3992,7 @@ static const CFRuntimeClass __CFRunLoopTimerClass = { }; CFTypeID CFRunLoopTimerGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFRunLoopTimerTypeID = _CFRuntimeRegisterClass(&__CFRunLoopTimerClass); }); return __kCFRunLoopTimerTypeID; } @@ -4055,7 +4136,7 @@ void CFRunLoopTimerSetNextFireDate(CFRunLoopTimerRef rlt, CFAbsoluteTime fireDat // (which may be costly) for the caller, just in case. // (And useful for binary compatibility with older // code used to the older timer implementation.) - if (rl != CFRunLoopGetCurrent()) CFRunLoopWakeUp(rl); + if (!_CFRunLoopIsCurrent(rl)) { CFRunLoopWakeUp(rl); } CFRelease(rl); } else { __CFRunLoopTimerFireTSRLock(); @@ -4146,7 +4227,7 @@ Boolean CFRunLoopTimerIsValid(CFRunLoopTimerRef rlt) { void CFRunLoopTimerGetContext(CFRunLoopTimerRef rlt, CFRunLoopTimerContext *context) { CHECK_FOR_FORK(); __CFGenericValidateType(rlt, CFRunLoopTimerGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); *context = rlt->_context; } diff --git a/CoreFoundation/RunLoop.subproj/CFRunLoop.h b/CoreFoundation/RunLoop.subproj/CFRunLoop.h index eb5d561e90..83dd9ec3a4 100644 --- a/CoreFoundation/RunLoop.subproj/CFRunLoop.h +++ b/CoreFoundation/RunLoop.subproj/CFRunLoop.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFRunLoop.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFRUNLOOP__) @@ -26,6 +21,8 @@ CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFRunLoopMode CF_EXTENSIBLE_STRING_ENUM; + typedef struct CF_BRIDGED_MUTABLE_TYPE(id) __CFRunLoop * CFRunLoopRef; typedef struct CF_BRIDGED_MUTABLE_TYPE(id) __CFRunLoopSource * CFRunLoopSourceRef; @@ -53,24 +50,24 @@ typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) { kCFRunLoopAllActivities = 0x0FFFFFFFU }; -CF_EXPORT const CFStringRef kCFRunLoopDefaultMode; -CF_EXPORT const CFStringRef kCFRunLoopCommonModes; +CF_EXPORT const CFRunLoopMode kCFRunLoopDefaultMode; +CF_EXPORT const CFRunLoopMode kCFRunLoopCommonModes; CF_EXPORT CFTypeID CFRunLoopGetTypeID(void); CF_EXPORT CFRunLoopRef CFRunLoopGetCurrent(void); CF_EXPORT CFRunLoopRef CFRunLoopGetMain(void); -CF_EXPORT CFStringRef CFRunLoopCopyCurrentMode(CFRunLoopRef rl); +CF_EXPORT CFRunLoopMode CFRunLoopCopyCurrentMode(CFRunLoopRef rl); CF_EXPORT CFArrayRef CFRunLoopCopyAllModes(CFRunLoopRef rl); -CF_EXPORT void CFRunLoopAddCommonMode(CFRunLoopRef rl, CFStringRef mode); +CF_EXPORT void CFRunLoopAddCommonMode(CFRunLoopRef rl, CFRunLoopMode mode); -CF_EXPORT CFAbsoluteTime CFRunLoopGetNextTimerFireDate(CFRunLoopRef rl, CFStringRef mode); +CF_EXPORT CFAbsoluteTime CFRunLoopGetNextTimerFireDate(CFRunLoopRef rl, CFRunLoopMode mode); CF_EXPORT void CFRunLoopRun(void); -CF_EXPORT CFRunLoopRunResult CFRunLoopRunInMode(CFStringRef mode, CFTimeInterval seconds, Boolean returnAfterSourceHandled); +CF_EXPORT CFRunLoopRunResult CFRunLoopRunInMode(CFRunLoopMode mode, CFTimeInterval seconds, Boolean returnAfterSourceHandled); CF_EXPORT Boolean CFRunLoopIsWaiting(CFRunLoopRef rl); CF_EXPORT void CFRunLoopWakeUp(CFRunLoopRef rl); CF_EXPORT void CFRunLoopStop(CFRunLoopRef rl); @@ -79,17 +76,17 @@ CF_EXPORT void CFRunLoopStop(CFRunLoopRef rl); CF_EXPORT void CFRunLoopPerformBlock(CFRunLoopRef rl, CFTypeRef mode, void (^block)(void)) CF_AVAILABLE(10_6, 4_0); #endif -CF_EXPORT Boolean CFRunLoopContainsSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode); -CF_EXPORT void CFRunLoopAddSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode); -CF_EXPORT void CFRunLoopRemoveSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode); +CF_EXPORT Boolean CFRunLoopContainsSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopAddSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopRemoveSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFRunLoopMode mode); -CF_EXPORT Boolean CFRunLoopContainsObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode); -CF_EXPORT void CFRunLoopAddObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode); -CF_EXPORT void CFRunLoopRemoveObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode); +CF_EXPORT Boolean CFRunLoopContainsObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopAddObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopRemoveObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFRunLoopMode mode); -CF_EXPORT Boolean CFRunLoopContainsTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode); -CF_EXPORT void CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode); -CF_EXPORT void CFRunLoopRemoveTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode); +CF_EXPORT Boolean CFRunLoopContainsTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode); +CF_EXPORT void CFRunLoopRemoveTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFRunLoopMode mode); typedef struct { CFIndex version; @@ -99,8 +96,8 @@ typedef struct { CFStringRef (*copyDescription)(const void *info); Boolean (*equal)(const void *info1, const void *info2); CFHashCode (*hash)(const void *info); - void (*schedule)(void *info, CFRunLoopRef rl, CFStringRef mode); - void (*cancel)(void *info, CFRunLoopRef rl, CFStringRef mode); + void (*schedule)(void *info, CFRunLoopRef rl, CFRunLoopMode mode); + void (*cancel)(void *info, CFRunLoopRef rl, CFRunLoopMode mode); void (*perform)(void *info); } CFRunLoopSourceContext; diff --git a/CoreFoundation/RunLoop.subproj/CFSocket.c b/CoreFoundation/RunLoop.subproj/CFSocket.c index d6a51a940a..79b0f0edae 100644 --- a/CoreFoundation/RunLoop.subproj/CFSocket.c +++ b/CoreFoundation/RunLoop.subproj/CFSocket.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSocket.c - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Christopher Kane */ @@ -17,924 +12,924 @@ #if NEW_SOCKET /* - - #include - #include "CFInternal.h" - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - - - extern void _CFRunLoopSourceWakeUpRunLoops(CFRunLoopSourceRef rls); - - #define INVALID_SOCKET (CFSocketNativeHandle)(-1) - #define MAX_SOCKADDR_LEN 256 - - - DISPATCH_HELPER_FUNCTIONS(sock, CFSocket) - - static Boolean sockfd_is_readable(int fd) { - if (fd < 0 || 1048576 <= fd) HALT; - size_t sz = ((fd + CHAR_BIT) / CHAR_BIT) + 7; // generous - fd_set *fdset = malloc(sz); - int ret; - do { - memset(fdset, 0, sz); - FD_SET(fd, fdset); - struct timespec ts = {0, 1000UL}; // 1 us - ret = pselect(fd + 1, fdset, NULL, NULL, &ts, NULL); - } while (ret < 0 && (EINTR == errno || EAGAIN == errno)); - Boolean isSet = ((0 < ret) && FD_ISSET(fd, fdset)); - free(fdset); - return isSet; - } - - static Boolean sockfd_is_writeable(int fd) { - if (fd < 0 || 1048576 <= fd) HALT; - size_t sz = ((fd + CHAR_BIT) / CHAR_BIT) + 7; // generous - fd_set *fdset = malloc(sz); - int ret; - do { - memset(fdset, 0, sz); - FD_SET(fd, fdset); - struct timespec ts = {0, 1000UL}; // 1 us - ret = pselect(fd + 1, NULL, fdset, NULL, &ts, NULL); - } while (ret < 0 && (EINTR == errno || EAGAIN == errno)); - Boolean isSet = ((0 < ret) && FD_ISSET(fd, fdset)); - free(fdset); - return isSet; - } - - - enum { - kCFSocketStateReady = 0, - kCFSocketStateInvalidating = 1, - kCFSocketStateInvalid = 2, - kCFSocketStateDeallocating = 3 - }; - - struct __shared_blob { - dispatch_source_t _rdsrc; - dispatch_source_t _wrsrc; - CFRunLoopSourceRef _source; - CFSocketNativeHandle _socket; - uint8_t _closeFD; - uint8_t _refCnt; - }; - - struct __CFSocket { - CFRuntimeBase _base; - struct __shared_blob *_shared; // non-NULL when valid, NULL when invalid - - uint8_t _state:2; // mutable, not written safely - uint8_t _isSaneFD:1; // immutable - uint8_t _connOriented:1; // immutable - uint8_t _wantConnect:1; // immutable - uint8_t _wantWrite:1; // immutable - uint8_t _wantReadType:2; // immutable - - uint8_t _error; - - uint8_t _rsuspended:1; - uint8_t _wsuspended:1; - uint8_t _readable:1; - uint8_t _writeable:1; - uint8_t _unused:4; - - uint8_t _reenableRead:1; - uint8_t _readDisabled:1; - uint8_t _reenableWrite:1; - uint8_t _writeDisabled:1; - uint8_t _connectDisabled:1; - uint8_t _connected:1; - uint8_t _leaveErrors:1; - uint8_t _closeOnInvalidate:1; - - int32_t _runLoopCounter; - - CFDataRef _address; // immutable, once created - CFDataRef _peerAddress; // immutable, once created - CFSocketCallBack _callout; // immutable - CFSocketContext _context; // immutable - }; - - - CF_INLINE Boolean __CFSocketIsValid(CFSocketRef sock) { - return kCFSocketStateReady == sock->_state; - } - - static CFStringRef __CFSocketCopyDescription(CFTypeRef cf) { - CFSocketRef sock = (CFSocketRef)cf; - CFStringRef contextDesc = NULL; - if (NULL != sock->_context.info && NULL != sock->_context.copyDescription) { - contextDesc = sock->_context.copyDescription(sock->_context.info); - } - if (NULL == contextDesc) { - contextDesc = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR(""), sock->_context.info); - } - Dl_info info; - void *addr = sock->_callout; - const char *name = (dladdr(addr, &info) && info.dli_saddr == addr && info.dli_sname) ? info.dli_sname : "???"; - int avail = -1; - ioctlsocket(sock->_shared ? sock->_shared->_socket : -1, FIONREAD, &avail); - CFStringRef result = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR( - "{valid = %s, socket = %d, " - "want connect = %s, connect disabled = %s, " - "want write = %s, reenable write = %s, write disabled = %s, " - "want read = %s, reenable read = %s, read disabled = %s, " - "leave errors = %s, close on invalidate = %s, connected = %s, " - "last error code = %d, bytes available for read = %d, " - "source = %p, callout = %s (%p), context = %@}"), - cf, CFGetAllocator(sock), __CFSocketIsValid(sock) ? "Yes" : "No", sock->_shared ? sock->_shared->_socket : -1, - sock->_wantConnect ? "Yes" : "No", sock->_connectDisabled ? "Yes" : "No", - sock->_wantWrite ? "Yes" : "No", sock->_reenableWrite ? "Yes" : "No", sock->_writeDisabled ? "Yes" : "No", - sock->_wantReadType ? "Yes" : "No", sock->_reenableRead ? "Yes" : "No", sock->_readDisabled? "Yes" : "No", - sock->_leaveErrors ? "Yes" : "No", sock->_closeOnInvalidate ? "Yes" : "No", sock->_connected ? "Yes" : "No", - sock->_error, avail, - sock->_shared ? sock->_shared->_source : NULL, name, addr, contextDesc); - if (NULL != contextDesc) { - CFRelease(contextDesc); - } - return result; - } - - static void __CFSocketDeallocate(CFTypeRef cf) { - CHECK_FOR_FORK_RET(); - CFSocketRef sock = (CFSocketRef)cf; - // Since CFSockets are cached, we can only get here sometime after being invalidated - sock->_state = kCFSocketStateDeallocating; - if (sock->_peerAddress) { - CFRelease(sock->_peerAddress); - sock->_peerAddress = NULL; - } - if (sock->_address) { - CFRelease(sock->_address); - sock->_address = NULL; - } - } - - static CFTypeID __kCFSocketTypeID = _kCFRuntimeNotATypeID; - - static const CFRuntimeClass __CFSocketClass = { - 0, - "CFSocket", - NULL, // init - NULL, // copy - __CFSocketDeallocate, - NULL, // equal - NULL, // hash - NULL, // - __CFSocketCopyDescription - }; - - static CFMutableArrayRef __CFAllSockets = NULL; - - CFTypeID CFSocketGetTypeID(void) { - static dispatch_once_t initOnce = 0; - dispatch_once(&initOnce, ^{ - __kCFSocketTypeID = _CFRuntimeRegisterClass(&__CFSocketClass); // initOnce covered - __CFAllSockets = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); - struct rlimit lim1; - int ret1 = getrlimit(RLIMIT_NOFILE, &lim1); - int mib[] = {CTL_KERN, KERN_MAXFILESPERPROC}; - int maxfd = 0; - size_t len = sizeof(int); - int ret0 = sysctl(mib, 2, &maxfd, &len, NULL, 0); - if (0 == ret0 && 0 == ret1 && lim1.rlim_max < maxfd) maxfd = lim1.rlim_max; - if (0 == ret1 && lim1.rlim_cur < maxfd) { - struct rlimit lim2 = lim1; - lim2.rlim_cur += 2304; - if (maxfd < lim2.rlim_cur) lim2.rlim_cur = maxfd; - setrlimit(RLIMIT_NOFILE, &lim2); - // we try, but do not go to extraordinary measures - } - }); - return __kCFSocketTypeID; - } - - CFSocketRef CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketNativeHandle ufd, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context) { - CHECK_FOR_FORK_RET(NULL); - - CFSocketGetTypeID(); // cause initialization if necessary - - struct stat statbuf; - int ret = fstat(ufd, &statbuf); - if (ret < 0) ufd = INVALID_SOCKET; - - Boolean sane = false; - if (INVALID_SOCKET != ufd) { - uint32_t type = (statbuf.st_mode & S_IFMT); - sane = (S_IFSOCK == type) || (S_IFIFO == type) || (S_IFCHR == type); - if (1 && !sane) { - CFLog(kCFLogLevelWarning, CFSTR("*** CFSocketCreateWithNative(): creating CFSocket with silly fd type (%07o) -- may or may not work"), type); - } - } - - if (INVALID_SOCKET != ufd) { - Boolean canHandle = false; - int tmp_kq = kqueue(); - if (0 <= tmp_kq) { - struct kevent ev[2]; - EV_SET(&ev[0], ufd, EVFILT_READ, EV_ADD, 0, 0, 0); - EV_SET(&ev[1], ufd, EVFILT_WRITE, EV_ADD, 0, 0, 0); - int ret = kevent(tmp_kq, ev, 2, NULL, 0, NULL); - canHandle = (0 <= ret); // if kevent(ADD) succeeds, can handle - close(tmp_kq); - } - if (1 && !canHandle) { - CFLog(kCFLogLevelWarning, CFSTR("*** CFSocketCreateWithNative(): creating CFSocket with unsupported fd type -- may or may not work")); - } - } - - if (INVALID_SOCKET == ufd) { - // Historically, bad ufd was allowed, but gave an uncached and already-invalid CFSocketRef - SInt32 size = sizeof(struct __CFSocket) - sizeof(CFRuntimeBase); - CFSocketRef memory = (CFSocketRef)_CFRuntimeCreateInstance(allocator, CFSocketGetTypeID(), size, NULL); - if (NULL == memory) { - return NULL; - } - memory->_callout = callout; - memory->_state = kCFSocketStateInvalid; - return memory; - } - - __block CFSocketRef sock = NULL; - dispatch_sync(__sockQueue(), ^{ - for (CFIndex idx = 0, cnt = CFArrayGetCount(__CFAllSockets); idx < cnt; idx++) { - CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFAllSockets, idx); - if (s->_shared->_socket == ufd) { - CFRetain(s); - sock = s; - return; - } - } - - SInt32 size = sizeof(struct __CFSocket) - sizeof(CFRuntimeBase); - CFSocketRef memory = (CFSocketRef)_CFRuntimeCreateInstance(allocator, CFSocketGetTypeID(), size, NULL); - if (NULL == memory) { - return; - } - - int socketType = 0; - if (INVALID_SOCKET != ufd) { - socklen_t typeSize = sizeof(socketType); - int ret = getsockopt(ufd, SOL_SOCKET, SO_TYPE, (void *)&socketType, (socklen_t *)&typeSize); - if (ret < 0) socketType = 0; - } - - memory->_rsuspended = true; - memory->_wsuspended = true; - memory->_readable = false; - memory->_writeable = false; - - memory->_isSaneFD = sane ? 1 : 0; - memory->_wantReadType = (callBackTypes & 0x3); - memory->_reenableRead = memory->_wantReadType ? true : false; - memory->_readDisabled = false; - memory->_wantWrite = (callBackTypes & kCFSocketWriteCallBack) ? true : false; - memory->_reenableWrite = false; - memory->_writeDisabled = false; - memory->_wantConnect = (callBackTypes & kCFSocketConnectCallBack) ? true : false; - memory->_connectDisabled = false; - memory->_leaveErrors = false; - memory->_closeOnInvalidate = true; - memory->_connOriented = (SOCK_STREAM == socketType || SOCK_SEQPACKET == socketType); - memory->_connected = (memory->_wantReadType == kCFSocketAcceptCallBack || !memory->_connOriented) ? true : false; - - memory->_error = 0; - memory->_runLoopCounter = 0; - memory->_address = NULL; - memory->_peerAddress = NULL; - memory->_context.info = NULL; - memory->_context.retain = NULL; - memory->_context.release = NULL; - memory->_context.copyDescription = NULL; - memory->_callout = callout; - if (NULL != context) { - objc_memmove_collectable(&memory->_context, context, sizeof(CFSocketContext)); - memory->_context.info = context->retain ? (void *)context->retain(context->info) : context->info; - } - - struct __shared_blob *shared = malloc(sizeof(struct __shared_blob)); - shared->_rdsrc = NULL; - shared->_wrsrc = NULL; - shared->_source = NULL; - shared->_socket = ufd; - shared->_closeFD = true; // copy of _closeOnInvalidate - shared->_refCnt = 1; // one for the CFSocket - memory->_shared = shared; - - if (memory->_wantReadType) { - dispatch_source_t dsrc = NULL; - if (sane) { - dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, ufd, 0, __sockQueue()); - } else { - dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, __sockQueue()); - dispatch_source_set_timer(dsrc, dispatch_time(DISPATCH_TIME_NOW, 0), NSEC_PER_SEC / 2, NSEC_PER_SEC); - } - dispatch_block_t event_block = ^{ - memory->_readable = true; - if (!memory->_rsuspended) { - dispatch_suspend(dsrc); - // CFLog(5, CFSTR("suspend %p due to read event block"), memory); - memory->_rsuspended = true; - } - if (shared->_source) { - CFRunLoopSourceSignal(shared->_source); - _CFRunLoopSourceWakeUpRunLoops(shared->_source); - } - }; - dispatch_block_t cancel_block = ^{ - shared->_rdsrc = NULL; - shared->_refCnt--; - if (0 == shared->_refCnt) { - if (shared->_closeFD) { - // thoroughly stop anything else from using the fd - (void)shutdown(shared->_socket, SHUT_RDWR); - int nullfd = open("/dev/null", O_RDONLY); - dup2(nullfd, shared->_socket); - close(nullfd); - close(shared->_socket); - } - free(shared); - } - dispatch_release(dsrc); - }; - dispatch_source_set_event_handler(dsrc, event_block); - dispatch_source_set_cancel_handler(dsrc, cancel_block); - shared->_rdsrc = dsrc; - } - if (memory->_wantWrite || memory->_wantConnect) { - dispatch_source_t dsrc = NULL; - if (sane) { - dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_WRITE, ufd, 0, __sockQueue()); - } else { - dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, __sockQueue()); - dispatch_source_set_timer(dsrc, dispatch_time(DISPATCH_TIME_NOW, 0), NSEC_PER_SEC / 2, NSEC_PER_SEC); - } - dispatch_block_t event_block = ^{ - memory->_writeable = true; - if (!memory->_wsuspended) { - dispatch_suspend(dsrc); - // CFLog(5, CFSTR("suspend %p due to write event block"), memory); - memory->_wsuspended = true; - } - if (shared->_source) { - CFRunLoopSourceSignal(shared->_source); - _CFRunLoopSourceWakeUpRunLoops(shared->_source); - } - }; - dispatch_block_t cancel_block = ^{ - shared->_wrsrc = NULL; - shared->_refCnt--; - if (0 == shared->_refCnt) { - if (shared->_closeFD) { - // thoroughly stop anything else from using the fd - (void)shutdown(shared->_socket, SHUT_RDWR); - int nullfd = open("/dev/null", O_RDONLY); - dup2(nullfd, shared->_socket); - close(nullfd); - close(shared->_socket); - } - free(shared); - } - dispatch_release(dsrc); - }; - dispatch_source_set_event_handler(dsrc, event_block); - dispatch_source_set_cancel_handler(dsrc, cancel_block); - shared->_wrsrc = dsrc; - } - - if (shared->_rdsrc) { - shared->_refCnt++; - } - if (shared->_wrsrc) { - shared->_refCnt++; - } - - memory->_state = kCFSocketStateReady; - CFArrayAppendValue(__CFAllSockets, memory); - sock = memory; - }); - // CFLog(5, CFSTR("CFSocketCreateWithNative(): created socket %p with callbacks 0x%x"), sock, callBackTypes); - if (sock && !CFSocketIsValid(sock)) { // must do this outside lock to avoid deadlock - CFRelease(sock); - sock = NULL; - } - return sock; - } - - CFSocketNativeHandle CFSocketGetNative(CFSocketRef sock) { - CHECK_FOR_FORK_RET(INVALID_SOCKET); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - return sock->_shared ? sock->_shared->_socket : INVALID_SOCKET; - } - - void CFSocketGetContext(CFSocketRef sock, CFSocketContext *context) { - __CFGenericValidateType(sock, CFSocketGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); - objc_memmove_collectable(context, &sock->_context, sizeof(CFSocketContext)); - } - - CFDataRef CFSocketCopyAddress(CFSocketRef sock) { - CHECK_FOR_FORK_RET(NULL); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - __block CFDataRef result = NULL; - dispatch_sync(__sockQueue(), ^{ - if (!sock->_address) { - if (!__CFSocketIsValid(sock)) return; - uint8_t name[MAX_SOCKADDR_LEN]; - socklen_t namelen = sizeof(name); - int ret = getsockname(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); - if (0 == ret && 0 < namelen) { - sock->_address = CFDataCreate(CFGetAllocator(sock), name, namelen); - } - } - result = sock->_address ? (CFDataRef)CFRetain(sock->_address) : NULL; - }); - return result; - } - - CFDataRef CFSocketCopyPeerAddress(CFSocketRef sock) { - CHECK_FOR_FORK_RET(NULL); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - __block CFDataRef result = NULL; - dispatch_sync(__sockQueue(), ^{ - if (!sock->_peerAddress) { - if (!__CFSocketIsValid(sock)) return; - uint8_t name[MAX_SOCKADDR_LEN]; - socklen_t namelen = sizeof(name); - int ret = getpeername(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); - if (0 == ret && 0 < namelen) { - sock->_peerAddress = CFDataCreate(CFGetAllocator(sock), name, namelen); - } - } - result = sock->_peerAddress ? (CFDataRef)CFRetain(sock->_peerAddress) : NULL; - }); - return result; - } - - CFOptionFlags CFSocketGetSocketFlags(CFSocketRef sock) { - CHECK_FOR_FORK(); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - __block CFOptionFlags flags = 0; - dispatch_sync(__sockQueue(), ^{ - if (sock->_reenableRead) flags |= sock->_wantReadType; // flags are same as types here - if (sock->_reenableWrite) flags |= kCFSocketAutomaticallyReenableWriteCallBack; - if (sock->_leaveErrors) flags |= kCFSocketLeaveErrors; - if (sock->_closeOnInvalidate) flags |= kCFSocketCloseOnInvalidate; - }); - return flags; - } - - void CFSocketSetSocketFlags(CFSocketRef sock, CFOptionFlags flags) { - CHECK_FOR_FORK(); - // CFLog(5, CFSTR("CFSocketSetSocketFlags(%p, 0x%x) starting"), sock, flags); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - dispatch_sync(__sockQueue(), ^{ - sock->_reenableRead = (sock->_wantReadType && ((flags & 0x3) == sock->_wantReadType)) ? true : false; - sock->_reenableWrite = (sock->_wantWrite && (flags & kCFSocketAutomaticallyReenableWriteCallBack)) ? true : false; - sock->_leaveErrors = (flags & kCFSocketLeaveErrors) ? true : false; - sock->_closeOnInvalidate = (flags & kCFSocketCloseOnInvalidate) ? true : false; - if (sock->_shared) sock->_shared->_closeFD = sock->_closeOnInvalidate; - }); - // CFLog(5, CFSTR("CFSocketSetSocketFlags(%p, 0x%x) done"), sock, flags); - } - - void CFSocketEnableCallBacks(CFSocketRef sock, CFOptionFlags callBackTypes) { - CHECK_FOR_FORK_RET(); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - // CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) starting"), sock, callBackTypes); - dispatch_sync(__sockQueue(), ^{ - if (!__CFSocketIsValid(sock)) return; - if (sock->_wantReadType && (callBackTypes & 0x3) == sock->_wantReadType) { - if (sockfd_is_readable(sock->_shared->_socket)) { - sock->_readable = true; - // CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) socket is readable"), sock, callBackTypes); - if (!sock->_rsuspended) { - dispatch_suspend(sock->_shared->_rdsrc); - sock->_rsuspended = true; - } - // If the source exists, but is now invalid, this next stuff is relatively harmless. - if (sock->_shared->_source) { - CFRunLoopSourceSignal(sock->_shared->_source); - _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); - } - } else if (sock->_rsuspended && sock->_shared->_rdsrc) { - sock->_rsuspended = false; - dispatch_resume(sock->_shared->_rdsrc); - } - sock->_readDisabled = false; - } - if (sock->_wantWrite && (callBackTypes & kCFSocketWriteCallBack)) { - if (sockfd_is_writeable(sock->_shared->_socket)) { - sock->_writeable = true; - if (!sock->_wsuspended) { - dispatch_suspend(sock->_shared->_wrsrc); - sock->_wsuspended = true; - } - // If the source exists, but is now invalid, this next stuff is relatively harmless. - if (sock->_shared->_source) { - CFRunLoopSourceSignal(sock->_shared->_source); - _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); - } - } else if (sock->_wsuspended && sock->_shared->_wrsrc) { - sock->_wsuspended = false; - dispatch_resume(sock->_shared->_wrsrc); - } - sock->_writeDisabled = false; - } - if (sock->_wantConnect && !sock->_connected && (callBackTypes & kCFSocketConnectCallBack)) { - if (sockfd_is_writeable(sock->_shared->_socket)) { - sock->_writeable = true; - if (!sock->_wsuspended) { - dispatch_suspend(sock->_shared->_wrsrc); - sock->_wsuspended = true; - } - // If the source exists, but is now invalid, this next stuff is relatively harmless. - if (sock->_shared->_source) { - CFRunLoopSourceSignal(sock->_shared->_source); - _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); - } - } else if (sock->_wsuspended && sock->_shared->_wrsrc) { - sock->_wsuspended = false; - dispatch_resume(sock->_shared->_wrsrc); - } - sock->_connectDisabled = false; - } - }); - // CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) done"), sock, callBackTypes); - } - - void CFSocketDisableCallBacks(CFSocketRef sock, CFOptionFlags callBackTypes) { - CHECK_FOR_FORK_RET(); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - // CFLog(5, CFSTR("CFSocketDisableCallBacks(%p, 0x%x) starting"), sock, callBackTypes); - dispatch_sync(__sockQueue(), ^{ - if (!__CFSocketIsValid(sock)) return; - if (sock->_wantReadType && (callBackTypes & 0x3) == sock->_wantReadType) { - if (!sock->_rsuspended && sock->_shared->_rdsrc) { - dispatch_suspend(sock->_shared->_rdsrc); - sock->_rsuspended = true; - } - sock->_readDisabled = true; - } - if (sock->_wantWrite && (callBackTypes & kCFSocketWriteCallBack)) { - if (!sock->_wsuspended && sock->_shared->_wrsrc) { - dispatch_suspend(sock->_shared->_wrsrc); - sock->_wsuspended = true; - } - sock->_writeDisabled = true; - } - if (sock->_wantConnect && !sock->_connected && (callBackTypes & kCFSocketConnectCallBack)) { - if (!sock->_wsuspended && sock->_shared->_wrsrc) { - dispatch_suspend(sock->_shared->_wrsrc); - sock->_wsuspended = true; - } - sock->_connectDisabled = true; - } - }); - // CFLog(5, CFSTR("CFSocketDisableCallBacks(%p, 0x%x) done"), sock, callBackTypes); - } - - void CFSocketInvalidate(CFSocketRef sock) { - CHECK_FOR_FORK_RET(); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - CFRetain(sock); - // CFLog(5, CFSTR("CFSocketInvalidate(%p) starting"), sock); - __block CFRunLoopSourceRef source = NULL; - __block Boolean wasReady = false; - dispatch_sync(__sockQueue(), ^{ - wasReady = (sock->_state == kCFSocketStateReady); - if (wasReady) { - sock->_state = kCFSocketStateInvalidating; - OSMemoryBarrier(); - for (CFIndex idx = 0, cnt = CFArrayGetCount(__CFAllSockets); idx < cnt; idx++) { - CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFAllSockets, idx); - if (s == sock) { - CFArrayRemoveValueAtIndex(__CFAllSockets, idx); - break; - } - } - if (sock->_shared->_rdsrc) { - dispatch_source_cancel(sock->_shared->_rdsrc); - if (sock->_rsuspended) { - sock->_rsuspended = false; - dispatch_resume(sock->_shared->_rdsrc); - } - } - if (sock->_shared->_wrsrc) { - dispatch_source_cancel(sock->_shared->_wrsrc); - if (sock->_wsuspended) { - sock->_wsuspended = false; - dispatch_resume(sock->_shared->_wrsrc); - } - } - source = sock->_shared->_source; - sock->_shared->_source = NULL; - sock->_shared->_refCnt--; - if (0 == sock->_shared->_refCnt) { - if (sock->_shared->_closeFD) { - // thoroughly stop anything else from using the fd - (void)shutdown(sock->_shared->_socket, SHUT_RDWR); - int nullfd = open("/dev/null", O_RDONLY); - dup2(nullfd, sock->_shared->_socket); - close(nullfd); - close(sock->_shared->_socket); - } - free(sock->_shared); - } - sock->_shared = NULL; - } - }); - if (wasReady) { - if (NULL != source) { - CFRunLoopSourceInvalidate(source); - CFRelease(source); - } - void *info = sock->_context.info; - sock->_context.info = NULL; - if (sock->_context.release) { - sock->_context.release(info); - } - sock->_state = kCFSocketStateInvalid; - OSMemoryBarrier(); - } - // CFLog(5, CFSTR("CFSocketInvalidate(%p) done%s"), sock, wasReady ? " -- done on this thread" : ""); - CFRelease(sock); - } - - Boolean CFSocketIsValid(CFSocketRef sock) { - __CFGenericValidateType(sock, CFSocketGetTypeID()); - if (!__CFSocketIsValid(sock)) return false; - struct stat statbuf; - int ret = sock->_shared ? fstat(sock->_shared->_socket, &statbuf) : -1; - if (ret < 0) { + +#include +#include "CFInternal.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +extern void _CFRunLoopSourceWakeUpRunLoops(CFRunLoopSourceRef rls); + +#define INVALID_SOCKET (CFSocketNativeHandle)(-1) +#define MAX_SOCKADDR_LEN 256 + + +DISPATCH_HELPER_FUNCTIONS(sock, CFSocket) + +static Boolean sockfd_is_readable(int fd) { + if (fd < 0 || 1048576 <= fd) HALT; + size_t sz = ((fd + CHAR_BIT) / CHAR_BIT) + 7; // generous + fd_set *fdset = malloc(sz); + int ret; + do { + memset(fdset, 0, sz); + FD_SET(fd, fdset); + struct timespec ts = {0, 1000UL}; // 1 us + ret = pselect(fd + 1, fdset, NULL, NULL, &ts, NULL); + } while (ret < 0 && (EINTR == errno || EAGAIN == errno)); + Boolean isSet = ((0 < ret) && FD_ISSET(fd, fdset)); + free(fdset); + return isSet; +} + +static Boolean sockfd_is_writeable(int fd) { + if (fd < 0 || 1048576 <= fd) HALT; + size_t sz = ((fd + CHAR_BIT) / CHAR_BIT) + 7; // generous + fd_set *fdset = malloc(sz); + int ret; + do { + memset(fdset, 0, sz); + FD_SET(fd, fdset); + struct timespec ts = {0, 1000UL}; // 1 us + ret = pselect(fd + 1, NULL, fdset, NULL, &ts, NULL); + } while (ret < 0 && (EINTR == errno || EAGAIN == errno)); + Boolean isSet = ((0 < ret) && FD_ISSET(fd, fdset)); + free(fdset); + return isSet; +} + + +enum { + kCFSocketStateReady = 0, + kCFSocketStateInvalidating = 1, + kCFSocketStateInvalid = 2, + kCFSocketStateDeallocating = 3 +}; + +struct __shared_blob { + dispatch_source_t _rdsrc; + dispatch_source_t _wrsrc; + CFRunLoopSourceRef _source; + CFSocketNativeHandle _socket; + uint8_t _closeFD; + uint8_t _refCnt; +}; + +struct __CFSocket { + CFRuntimeBase _base; + struct __shared_blob *_shared; // non-NULL when valid, NULL when invalid + + uint8_t _state:2; // mutable, not written safely + uint8_t _isSaneFD:1; // immutable + uint8_t _connOriented:1; // immutable + uint8_t _wantConnect:1; // immutable + uint8_t _wantWrite:1; // immutable + uint8_t _wantReadType:2; // immutable + + uint8_t _error; + + uint8_t _rsuspended:1; + uint8_t _wsuspended:1; + uint8_t _readable:1; + uint8_t _writeable:1; + uint8_t _unused:4; + + uint8_t _reenableRead:1; + uint8_t _readDisabled:1; + uint8_t _reenableWrite:1; + uint8_t _writeDisabled:1; + uint8_t _connectDisabled:1; + uint8_t _connected:1; + uint8_t _leaveErrors:1; + uint8_t _closeOnInvalidate:1; + + int32_t _runLoopCounter; + + CFDataRef _address; // immutable, once created + CFDataRef _peerAddress; // immutable, once created + CFSocketCallBack _callout; // immutable + CFSocketContext _context; // immutable +}; + + +CF_INLINE Boolean __CFSocketIsValid(CFSocketRef sock) { + return kCFSocketStateReady == sock->_state; +} + +static CFStringRef __CFSocketCopyDescription(CFTypeRef cf) { + CFSocketRef sock = (CFSocketRef)cf; + CFStringRef contextDesc = NULL; + if (NULL != sock->_context.info && NULL != sock->_context.copyDescription) { + contextDesc = sock->_context.copyDescription(sock->_context.info); + } + if (NULL == contextDesc) { + contextDesc = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR(""), sock->_context.info); + } + Dl_info info; + void *addr = sock->_callout; + const char *name = (dladdr(addr, &info) && info.dli_saddr == addr && info.dli_sname) ? info.dli_sname : "???"; + int avail = -1; + ioctlsocket(sock->_shared ? sock->_shared->_socket : -1, FIONREAD, &avail); + CFStringRef result = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR( + "{valid = %s, socket = %d, " + "want connect = %s, connect disabled = %s, " + "want write = %s, reenable write = %s, write disabled = %s, " + "want read = %s, reenable read = %s, read disabled = %s, " + "leave errors = %s, close on invalidate = %s, connected = %s, " + "last error code = %d, bytes available for read = %d, " + "source = %p, callout = %s (%p), context = %@}"), + cf, CFGetAllocator(sock), __CFSocketIsValid(sock) ? "Yes" : "No", sock->_shared ? sock->_shared->_socket : -1, + sock->_wantConnect ? "Yes" : "No", sock->_connectDisabled ? "Yes" : "No", + sock->_wantWrite ? "Yes" : "No", sock->_reenableWrite ? "Yes" : "No", sock->_writeDisabled ? "Yes" : "No", + sock->_wantReadType ? "Yes" : "No", sock->_reenableRead ? "Yes" : "No", sock->_readDisabled? "Yes" : "No", + sock->_leaveErrors ? "Yes" : "No", sock->_closeOnInvalidate ? "Yes" : "No", sock->_connected ? "Yes" : "No", + sock->_error, avail, + sock->_shared ? sock->_shared->_source : NULL, name, addr, contextDesc); + if (NULL != contextDesc) { + CFRelease(contextDesc); + } + return result; +} + +static void __CFSocketDeallocate(CFTypeRef cf) { + CHECK_FOR_FORK_RET(); + CFSocketRef sock = (CFSocketRef)cf; + // Since CFSockets are cached, we can only get here sometime after being invalidated + sock->_state = kCFSocketStateDeallocating; + if (sock->_peerAddress) { + CFRelease(sock->_peerAddress); + sock->_peerAddress = NULL; + } + if (sock->_address) { + CFRelease(sock->_address); + sock->_address = NULL; + } +} + +static CFTypeID __kCFSocketTypeID = _kCFRuntimeNotATypeID; + +static const CFRuntimeClass __CFSocketClass = { + 0, + "CFSocket", + NULL, // init + NULL, // copy + __CFSocketDeallocate, + NULL, // equal + NULL, // hash + NULL, // + __CFSocketCopyDescription +}; + +static CFMutableArrayRef __CFAllSockets = NULL; + +CFTypeID CFSocketGetTypeID(void) { + static dispatch_once_t initOnce; + dispatch_once(&initOnce, ^{ + __kCFSocketTypeID = _CFRuntimeRegisterClass(&__CFSocketClass); // initOnce covered + __CFAllSockets = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); + struct rlimit lim1; + int ret1 = getrlimit(RLIMIT_NOFILE, &lim1); + int mib[] = {CTL_KERN, KERN_MAXFILESPERPROC}; + int maxfd = 0; + size_t len = sizeof(int); + int ret0 = sysctl(mib, 2, &maxfd, &len, NULL, 0); + if (0 == ret0 && 0 == ret1 && lim1.rlim_max < maxfd) maxfd = lim1.rlim_max; + if (0 == ret1 && lim1.rlim_cur < maxfd) { + struct rlimit lim2 = lim1; + lim2.rlim_cur += 2304; + if (maxfd < lim2.rlim_cur) lim2.rlim_cur = maxfd; + setrlimit(RLIMIT_NOFILE, &lim2); + // we try, but do not go to extraordinary measures + } + }); + return __kCFSocketTypeID; +} + +CFSocketRef CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketNativeHandle ufd, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context) { + CHECK_FOR_FORK_RET(NULL); + + CFSocketGetTypeID(); // cause initialization if necessary + + struct stat statbuf; + int ret = fstat(ufd, &statbuf); + if (ret < 0) ufd = INVALID_SOCKET; + + Boolean sane = false; + if (INVALID_SOCKET != ufd) { + uint32_t type = (statbuf.st_mode & S_IFMT); + sane = (S_IFSOCK == type) || (S_IFIFO == type) || (S_IFCHR == type); + if (1 && !sane) { + CFLog(kCFLogLevelWarning, CFSTR("*** CFSocketCreateWithNative(): creating CFSocket with silly fd type (%07o) -- may or may not work"), type); + } + } + + if (INVALID_SOCKET != ufd) { + Boolean canHandle = false; + int tmp_kq = kqueue(); + if (0 <= tmp_kq) { + struct kevent ev[2]; + EV_SET(&ev[0], ufd, EVFILT_READ, EV_ADD, 0, 0, 0); + EV_SET(&ev[1], ufd, EVFILT_WRITE, EV_ADD, 0, 0, 0); + int ret = kevent(tmp_kq, ev, 2, NULL, 0, NULL); + canHandle = (0 <= ret); // if kevent(ADD) succeeds, can handle + close(tmp_kq); + } + if (1 && !canHandle) { + CFLog(kCFLogLevelWarning, CFSTR("*** CFSocketCreateWithNative(): creating CFSocket with unsupported fd type -- may or may not work")); + } + } + + if (INVALID_SOCKET == ufd) { + // Historically, bad ufd was allowed, but gave an uncached and already-invalid CFSocketRef + SInt32 size = sizeof(struct __CFSocket) - sizeof(CFRuntimeBase); + CFSocketRef memory = (CFSocketRef)_CFRuntimeCreateInstance(allocator, CFSocketGetTypeID(), size, NULL); + if (NULL == memory) { + return NULL; + } + memory->_callout = callout; + memory->_state = kCFSocketStateInvalid; + return memory; + } + + __block CFSocketRef sock = NULL; + dispatch_sync(__sockQueue(), ^{ + for (CFIndex idx = 0, cnt = CFArrayGetCount(__CFAllSockets); idx < cnt; idx++) { + CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFAllSockets, idx); + if (s->_shared->_socket == ufd) { + CFRetain(s); + sock = s; + return; + } + } + + SInt32 size = sizeof(struct __CFSocket) - sizeof(CFRuntimeBase); + CFSocketRef memory = (CFSocketRef)_CFRuntimeCreateInstance(allocator, CFSocketGetTypeID(), size, NULL); + if (NULL == memory) { + return; + } + + int socketType = 0; + if (INVALID_SOCKET != ufd) { + socklen_t typeSize = sizeof(socketType); + int ret = getsockopt(ufd, SOL_SOCKET, SO_TYPE, (void *)&socketType, (socklen_t *)&typeSize); + if (ret < 0) socketType = 0; + } + + memory->_rsuspended = true; + memory->_wsuspended = true; + memory->_readable = false; + memory->_writeable = false; + + memory->_isSaneFD = sane ? 1 : 0; + memory->_wantReadType = (callBackTypes & 0x3); + memory->_reenableRead = memory->_wantReadType ? true : false; + memory->_readDisabled = false; + memory->_wantWrite = (callBackTypes & kCFSocketWriteCallBack) ? true : false; + memory->_reenableWrite = false; + memory->_writeDisabled = false; + memory->_wantConnect = (callBackTypes & kCFSocketConnectCallBack) ? true : false; + memory->_connectDisabled = false; + memory->_leaveErrors = false; + memory->_closeOnInvalidate = true; + memory->_connOriented = (SOCK_STREAM == socketType); + memory->_connected = (memory->_wantReadType == kCFSocketAcceptCallBack || !memory->_connOriented) ? true : false; + + memory->_error = 0; + memory->_runLoopCounter = 0; + memory->_address = NULL; + memory->_peerAddress = NULL; + memory->_context.info = NULL; + memory->_context.retain = NULL; + memory->_context.release = NULL; + memory->_context.copyDescription = NULL; + memory->_callout = callout; + if (NULL != context) { + memmove(&memory->_context, context, sizeof(CFSocketContext)); + memory->_context.info = context->retain ? (void *)context->retain(context->info) : context->info; + } + + struct __shared_blob *shared = malloc(sizeof(struct __shared_blob)); + shared->_rdsrc = NULL; + shared->_wrsrc = NULL; + shared->_source = NULL; + shared->_socket = ufd; + shared->_closeFD = true; // copy of _closeOnInvalidate + shared->_refCnt = 1; // one for the CFSocket + memory->_shared = shared; + + if (memory->_wantReadType) { + dispatch_source_t dsrc = NULL; + if (sane) { + dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, ufd, 0, __sockQueue()); + } else { + dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, __sockQueue()); + dispatch_source_set_timer(dsrc, dispatch_time(DISPATCH_TIME_NOW, 0), NSEC_PER_SEC / 2, NSEC_PER_SEC); + } + dispatch_block_t event_block = ^{ + memory->_readable = true; + if (!memory->_rsuspended) { + dispatch_suspend(dsrc); +// CFLog(5, CFSTR("suspend %p due to read event block"), memory); + memory->_rsuspended = true; + } + if (shared->_source) { + CFRunLoopSourceSignal(shared->_source); + _CFRunLoopSourceWakeUpRunLoops(shared->_source); + } + }; + dispatch_block_t cancel_block = ^{ + shared->_rdsrc = NULL; + shared->_refCnt--; + if (0 == shared->_refCnt) { + if (shared->_closeFD) { + // thoroughly stop anything else from using the fd + (void)shutdown(shared->_socket, SHUT_RDWR); + int nullfd = open("/dev/null", O_RDONLY); + dup2(nullfd, shared->_socket); + close(nullfd); + close(shared->_socket); + } + free(shared); + } + dispatch_release(dsrc); + }; + dispatch_source_set_event_handler(dsrc, event_block); + dispatch_source_set_cancel_handler(dsrc, cancel_block); + shared->_rdsrc = dsrc; + } + if (memory->_wantWrite || memory->_wantConnect) { + dispatch_source_t dsrc = NULL; + if (sane) { + dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_WRITE, ufd, 0, __sockQueue()); + } else { + dsrc = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, __sockQueue()); + dispatch_source_set_timer(dsrc, dispatch_time(DISPATCH_TIME_NOW, 0), NSEC_PER_SEC / 2, NSEC_PER_SEC); + } + dispatch_block_t event_block = ^{ + memory->_writeable = true; + if (!memory->_wsuspended) { + dispatch_suspend(dsrc); +// CFLog(5, CFSTR("suspend %p due to write event block"), memory); + memory->_wsuspended = true; + } + if (shared->_source) { + CFRunLoopSourceSignal(shared->_source); + _CFRunLoopSourceWakeUpRunLoops(shared->_source); + } + }; + dispatch_block_t cancel_block = ^{ + shared->_wrsrc = NULL; + shared->_refCnt--; + if (0 == shared->_refCnt) { + if (shared->_closeFD) { + // thoroughly stop anything else from using the fd + (void)shutdown(shared->_socket, SHUT_RDWR); + int nullfd = open("/dev/null", O_RDONLY); + dup2(nullfd, shared->_socket); + close(nullfd); + close(shared->_socket); + } + free(shared); + } + dispatch_release(dsrc); + }; + dispatch_source_set_event_handler(dsrc, event_block); + dispatch_source_set_cancel_handler(dsrc, cancel_block); + shared->_wrsrc = dsrc; + } + + if (shared->_rdsrc) { + shared->_refCnt++; + } + if (shared->_wrsrc) { + shared->_refCnt++; + } + + memory->_state = kCFSocketStateReady; + CFArrayAppendValue(__CFAllSockets, memory); + sock = memory; + }); +// CFLog(5, CFSTR("CFSocketCreateWithNative(): created socket %p with callbacks 0x%x"), sock, callBackTypes); + if (sock && !CFSocketIsValid(sock)) { // must do this outside lock to avoid deadlock + CFRelease(sock); + sock = NULL; + } + return sock; +} + +CFSocketNativeHandle CFSocketGetNative(CFSocketRef sock) { + CHECK_FOR_FORK_RET(INVALID_SOCKET); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + return sock->_shared ? sock->_shared->_socket : INVALID_SOCKET; +} + +void CFSocketGetContext(CFSocketRef sock, CFSocketContext *context) { + __CFGenericValidateType(sock, CFSocketGetTypeID()); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + memmove(context, &sock->_context, sizeof(CFSocketContext)); +} + +CFDataRef CFSocketCopyAddress(CFSocketRef sock) { + CHECK_FOR_FORK_RET(NULL); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + __block CFDataRef result = NULL; + dispatch_sync(__sockQueue(), ^{ + if (!sock->_address) { + if (!__CFSocketIsValid(sock)) return; + uint8_t name[MAX_SOCKADDR_LEN]; + socklen_t namelen = sizeof(name); + int ret = getsockname(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); + if (0 == ret && 0 < namelen) { + sock->_address = CFDataCreate(CFGetAllocator(sock), name, namelen); + } + } + result = sock->_address ? (CFDataRef)CFRetain(sock->_address) : NULL; + }); + return result; +} + +CFDataRef CFSocketCopyPeerAddress(CFSocketRef sock) { + CHECK_FOR_FORK_RET(NULL); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + __block CFDataRef result = NULL; + dispatch_sync(__sockQueue(), ^{ + if (!sock->_peerAddress) { + if (!__CFSocketIsValid(sock)) return; + uint8_t name[MAX_SOCKADDR_LEN]; + socklen_t namelen = sizeof(name); + int ret = getpeername(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); + if (0 == ret && 0 < namelen) { + sock->_peerAddress = CFDataCreate(CFGetAllocator(sock), name, namelen); + } + } + result = sock->_peerAddress ? (CFDataRef)CFRetain(sock->_peerAddress) : NULL; + }); + return result; +} + +CFOptionFlags CFSocketGetSocketFlags(CFSocketRef sock) { + CHECK_FOR_FORK(); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + __block CFOptionFlags flags = 0; + dispatch_sync(__sockQueue(), ^{ + if (sock->_reenableRead) flags |= sock->_wantReadType; // flags are same as types here + if (sock->_reenableWrite) flags |= kCFSocketAutomaticallyReenableWriteCallBack; + if (sock->_leaveErrors) flags |= kCFSocketLeaveErrors; + if (sock->_closeOnInvalidate) flags |= kCFSocketCloseOnInvalidate; + }); + return flags; +} + +void CFSocketSetSocketFlags(CFSocketRef sock, CFOptionFlags flags) { + CHECK_FOR_FORK(); +// CFLog(5, CFSTR("CFSocketSetSocketFlags(%p, 0x%x) starting"), sock, flags); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + dispatch_sync(__sockQueue(), ^{ + sock->_reenableRead = (sock->_wantReadType && ((flags & 0x3) == sock->_wantReadType)) ? true : false; + sock->_reenableWrite = (sock->_wantWrite && (flags & kCFSocketAutomaticallyReenableWriteCallBack)) ? true : false; + sock->_leaveErrors = (flags & kCFSocketLeaveErrors) ? true : false; + sock->_closeOnInvalidate = (flags & kCFSocketCloseOnInvalidate) ? true : false; + if (sock->_shared) sock->_shared->_closeFD = sock->_closeOnInvalidate; + }); +// CFLog(5, CFSTR("CFSocketSetSocketFlags(%p, 0x%x) done"), sock, flags); +} + +void CFSocketEnableCallBacks(CFSocketRef sock, CFOptionFlags callBackTypes) { + CHECK_FOR_FORK_RET(); + __CFGenericValidateType(sock, CFSocketGetTypeID()); +// CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) starting"), sock, callBackTypes); + dispatch_sync(__sockQueue(), ^{ + if (!__CFSocketIsValid(sock)) return; + if (sock->_wantReadType && (callBackTypes & 0x3) == sock->_wantReadType) { + if (sockfd_is_readable(sock->_shared->_socket)) { + sock->_readable = true; +// CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) socket is readable"), sock, callBackTypes); + if (!sock->_rsuspended) { + dispatch_suspend(sock->_shared->_rdsrc); + sock->_rsuspended = true; + } + // If the source exists, but is now invalid, this next stuff is relatively harmless. + if (sock->_shared->_source) { + CFRunLoopSourceSignal(sock->_shared->_source); + _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); + } + } else if (sock->_rsuspended && sock->_shared->_rdsrc) { + sock->_rsuspended = false; + dispatch_resume(sock->_shared->_rdsrc); + } + sock->_readDisabled = false; + } + if (sock->_wantWrite && (callBackTypes & kCFSocketWriteCallBack)) { + if (sockfd_is_writeable(sock->_shared->_socket)) { + sock->_writeable = true; + if (!sock->_wsuspended) { + dispatch_suspend(sock->_shared->_wrsrc); + sock->_wsuspended = true; + } + // If the source exists, but is now invalid, this next stuff is relatively harmless. + if (sock->_shared->_source) { + CFRunLoopSourceSignal(sock->_shared->_source); + _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); + } + } else if (sock->_wsuspended && sock->_shared->_wrsrc) { + sock->_wsuspended = false; + dispatch_resume(sock->_shared->_wrsrc); + } + sock->_writeDisabled = false; + } + if (sock->_wantConnect && !sock->_connected && (callBackTypes & kCFSocketConnectCallBack)) { + if (sockfd_is_writeable(sock->_shared->_socket)) { + sock->_writeable = true; + if (!sock->_wsuspended) { + dispatch_suspend(sock->_shared->_wrsrc); + sock->_wsuspended = true; + } + // If the source exists, but is now invalid, this next stuff is relatively harmless. + if (sock->_shared->_source) { + CFRunLoopSourceSignal(sock->_shared->_source); + _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); + } + } else if (sock->_wsuspended && sock->_shared->_wrsrc) { + sock->_wsuspended = false; + dispatch_resume(sock->_shared->_wrsrc); + } + sock->_connectDisabled = false; + } + }); +// CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) done"), sock, callBackTypes); +} + +void CFSocketDisableCallBacks(CFSocketRef sock, CFOptionFlags callBackTypes) { + CHECK_FOR_FORK_RET(); + __CFGenericValidateType(sock, CFSocketGetTypeID()); +// CFLog(5, CFSTR("CFSocketDisableCallBacks(%p, 0x%x) starting"), sock, callBackTypes); + dispatch_sync(__sockQueue(), ^{ + if (!__CFSocketIsValid(sock)) return; + if (sock->_wantReadType && (callBackTypes & 0x3) == sock->_wantReadType) { + if (!sock->_rsuspended && sock->_shared->_rdsrc) { + dispatch_suspend(sock->_shared->_rdsrc); + sock->_rsuspended = true; + } + sock->_readDisabled = true; + } + if (sock->_wantWrite && (callBackTypes & kCFSocketWriteCallBack)) { + if (!sock->_wsuspended && sock->_shared->_wrsrc) { + dispatch_suspend(sock->_shared->_wrsrc); + sock->_wsuspended = true; + } + sock->_writeDisabled = true; + } + if (sock->_wantConnect && !sock->_connected && (callBackTypes & kCFSocketConnectCallBack)) { + if (!sock->_wsuspended && sock->_shared->_wrsrc) { + dispatch_suspend(sock->_shared->_wrsrc); + sock->_wsuspended = true; + } + sock->_connectDisabled = true; + } + }); +// CFLog(5, CFSTR("CFSocketDisableCallBacks(%p, 0x%x) done"), sock, callBackTypes); +} + +void CFSocketInvalidate(CFSocketRef sock) { + CHECK_FOR_FORK_RET(); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + CFRetain(sock); +// CFLog(5, CFSTR("CFSocketInvalidate(%p) starting"), sock); + __block CFRunLoopSourceRef source = NULL; + __block Boolean wasReady = false; + dispatch_sync(__sockQueue(), ^{ + wasReady = (sock->_state == kCFSocketStateReady); + if (wasReady) { + sock->_state = kCFSocketStateInvalidating; + OSMemoryBarrier(); + for (CFIndex idx = 0, cnt = CFArrayGetCount(__CFAllSockets); idx < cnt; idx++) { + CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFAllSockets, idx); + if (s == sock) { + CFArrayRemoveValueAtIndex(__CFAllSockets, idx); + break; + } + } + if (sock->_shared->_rdsrc) { + dispatch_source_cancel(sock->_shared->_rdsrc); + if (sock->_rsuspended) { + sock->_rsuspended = false; + dispatch_resume(sock->_shared->_rdsrc); + } + } + if (sock->_shared->_wrsrc) { + dispatch_source_cancel(sock->_shared->_wrsrc); + if (sock->_wsuspended) { + sock->_wsuspended = false; + dispatch_resume(sock->_shared->_wrsrc); + } + } + source = sock->_shared->_source; + sock->_shared->_source = NULL; + sock->_shared->_refCnt--; + if (0 == sock->_shared->_refCnt) { + if (sock->_shared->_closeFD) { + // thoroughly stop anything else from using the fd + (void)shutdown(sock->_shared->_socket, SHUT_RDWR); + int nullfd = open("/dev/null", O_RDONLY); + dup2(nullfd, sock->_shared->_socket); + close(nullfd); + close(sock->_shared->_socket); + } + free(sock->_shared); + } + sock->_shared = NULL; + } + }); + if (wasReady) { + if (NULL != source) { + CFRunLoopSourceInvalidate(source); + CFRelease(source); + } + void *info = sock->_context.info; + sock->_context.info = NULL; + if (sock->_context.release) { + sock->_context.release(info); + } + sock->_state = kCFSocketStateInvalid; + OSMemoryBarrier(); + } +// CFLog(5, CFSTR("CFSocketInvalidate(%p) done%s"), sock, wasReady ? " -- done on this thread" : ""); + CFRelease(sock); +} + +Boolean CFSocketIsValid(CFSocketRef sock) { + __CFGenericValidateType(sock, CFSocketGetTypeID()); + if (!__CFSocketIsValid(sock)) return false; + struct stat statbuf; + int ret = sock->_shared ? fstat(sock->_shared->_socket, &statbuf) : -1; + if (ret < 0) { CFSocketInvalidate(sock); return false; - } - return true; - } - - - static void __CFSocketPerform(void *info) { // CFRunLoop should only call this on one thread at a time - CHECK_FOR_FORK_RET(); - CFSocketRef sock = (CFSocketRef)info; - - // CFLog(5, CFSTR("__CFSocketPerform(%p) starting '%@'"), sock, sock); - __block Boolean doRead = false, doWrite = false, doConnect = false, isValid = false; - __block int fd = INVALID_SOCKET; - __block SInt32 errorCode = 0; - __block int new_fd = INVALID_SOCKET; - __block CFDataRef address = NULL; - __block CFMutableDataRef data = NULL; - __block void *context_info = NULL; - __block void (*context_release)(const void *) = NULL; - dispatch_sync(__sockQueue(), ^{ - isValid = __CFSocketIsValid(sock); - if (!isValid) return; - fd = sock->_shared->_socket; - doRead = sock->_readable && sock->_wantReadType && !sock->_readDisabled; - if (doRead) { - sock->_readable = false; - doRead = sockfd_is_readable(fd); - // if (!doRead) CFLog(5, CFSTR("__CFSocketPerform(%p) socket is not actually readable"), sock); - } - doWrite = sock->_writeable && sock->_wantWrite && !sock->_writeDisabled; - doConnect = sock->_writeable && sock->_wantConnect && !sock->_connectDisabled && !sock->_connected; - if (doWrite || doConnect) { - sock->_writeable = false; - if (doWrite) doWrite = sockfd_is_writeable(fd); - if (doConnect) doConnect = sockfd_is_writeable(fd); - } - if (!sock->_leaveErrors && (doWrite || doConnect)) { // not on read, for whatever reason - int errorSize = sizeof(errorCode); - int ret = getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&errorCode, (socklen_t *)&errorSize); - if (0 != ret) errorCode = 0; - sock->_error = errorCode; - } - sock->_connected = true; - // CFLog(5, CFSTR("__CFSocketPerform(%p) doing %d %d %d"), sock, doRead, doWrite, doConnect); - if (doRead) { - switch (sock->_wantReadType) { - case kCFSocketReadCallBack: - break; - case kCFSocketAcceptCallBack: { - uint8_t name[MAX_SOCKADDR_LEN]; - socklen_t namelen = sizeof(name); - new_fd = accept(fd, (struct sockaddr *)name, (socklen_t *)&namelen); - if (INVALID_SOCKET != new_fd) { - address = CFDataCreate(CFGetAllocator(sock), name, namelen); - } - break; - } - case kCFSocketDataCallBack: { - uint8_t name[MAX_SOCKADDR_LEN]; - socklen_t namelen = sizeof(name); - int avail = 0; - int ret = ioctlsocket(fd, FIONREAD, &avail); - if (ret < 0 || avail < 256) avail = 256; - if ((1 << 20) < avail) avail = (1 << 20); - data = CFDataCreateMutable(CFGetAllocator(sock), 0); - CFDataSetLength(data, avail); - ssize_t len = recvfrom(fd, CFDataGetMutableBytePtr(data), avail, 0, (struct sockaddr *)name, (socklen_t *)&namelen); - CFIndex datalen = (len < 0) ? 0 : len; - CFDataSetLength(data, datalen); - if (0 < namelen) { - address = CFDataCreate(CFGetAllocator(sock), name, namelen); - } else if (sock->_connOriented) { - // cannot call CFSocketCopyPeerAddress(), or deadlock - if (!sock->_peerAddress) { - uint8_t name[MAX_SOCKADDR_LEN]; - socklen_t namelen = sizeof(name); - int ret = getpeername(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); - if (0 == ret && 0 < namelen) { - sock->_peerAddress = CFDataCreate(CFGetAllocator(sock), name, namelen); - } - } - address = sock->_peerAddress ? (CFDataRef)CFRetain(sock->_peerAddress) : NULL; - } - if (NULL == address) { - address = CFDataCreate(CFGetAllocator(sock), NULL, 0); - } - break; - } - } - } - if (sock->_reenableRead) { - // CFLog(5, CFSTR("__CFSocketPerform(%p) reenabling read %d %p"), sock, sock->_rsuspended, sock->_shared->_rdsrc); - if (sock->_rsuspended && sock->_shared->_rdsrc) { - sock->_rsuspended = false; - dispatch_resume(sock->_shared->_rdsrc); - } - } - if (sock->_reenableWrite) { - if (sock->_wsuspended && sock->_shared->_wrsrc) { - sock->_wsuspended = false; - dispatch_resume(sock->_shared->_wrsrc); - } - } - if (sock->_context.retain && (doConnect || doRead || doWrite)) { - context_info = (void *)sock->_context.retain(sock->_context.info); - context_release = sock->_context.release; - } else { - context_info = sock->_context.info; - } - }); - // CFLog(5, CFSTR("__CFSocketPerform(%p) isValid:%d, doRead:%d, doWrite:%d, doConnect:%d error:%d"), sock, isValid, doRead, doWrite, doConnect, errorCode); - if (!isValid || !(doConnect || doRead || doWrite)) return; - - Boolean calledOut = false; - if (doConnect) { - if (sock->_callout) sock->_callout(sock, kCFSocketConnectCallBack, NULL, (0 != errorCode) ? &errorCode : NULL, context_info); - calledOut = true; - } - if (doRead && (!calledOut || __CFSocketIsValid(sock))) { - switch (sock->_wantReadType) { - case kCFSocketReadCallBack: - if (sock->_callout) sock->_callout(sock, kCFSocketReadCallBack, NULL, NULL, context_info); - calledOut = true; - break; - case kCFSocketAcceptCallBack: - if (INVALID_SOCKET != new_fd) { - if (sock->_callout) sock->_callout(sock, kCFSocketAcceptCallBack, address, &new_fd, context_info); - calledOut = true; - } - break; - case kCFSocketDataCallBack: - if (sock->_callout) sock->_callout(sock, kCFSocketDataCallBack, address, data, context_info); - calledOut = true; - break; - } - } - if (doWrite && (!calledOut || __CFSocketIsValid(sock))) { - if (0 == errorCode) { - if (sock->_callout) sock->_callout(sock, kCFSocketWriteCallBack, NULL, NULL, context_info); - calledOut = true; - } - } - - if (data && 0 == CFDataGetLength(data)) CFSocketInvalidate(sock); - if (address) CFRelease(address); - if (data) CFRelease(data); - if (context_release) { - context_release(context_info); - } - - CHECK_FOR_FORK_RET(); - // CFLog(5, CFSTR("__CFSocketPerform(%p) done"), sock); - } - - static void __CFSocketSchedule(void *info, CFRunLoopRef rl, CFStringRef mode) { - CFSocketRef sock = (CFSocketRef)info; - int32_t newVal = OSAtomicIncrement32Barrier(&sock->_runLoopCounter); - if (1 == newVal) { // on a transition from 0->1, the old code forced all desired callbacks enabled - CFOptionFlags types = sock->_wantReadType | (sock->_wantWrite ? kCFSocketWriteCallBack : 0) | (sock->_wantConnect ? kCFSocketConnectCallBack : 0); - CFSocketEnableCallBacks(sock, types); - } - CFRunLoopWakeUp(rl); - } - - static void __CFSocketCancel(void *info, CFRunLoopRef rl, CFStringRef mode) { - CFSocketRef sock = (CFSocketRef)info; - OSAtomicDecrement32Barrier(&sock->_runLoopCounter); - CFRunLoopWakeUp(rl); - } - - CFRunLoopSourceRef CFSocketCreateRunLoopSource(CFAllocatorRef allocator, CFSocketRef sock, CFIndex order) { - CHECK_FOR_FORK_RET(NULL); - __CFGenericValidateType(sock, CFSocketGetTypeID()); - if (!CFSocketIsValid(sock)) return NULL; - __block CFRunLoopSourceRef result = NULL; - dispatch_sync(__sockQueue(), ^{ - if (!__CFSocketIsValid(sock)) return; - if (NULL != sock->_shared->_source && !CFRunLoopSourceIsValid(sock->_shared->_source)) { - CFRelease(sock->_shared->_source); - sock->_shared->_source = NULL; - } - if (NULL == sock->_shared->_source) { - CFRunLoopSourceContext context; - context.version = 0; - context.info = (void *)sock; - context.retain = (const void *(*)(const void *))CFRetain; - context.release = (void (*)(const void *))CFRelease; - context.copyDescription = (CFStringRef (*)(const void *))__CFSocketCopyDescription; - context.equal = NULL; - context.hash = NULL; - context.schedule = __CFSocketSchedule; - context.cancel = __CFSocketCancel; - context.perform = __CFSocketPerform; - sock->_shared->_source = CFRunLoopSourceCreate(allocator, order, (CFRunLoopSourceContext *)&context); - if (sock->_shared->_source) { - if (sock->_wantReadType) { - if (sockfd_is_readable(sock->_shared->_socket)) { - sock->_readable = true; - if (!sock->_rsuspended) { - dispatch_suspend(sock->_shared->_rdsrc); - sock->_rsuspended = true; - } - if (sock->_shared->_source) { - CFRunLoopSourceSignal(sock->_shared->_source); - _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); - } - } else if (sock->_rsuspended && sock->_shared->_rdsrc) { - sock->_rsuspended = false; - dispatch_resume(sock->_shared->_rdsrc); - } - } - if (sock->_wantWrite || (sock->_wantConnect && !sock->_connected)) { - if (sockfd_is_writeable(sock->_shared->_socket)) { - sock->_writeable = true; - if (!sock->_wsuspended) { - dispatch_suspend(sock->_shared->_wrsrc); - sock->_wsuspended = true; - } - if (sock->_shared->_source) { - CFRunLoopSourceSignal(sock->_shared->_source); - _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); - } - } else if (sock->_wsuspended && sock->_shared->_wrsrc) { - sock->_wsuspended = false; - dispatch_resume(sock->_shared->_wrsrc); - } - } - } - } - result = sock->_shared->_source ? (CFRunLoopSourceRef)CFRetain(sock->_shared->_source) : NULL; - }); - // CFLog(5, CFSTR("CFSocketCreateRunLoopSource(%p) => %p"), sock, result); - return result; - } - - - void __CFSocketSetSocketReadBufferAttrs(CFSocketRef s, CFTimeInterval timeout, CFIndex length) { - } - - CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) { - *error = 0; - int ret = read(CFSocketGetNative(s), buffer, length); - if (ret < 0) { - *error = errno; - } - return ret; - } - - Boolean __CFSocketGetBytesAvailable(CFSocketRef s, CFIndex* ctBytesAvailable) { - int bytesAvailable; - int ret = ioctlsocket(CFSocketGetNative(s), FIONREAD, &bytesAvailable); - if (ret < 0) return false; - *ctBytesAvailable = (CFIndex)bytesAvailable; - return true; - } - - */ + } + return true; +} + + +static void __CFSocketPerform(void *info) { // CFRunLoop should only call this on one thread at a time + CHECK_FOR_FORK_RET(); + CFSocketRef sock = (CFSocketRef)info; + +// CFLog(5, CFSTR("__CFSocketPerform(%p) starting '%@'"), sock, sock); + __block Boolean doRead = false, doWrite = false, doConnect = false, isValid = false; + __block int fd = INVALID_SOCKET; + __block SInt32 errorCode = 0; + __block int new_fd = INVALID_SOCKET; + __block CFDataRef address = NULL; + __block CFMutableDataRef data = NULL; + __block void *context_info = NULL; + __block void (*context_release)(const void *) = NULL; + dispatch_sync(__sockQueue(), ^{ + isValid = __CFSocketIsValid(sock); + if (!isValid) return; + fd = sock->_shared->_socket; + doRead = sock->_readable && sock->_wantReadType && !sock->_readDisabled; + if (doRead) { + sock->_readable = false; + doRead = sockfd_is_readable(fd); +// if (!doRead) CFLog(5, CFSTR("__CFSocketPerform(%p) socket is not actually readable"), sock); + } + doWrite = sock->_writeable && sock->_wantWrite && !sock->_writeDisabled; + doConnect = sock->_writeable && sock->_wantConnect && !sock->_connectDisabled && !sock->_connected; + if (doWrite || doConnect) { + sock->_writeable = false; + if (doWrite) doWrite = sockfd_is_writeable(fd); + if (doConnect) doConnect = sockfd_is_writeable(fd); + } + if (!sock->_leaveErrors && (doWrite || doConnect)) { // not on read, for whatever reason + int errorSize = sizeof(errorCode); + int ret = getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&errorCode, (socklen_t *)&errorSize); + if (0 != ret) errorCode = 0; + sock->_error = errorCode; + } + sock->_connected = true; +// CFLog(5, CFSTR("__CFSocketPerform(%p) doing %d %d %d"), sock, doRead, doWrite, doConnect); + if (doRead) { + switch (sock->_wantReadType) { + case kCFSocketReadCallBack: + break; + case kCFSocketAcceptCallBack: { + uint8_t name[MAX_SOCKADDR_LEN]; + socklen_t namelen = sizeof(name); + new_fd = accept(fd, (struct sockaddr *)name, (socklen_t *)&namelen); + if (INVALID_SOCKET != new_fd) { + address = CFDataCreate(CFGetAllocator(sock), name, namelen); + } + break; + } + case kCFSocketDataCallBack: { + uint8_t name[MAX_SOCKADDR_LEN]; + socklen_t namelen = sizeof(name); + int avail = 0; + int ret = ioctlsocket(fd, FIONREAD, &avail); + if (ret < 0 || avail < 256) avail = 256; + if ((1 << 20) < avail) avail = (1 << 20); + data = CFDataCreateMutable(CFGetAllocator(sock), 0); + CFDataSetLength(data, avail); + ssize_t len = recvfrom(fd, CFDataGetMutableBytePtr(data), avail, 0, (struct sockaddr *)name, (socklen_t *)&namelen); + CFIndex datalen = (len < 0) ? 0 : len; + CFDataSetLength(data, datalen); + if (0 < namelen) { + address = CFDataCreate(CFGetAllocator(sock), name, namelen); + } else if (sock->_connOriented) { + // cannot call CFSocketCopyPeerAddress(), or deadlock + if (!sock->_peerAddress) { + uint8_t name[MAX_SOCKADDR_LEN]; + socklen_t namelen = sizeof(name); + int ret = getpeername(sock->_shared->_socket, (struct sockaddr *)name, (socklen_t *)&namelen); + if (0 == ret && 0 < namelen) { + sock->_peerAddress = CFDataCreate(CFGetAllocator(sock), name, namelen); + } + } + address = sock->_peerAddress ? (CFDataRef)CFRetain(sock->_peerAddress) : NULL; + } + if (NULL == address) { + address = CFDataCreate(CFGetAllocator(sock), NULL, 0); + } + break; + } + } + } + if (sock->_reenableRead) { +// CFLog(5, CFSTR("__CFSocketPerform(%p) reenabling read %d %p"), sock, sock->_rsuspended, sock->_shared->_rdsrc); + if (sock->_rsuspended && sock->_shared->_rdsrc) { + sock->_rsuspended = false; + dispatch_resume(sock->_shared->_rdsrc); + } + } + if (sock->_reenableWrite) { + if (sock->_wsuspended && sock->_shared->_wrsrc) { + sock->_wsuspended = false; + dispatch_resume(sock->_shared->_wrsrc); + } + } + if (sock->_context.retain && (doConnect || doRead || doWrite)) { + context_info = (void *)sock->_context.retain(sock->_context.info); + context_release = sock->_context.release; + } else { + context_info = sock->_context.info; + } + }); +// CFLog(5, CFSTR("__CFSocketPerform(%p) isValid:%d, doRead:%d, doWrite:%d, doConnect:%d error:%d"), sock, isValid, doRead, doWrite, doConnect, errorCode); + if (!isValid || !(doConnect || doRead || doWrite)) return; + + Boolean calledOut = false; + if (doConnect) { + if (sock->_callout) sock->_callout(sock, kCFSocketConnectCallBack, NULL, (0 != errorCode) ? &errorCode : NULL, context_info); + calledOut = true; + } + if (doRead && (!calledOut || __CFSocketIsValid(sock))) { + switch (sock->_wantReadType) { + case kCFSocketReadCallBack: + if (sock->_callout) sock->_callout(sock, kCFSocketReadCallBack, NULL, NULL, context_info); + calledOut = true; + break; + case kCFSocketAcceptCallBack: + if (INVALID_SOCKET != new_fd) { + if (sock->_callout) sock->_callout(sock, kCFSocketAcceptCallBack, address, &new_fd, context_info); + calledOut = true; + } + break; + case kCFSocketDataCallBack: + if (sock->_callout) sock->_callout(sock, kCFSocketDataCallBack, address, data, context_info); + calledOut = true; + break; + } + } + if (doWrite && (!calledOut || __CFSocketIsValid(sock))) { + if (0 == errorCode) { + if (sock->_callout) sock->_callout(sock, kCFSocketWriteCallBack, NULL, NULL, context_info); + calledOut = true; + } + } + + if (data && 0 == CFDataGetLength(data)) CFSocketInvalidate(sock); + if (address) CFRelease(address); + if (data) CFRelease(data); + if (context_release) { + context_release(context_info); + } + + CHECK_FOR_FORK_RET(); +// CFLog(5, CFSTR("__CFSocketPerform(%p) done"), sock); +} + +static void __CFSocketSchedule(void *info, CFRunLoopRef rl, CFStringRef mode) { + CFSocketRef sock = (CFSocketRef)info; + int32_t newVal = OSAtomicIncrement32Barrier(&sock->_runLoopCounter); + if (1 == newVal) { // on a transition from 0->1, the old code forced all desired callbacks enabled + CFOptionFlags types = sock->_wantReadType | (sock->_wantWrite ? kCFSocketWriteCallBack : 0) | (sock->_wantConnect ? kCFSocketConnectCallBack : 0); + CFSocketEnableCallBacks(sock, types); + } + CFRunLoopWakeUp(rl); +} + +static void __CFSocketCancel(void *info, CFRunLoopRef rl, CFStringRef mode) { + CFSocketRef sock = (CFSocketRef)info; + OSAtomicDecrement32Barrier(&sock->_runLoopCounter); + CFRunLoopWakeUp(rl); +} + +CFRunLoopSourceRef CFSocketCreateRunLoopSource(CFAllocatorRef allocator, CFSocketRef sock, CFIndex order) { + CHECK_FOR_FORK_RET(NULL); + __CFGenericValidateType(sock, CFSocketGetTypeID()); + if (!CFSocketIsValid(sock)) return NULL; + __block CFRunLoopSourceRef result = NULL; + dispatch_sync(__sockQueue(), ^{ + if (!__CFSocketIsValid(sock)) return; + if (NULL != sock->_shared->_source && !CFRunLoopSourceIsValid(sock->_shared->_source)) { + CFRelease(sock->_shared->_source); + sock->_shared->_source = NULL; + } + if (NULL == sock->_shared->_source) { + CFRunLoopSourceContext context; + context.version = 0; + context.info = (void *)sock; + context.retain = (const void *(*)(const void *))CFRetain; + context.release = (void (*)(const void *))CFRelease; + context.copyDescription = (CFStringRef (*)(const void *))__CFSocketCopyDescription; + context.equal = NULL; + context.hash = NULL; + context.schedule = __CFSocketSchedule; + context.cancel = __CFSocketCancel; + context.perform = __CFSocketPerform; + sock->_shared->_source = CFRunLoopSourceCreate(allocator, order, (CFRunLoopSourceContext *)&context); + if (sock->_shared->_source) { + if (sock->_wantReadType) { + if (sockfd_is_readable(sock->_shared->_socket)) { + sock->_readable = true; + if (!sock->_rsuspended) { + dispatch_suspend(sock->_shared->_rdsrc); + sock->_rsuspended = true; + } + if (sock->_shared->_source) { + CFRunLoopSourceSignal(sock->_shared->_source); + _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); + } + } else if (sock->_rsuspended && sock->_shared->_rdsrc) { + sock->_rsuspended = false; + dispatch_resume(sock->_shared->_rdsrc); + } + } + if (sock->_wantWrite || (sock->_wantConnect && !sock->_connected)) { + if (sockfd_is_writeable(sock->_shared->_socket)) { + sock->_writeable = true; + if (!sock->_wsuspended) { + dispatch_suspend(sock->_shared->_wrsrc); + sock->_wsuspended = true; + } + if (sock->_shared->_source) { + CFRunLoopSourceSignal(sock->_shared->_source); + _CFRunLoopSourceWakeUpRunLoops(sock->_shared->_source); + } + } else if (sock->_wsuspended && sock->_shared->_wrsrc) { + sock->_wsuspended = false; + dispatch_resume(sock->_shared->_wrsrc); + } + } + } + } + result = sock->_shared->_source ? (CFRunLoopSourceRef)CFRetain(sock->_shared->_source) : NULL; + }); +// CFLog(5, CFSTR("CFSocketCreateRunLoopSource(%p) => %p"), sock, result); + return result; +} + + +void __CFSocketSetSocketReadBufferAttrs(CFSocketRef s, CFTimeInterval timeout, CFIndex length) { +} + +CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) { + *error = 0; + int ret = read(CFSocketGetNative(s), buffer, length); + if (ret < 0) { + *error = errno; + } + return ret; +} + +Boolean __CFSocketGetBytesAvailable(CFSocketRef s, CFIndex* ctBytesAvailable) { + int bytesAvailable; + int ret = ioctlsocket(CFSocketGetNative(s), FIONREAD, &bytesAvailable); + if (ret < 0) return false; + *ctBytesAvailable = (CFIndex)bytesAvailable; + return true; +} + +*/ #else /* not NEW_SOCKET */ @@ -985,14 +980,14 @@ CF_PRIVATE int _NS_gettimeofday(struct timeval *tv, struct timezone *tz); // although this is only used for debug info, we define it for compatibility #define timersub(tvp, uvp, vvp) \ -do { \ -(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ -(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ -if ((vvp)->tv_usec < 0) { \ -(vvp)->tv_sec--; \ -(vvp)->tv_usec += 1000000; \ -} \ -} while (0) + do { \ + (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ + if ((vvp)->tv_usec < 0) { \ + (vvp)->tv_sec--; \ + (vvp)->tv_usec += 1000000; \ + } \ + } while (0) #endif // DEPLOYMENT_TARGET_WINDOWS @@ -1001,7 +996,103 @@ if ((vvp)->tv_usec < 0) { \ // On Mach we use a v0 RunLoopSource to make client callbacks. That source is signalled by a // separate SocketManager thread who uses select() to watch the sockets' fds. -//#define LOG_CFSOCKET +#undef LOG_CFSOCKET +//#define LOG_CFSOCKET 1 +#define DEBUG_POLLING_SELECT 1 + +#if defined(LOG_CFSOCKET) + +#include + +static pthread_t __cfSocketTid() +{ +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + uint64_t tid = 0; + if (0 != pthread_threadid_np(NULL, &tid)) + tid = pthread_mach_thread_np(pthread_self()); + return (pthread_t) tid; +#elif DEPLOYMENT_TARGET_WINDOWS + return (pthread_t) GetCurrentThreadId(); +#else + return (pthread_t) pthread_self(); +#endif +} + +static void __cfSocketLog(const char* function, int line, const char* fmt, ...) +{ +#if 0 + char* p = nil; + va_list args; + va_start(args, fmt); + vasprintf(&p, fmt, args); + va_end(args); + +// CFLog(kCFLogLevelNotice, CFSTR("CFSocket:%d %s"), line, p); + char* s = nil; + asprintf(&s, "CFSocket:%d %s", line, p); + syslog(LOG_NOTICE, "%s", s); + free(s); + + free(p); +#else + va_list args; + va_start(args, fmt); + CFStringRef fmtString = CFStringCreateWithCString(kCFAllocatorDefault, fmt, kCFStringEncodingUTF8); + CFStringRef payload = CFStringCreateWithFormatAndArguments(kCFAllocatorDefault, NULL, fmtString, args); + if (fmtString) + CFRelease(fmtString); + + if (payload == NULL) + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d - no payload?", __cfSocketTid(),function, line); + else { + CFDataRef payloadData = CFStringCreateExternalRepresentation(kCFAllocatorDefault, payload, kCFStringEncodingUTF8, '.'); + CFRelease(payload); + + if (payloadData == NULL) + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d - no payload?", __cfSocketTid(),function, line); + else { + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d - %.*s", __cfSocketTid(),function, line, (int) CFDataGetLength(payloadData), CFDataGetBytePtr(payloadData)); + CFRelease(payloadData); + } + } + +#endif +} + +static void __cfSocketLogWithSocket(CFSocketRef s, const char* function, int line, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + CFStringRef fmtString = CFStringCreateWithCString(kCFAllocatorDefault, fmt, kCFStringEncodingUTF8); + CFStringRef payload = CFStringCreateWithFormatAndArguments(kCFAllocatorDefault, NULL, fmtString, args); + if (fmtString) + CFRelease(fmtString); + + if (payload == NULL) + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d (%p, fd %d) - no payload?", __cfSocketTid(), function, line, s, CFSocketGetNative(s)); + else { + CFDataRef payloadData = CFStringCreateExternalRepresentation(kCFAllocatorDefault, payload, kCFStringEncodingUTF8, '.'); + CFRelease(payload); + + if (payloadData == NULL) + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d (%p, fd %d) - no payload?", __cfSocketTid(), function, line, s, CFSocketGetNative(s)); + else { + syslog(LOG_NOTICE, "CFSocket[%p]:%s:%d (%p, fd %d) - %.*s", __cfSocketTid(), function, line, s, CFSocketGetNative(s), (int) CFDataGetLength(payloadData), CFDataGetBytePtr(payloadData)); + CFRelease(payloadData); + } + } +} + +#define __CFSOCKETLOG(xxx...) __cfSocketLog(__FUNCTION__, __LINE__, xxx) +#define __CFSOCKETLOG_WS(S, xxx...) __cfSocketLogWithSocket(S, __FUNCTION__, __LINE__, xxx) + +#else + +#define __CFSOCKETLOG(xxx...) /**/ +#define __CFSOCKETLOG_WS(S, xxx...) /**/ + +#endif + #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD #define INVALID_SOCKET (CFSocketNativeHandle)(-1) @@ -1049,10 +1140,10 @@ CF_INLINE Boolean __CFSocketFdSet(CFSocketNativeHandle sock, CFMutableDataRef fd #define MAX_CONNECTION_ORIENTED_DATA_SIZE 32768 /* locks are to be acquired in the following order: - (1) __CFAllSocketsLock - (2) an individual CFSocket's lock - (3) __CFActiveSocketsLock - */ + (1) __CFAllSocketsLock + (2) an individual CFSocket's lock + (3) __CFActiveSocketsLock +*/ static CFLock_t __CFAllSocketsLock = CFLockInit; /* controls __CFAllSockets */ static CFMutableDictionaryRef __CFAllSockets = NULL; static CFLock_t __CFActiveSocketsLock = CFLockInit; /* controls __CFRead/WriteSockets, __CFRead/WriteSocketsFds, __CFSocketManagerThread, and __CFSocketManagerIteration */ @@ -1093,17 +1184,17 @@ struct __CFSocket { CFSocketContext _context; /* immutable */ CFMutableArrayRef _dataQueue; // queues to pass data from SocketMgr thread CFMutableArrayRef _addressQueue; - - struct timeval _readBufferTimeout; - CFMutableDataRef _readBuffer; - CFIndex _bytesToBuffer; /* is length of _readBuffer */ - CFIndex _bytesToBufferPos; /* where the next _CFSocketRead starts from */ - CFIndex _bytesToBufferReadPos; /* Where the buffer will next be read into (always after _bytesToBufferPos, but less than _bytesToBuffer) */ - Boolean _atEOF; + + struct timeval _readBufferTimeout; + CFMutableDataRef _readBuffer; + CFIndex _bytesToBuffer; /* is length of _readBuffer */ + CFIndex _bytesToBufferPos; /* where the next _CFSocketRead starts from */ + CFIndex _bytesToBufferReadPos; /* Where the buffer will next be read into (always after _bytesToBufferPos, but less than _bytesToBuffer) */ + Boolean _atEOF; int _bufferedReadError; - - CFMutableDataRef _leftoverBytes; - + + CFMutableDataRef _leftoverBytes; + // // If the timeout is set on the CFSocketRef but we never get select() timeout // because we always have some network events so select never times out (e.g. while having a large download). @@ -1175,7 +1266,7 @@ CF_INLINE void __CFSocketUnlock(CFSocketRef s) { } CF_INLINE Boolean __CFSocketIsConnectionOriented(CFSocketRef s) { - return (SOCK_STREAM == s->_socketType || SOCK_SEQPACKET == s->_socketType); + return (SOCK_STREAM == s->_socketType); } CF_INLINE Boolean __CFSocketIsScheduled(CFSocketRef s) { @@ -1201,14 +1292,20 @@ CF_INLINE void __CFSocketEstablishPeerAddress(CFSocketRef s) { } static Boolean __CFNativeSocketIsValid(CFSocketNativeHandle sock) { + Boolean result; + #if DEPLOYMENT_TARGET_WINDOWS SInt32 errorCode = 0; int errorSize = sizeof(errorCode); - return !(0 != getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *)&errorCode, &errorSize) && __CFSocketLastError() == WSAENOTSOCK); -#else + result = !(0 != getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *)&errorCode, &errorSize) && __CFSocketLastError() == WSAENOTSOCK); +#else SInt32 flags = fcntl(sock, F_GETFL, 0); - return !(0 > flags && EBADF == __CFSocketLastError()); + result = !(0 > flags && EBADF == __CFSocketLastError()); #endif + + __CFSOCKETLOG("socket fd %d => %d", sock, result); + + return result; } CF_INLINE Boolean __CFSocketFdClr(CFSocketNativeHandle sock, CFMutableDataRef fdSet) { @@ -1231,7 +1328,7 @@ CF_INLINE Boolean __CFSocketFdClr(CFSocketNativeHandle sock, CFMutableDataRef fd static SInt32 __CFSocketCreateWakeupSocketPair(void) { #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI SInt32 error; - + error = socketpair(PF_LOCAL, SOCK_DGRAM, 0, __CFWakeupSocketPair); if (0 <= error) error = fcntl(__CFWakeupSocketPair[0], F_SETFD, FD_CLOEXEC); if (0 <= error) error = fcntl(__CFWakeupSocketPair[1], F_SETFD, FD_CLOEXEC); @@ -1264,9 +1361,9 @@ static SInt32 __CFSocketCreateWakeupSocketPair(void) { __CFWakeupSocketPair[1] = INVALID_SOCKET; } #endif -#if defined(LOG_CFSOCKET) - fprintf(stdout, "wakeup socket pair is %d / %d\n", __CFWakeupSocketPair[0], __CFWakeupSocketPair[1]); -#endif + + __CFSOCKETLOG("wakeup socket pair is %d / %d\n", __CFWakeupSocketPair[0], __CFWakeupSocketPair[1]); + return error; } @@ -1274,6 +1371,7 @@ static SInt32 __CFSocketCreateWakeupSocketPair(void) { // Version 0 RunLoopSources set a mask in an FD set to control what socket activity we hear about. // Changes to the master fs_sets occur via these 4 functions. CF_INLINE Boolean __CFSocketSetFDForRead(CFSocketRef s) { + __CFSOCKETLOG_WS(s, ""); __CFReadSocketsTimeoutInvalid = true; Boolean b = __CFSocketFdSet(s->_socket, __CFReadSocketsFds); if (b && INVALID_SOCKET != __CFWakeupSocketPair[0]) { @@ -1284,6 +1382,7 @@ CF_INLINE Boolean __CFSocketSetFDForRead(CFSocketRef s) { } CF_INLINE Boolean __CFSocketClearFDForRead(CFSocketRef s) { + __CFSOCKETLOG_WS(s, ""); __CFReadSocketsTimeoutInvalid = true; Boolean b = __CFSocketFdClr(s->_socket, __CFReadSocketsFds); if (b && INVALID_SOCKET != __CFWakeupSocketPair[0]) { @@ -1294,7 +1393,7 @@ CF_INLINE Boolean __CFSocketClearFDForRead(CFSocketRef s) { } CF_INLINE Boolean __CFSocketSetFDForWrite(CFSocketRef s) { - // CFLog(5, CFSTR("__CFSocketSetFDForWrite(%p)"), s); + __CFSOCKETLOG_WS(s, ""); Boolean b = __CFSocketFdSet(s->_socket, __CFWriteSocketsFds); if (b && INVALID_SOCKET != __CFWakeupSocketPair[0]) { uint8_t c = 'w'; @@ -1304,7 +1403,7 @@ CF_INLINE Boolean __CFSocketSetFDForWrite(CFSocketRef s) { } CF_INLINE Boolean __CFSocketClearFDForWrite(CFSocketRef s) { - // CFLog(5, CFSTR("__CFSocketClearFDForWrite(%p)"), s); + __CFSOCKETLOG_WS(s, ""); Boolean b = __CFSocketFdClr(s->_socket, __CFWriteSocketsFds); if (b && INVALID_SOCKET != __CFWakeupSocketPair[0]) { uint8_t c = 'x'; @@ -1385,11 +1484,11 @@ static CFRunLoopRef __CFSocketCopyRunLoopToWakeUp(CFRunLoopSourceRef src, CFMuta } if (NULL == rl) { /* more than one different rl, so we must pick one */ /* ideally, this would be a run loop which isn't also in a - * signaled state for this or another source, but that's tricky; - * we pick one that is running in an appropriate mode for this - * source, and from those if possible one that is waiting; then - * we move this run loop to the end of the list to scramble them - * a bit, and always search from the front */ + * signaled state for this or another source, but that's tricky; + * we pick one that is running in an appropriate mode for this + * source, and from those if possible one that is waiting; then + * we move this run loop to the end of the list to scramble them + * a bit, and always search from the front */ Boolean foundIt = false, foundBackup = false; SInt32 foundIdx = 0; for (idx = 0; !foundIt && idx < cnt; idx++) { @@ -1429,9 +1528,11 @@ static void __CFSocketHandleWrite(CFSocketRef s, Boolean callBackNow) { if (!CFSocketIsValid(s)) return; if (0 != (s->_f.client & kCFSocketLeaveErrors) || 0 != getsockopt(s->_socket, SOL_SOCKET, SO_ERROR, (char *)&errorCode, (socklen_t *)&errorSize)) errorCode = 0; // cast for WinSock bad API -#if defined(LOG_CFSOCKET) - if (errorCode) fprintf(stdout, "error %ld on socket %d\n", (long)errorCode, s->_socket); -#endif + + if (errorCode) { + __CFSOCKETLOG_WS(s, "error %ld", (long)errorCode); + } + __CFSocketLock(s); writeCallBacksAvailable = __CFSocketCallBackTypes(s) & (kCFSocketWriteCallBack | kCFSocketConnectCallBack); if ((s->_f.client & kCFSocketConnectCallBack) != 0) writeCallBacksAvailable &= ~kCFSocketConnectCallBack; @@ -1441,10 +1542,8 @@ static void __CFSocketHandleWrite(CFSocketRef s, Boolean callBackNow) { } s->_errorCode = errorCode; __CFSocketSetWriteSignalled(s); - // CFLog(5, CFSTR("__CFSocketHandleWrite() signalling write on socket %p"), s); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "write signaling source for socket %d\n", s->_socket); -#endif + __CFSOCKETLOG_WS(s, "signalling write"); + if (callBackNow) { __CFSocketDoCallback(s, NULL, NULL, 0); } else { @@ -1519,12 +1618,12 @@ static CFStringRef someAddrToString(CFAllocatorRef alloc, int (*fun) (int, struc return resultString; } -CFStringRef copyPeerAddress(CFAllocatorRef alloc, CFSocketNativeHandle s) +static CFStringRef copyPeerAddress(CFAllocatorRef alloc, CFSocketNativeHandle s) { return someAddrToString(alloc, getpeername, "peer", s); } -CFStringRef copyLocalAddress(CFAllocatorRef alloc, CFSocketNativeHandle s) +static CFStringRef copyLocalAddress(CFAllocatorRef alloc, CFSocketNativeHandle s) { return someAddrToString(alloc, getsockname, "local", s); } @@ -1548,9 +1647,9 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) buffer = (uint8_t *)malloc(MAX_DATA_SIZE); if (buffer) recvlen = recvfrom(s->_socket, (char *)buffer, MAX_DATA_SIZE, 0, (struct sockaddr *)name, (socklen_t *)&namelen); } -#if defined(LOG_CFSOCKET) - fprintf(stdout, "read %ld bytes on socket %d\n", (long)recvlen, s->_socket); -#endif + + __CFSOCKETLOG_WS(s, "read %ld", (long) recvlen); + if (0 >= recvlen) { //??? should return error if <0 /* zero-length data is the signal for perform to invalidate */ @@ -1589,7 +1688,7 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) if (0 < recvlen && (s->_f.client & kCFSocketDataCallBack) != 0 && (s->_f.disabled & kCFSocketDataCallBack) == 0 && __CFSocketIsScheduled(s) - ) { + ) { __CFLock(&__CFActiveSocketsLock); /* restore socket to fds */ __CFSocketSetFDForRead(s); @@ -1627,7 +1726,7 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) CFRelease(address); if ((s->_f.client & kCFSocketAcceptCallBack) != 0 && (s->_f.disabled & kCFSocketAcceptCallBack) == 0 && __CFSocketIsScheduled(s) - ) { + ) { __CFLock(&__CFActiveSocketsLock); /* restore socket to fds */ __CFSocketSetFDForRead(s); @@ -1639,20 +1738,17 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) __CFSocketUnlock(s); return; } - if (causedByTimeout) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "TIMEOUT RECEIVED - WILL SIGNAL IMMEDIATELY TO FLUSH (%ld buffered)\n", s->_bytesToBufferPos); -#endif + __CFSOCKETLOG_WS(s, "TIMEOUT RECEIVED - WILL SIGNAL IMMEDIATELY TO FLUSH (%ld buffered)", s->_bytesToBufferPos); + /* we've got a timeout, but no bytes read, and we don't have any bytes to send. Ignore the timeout. */ if (s->_bytesToBufferPos == 0 && s->_leftoverBytes == NULL) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "TIMEOUT - but no bytes, restoring to active set\n"); - fflush(stdout); -#endif + + __CFSOCKETLOG_WS(s, "TIMEOUT - but no bytes, restoring to active set", s->_bytesToBufferPos); + // Clear the timeout notification time if there is no prefetched data left timerclear(&s->_readBufferTimeoutNotificationTime); - + __CFLock(&__CFActiveSocketsLock); /* restore socket to fds */ __CFSocketSetFDForRead(s); @@ -1664,13 +1760,13 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) UInt8* base; CFIndex ctRead; CFIndex ctRemaining = s->_bytesToBuffer - s->_bytesToBufferPos; - + /* if our buffer has room, we go ahead and buffer */ if (ctRemaining > 0) { base = CFDataGetMutableBytePtr(s->_readBuffer); - + ctRead = read(CFSocketGetNative(s), &base[s->_bytesToBufferPos], ctRemaining); - + switch (ctRead) { case -1: if (errno == EAGAIN) { // no error @@ -1684,29 +1780,26 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) s->_bufferedReadError = errno; s->_atEOF = true; } -#if defined(LOG_CFSOCKET) - fprintf(stderr, "BUFFERED READ GOT ERROR %d\n", errno); -#endif + + __CFSOCKETLOG_WS(s, "BUFFERED READ GOT ERROR %d", errno); break; - + case 0: -#if defined(LOG_CFSOCKET) - fprintf(stdout, "DONE READING (EOF) - GOING TO SIGNAL\n"); -#endif + __CFSOCKETLOG_WS(s, "DONE READING (EOF) - GOING TO SIGNAL"); s->_atEOF = true; break; - + default: s->_bytesToBufferPos += ctRead; if (s->_bytesToBuffer != s->_bytesToBufferPos) { - + // Update the timeout notification time struct timeval timeNow = { 0 }; gettimeofday(&timeNow, NULL); timeradd(&timeNow, &s->_readBufferTimeout, &s->_readBufferTimeoutNotificationTime); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "READ %ld - need %ld MORE - GOING BACK FOR MORE\n", ctRead, s->_bytesToBuffer - s->_bytesToBufferPos); -#endif + + __CFSOCKETLOG_WS(s, "READ %ld - need %ld MORE - GOING BACK FOR MORE", ctRead, s->_bytesToBuffer - s->_bytesToBufferPos); + __CFLock(&__CFActiveSocketsLock); /* restore socket to fds */ __CFSocketSetFDForRead(s); @@ -1716,9 +1809,8 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) } else { // Clear the timeout notification time if the buffer is full timerclear(&s->_readBufferTimeoutNotificationTime); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "DONE READING (read %ld bytes) - GOING TO SIGNAL\n", ctRead); -#endif + + __CFSOCKETLOG_WS(s, "DONE READING (read %ld bytes) - GOING TO SIGNAL", ctRead); } } } @@ -1726,9 +1818,9 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) __CFSocketSetReadSignalled(s); } -#if defined(LOG_CFSOCKET) - fprintf(stdout, "read signaling source for socket %d\n", s->_socket); -#endif + + __CFSOCKETLOG_WS(s, "read signaling source"); + CFRunLoopSourceSignal(s->_source0); CFMutableArrayRef runLoopsOrig = (CFMutableArrayRef)CFRetain(s->_runLoops); CFMutableArrayRef runLoopsCopy = CFArrayCreateMutableCopy(kCFAllocatorSystemDefault, 0, s->_runLoops); @@ -1744,15 +1836,15 @@ static void __CFSocketHandleRead(CFSocketRef s, Boolean causedByTimeout) CFRunLoopWakeUp(rl); CFRelease(rl); } - __CFSocketLock(s); - if (runLoopsOrig == s->_runLoops) { - s->_runLoops = runLoopsCopy; - runLoopsCopy = NULL; + __CFSocketLock(s); + if (runLoopsOrig == s->_runLoops) { + s->_runLoops = runLoopsCopy; + runLoopsCopy = NULL; + CFRelease(runLoopsOrig); + } + __CFSocketUnlock(s); CFRelease(runLoopsOrig); - } - __CFSocketUnlock(s); - CFRelease(runLoopsOrig); - if (runLoopsCopy) CFRelease(runLoopsCopy); + if (runLoopsCopy) CFRelease(runLoopsCopy); } static struct timeval* intervalToTimeval(CFTimeInterval timeout, struct timeval* tv) @@ -1791,21 +1883,19 @@ void __CFSocketSetSocketReadBufferAttrs(CFSocketRef s, CFTimeInterval timeout, C /* activesocketslock protects our timeout calculation */ __CFSocketLock(s); __CFLock(&__CFActiveSocketsLock); - + if (s->_bytesToBuffer != length) { CFIndex ctBuffer = s->_bytesToBufferPos - s->_bytesToBufferReadPos; if (ctBuffer) { - /* As originally envisaged, you were supposed to be sure to drain the buffer before - * issuing another request on the socket. In practice, there seem to be times when we want to re-use - * the stream (or perhaps, are on our way to closing it out) and this policy doesn't work so well. - * So, if someone changes the buffer size while we have bytes already buffered, we put them - * aside and use them to satisfy any subsequent reads. + /* As originally envisaged, you were supposed to be sure to drain the buffer before + * issuing another request on the socket. In practice, there seem to be times when we want to re-use + * the stream (or perhaps, are on our way to closing it out) and this policy doesn't work so well. + * So, if someone changes the buffer size while we have bytes already buffered, we put them + * aside and use them to satisfy any subsequent reads. */ -#if defined(LOG_CFSOCKET) - fprintf(stdout, "%s(%d): WARNING: shouldn't set read buffer length while data (%ld bytes) is still in the read buffer (leftover total %ld)", __FUNCTION__, __LINE__, ctBuffer, s->_leftoverBytes? CFDataGetLength(s->_leftoverBytes) : 0); -#endif - + __CFSOCKETLOG_WS(s, "WARNING: shouldn't set read buffer length while data (%ld bytes) is still in the read buffer (leftover total %ld)", ctBuffer, s->_leftoverBytes? CFDataGetLength(s->_leftoverBytes) : 0); + if (s->_leftoverBytes == NULL) s->_leftoverBytes = CFDataCreateMutable(CFGetAllocator(s), 0); @@ -1859,16 +1949,14 @@ void __CFSocketSetSocketReadBufferAttrs(CFSocketRef s, CFTimeInterval timeout, C CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "READING BYTES FOR SOCKET %d (%ld buffered, out of %ld desired, eof = %d, err = %d)\n", s->_socket, s->_bytesToBufferPos, s->_bytesToBuffer, s->_atEOF, s->_bufferedReadError); -#endif - + __CFSOCKETLOG_WS(s, "READING BYTES (%ld buffered, out of %ld desired, eof = %d, err = %d)", s->_bytesToBufferPos, s->_bytesToBuffer, s->_atEOF, s->_bufferedReadError); + CFIndex result = -1; - + __CFSocketLock(s); - + *error = 0; - + /* Any leftover buffered bytes? */ if (s->_leftoverBytes) { CFIndex ctBuffer = CFDataGetLength(s->_leftoverBytes); @@ -1887,7 +1975,7 @@ CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) result = ctBuffer; goto unlock; } - + /* return whatever we've buffered */ if (s->_bytesToBuffer != 0) { CFIndex ctBuffer = s->_bytesToBufferPos - s->_bytesToBufferReadPos; @@ -1898,48 +1986,41 @@ CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) memcpy(buffer, CFDataGetBytePtr(s->_readBuffer) + s->_bytesToBufferReadPos, ctBuffer); s->_bytesToBufferReadPos += ctBuffer; if (s->_bytesToBufferReadPos == s->_bytesToBufferPos) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "DRAINED BUFFER - SHOULD START BUFFERING AGAIN!\n"); -#endif + __CFSOCKETLOG_WS(s, "DRAINED BUFFER - SHOULD START BUFFERING AGAIN"); s->_bytesToBufferPos = 0; s->_bytesToBufferReadPos = 0; } - -#if defined(LOG_CFSOCKET) - fprintf(stdout, "SLURPED %ld BYTES FROM BUFFER %ld LEFT TO READ!\n", ctBuffer, length); -#endif - + + __CFSOCKETLOG_WS(s, "SLURPED %ld BYTES FROM BUFFER %ld LEFT TO READ", ctBuffer, length); + result = ctBuffer; goto unlock; } } /* nothing buffered, or no buffer selected */ - + /* Did we get an error on a previous read (or buffered read)? */ if (s->_bufferedReadError != 0) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "RETURNING ERROR %d\n", s->_bufferedReadError); -#endif + __CFSOCKETLOG_WS(s, "RETURNING ERROR %d", s->_bufferedReadError); *error = s->_bufferedReadError; result = -1; goto unlock; } - + /* nothing buffered, if we've hit eof, don't bother reading any more */ if (s->_atEOF) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "RETURNING EOF\n"); -#endif + + __CFSOCKETLOG_WS(s, "RETURNING EOF"); + result = 0; goto unlock; } - + /* normal read */ result = read(CFSocketGetNative(s), buffer, length); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "READ %ld bytes", result); -#endif - + + __CFSOCKETLOG_WS(s, "READ %ld bytes", result); + if (result == 0) { /* note that we hit EOF */ s->_atEOF = true; @@ -1960,33 +2041,42 @@ CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error) Boolean __CFSocketGetBytesAvailable(CFSocketRef s, CFIndex* ctBytesAvailable) { - CFIndex ctBuffer = s->_bytesToBufferPos - s->_bytesToBufferReadPos; - if (ctBuffer != 0) { - *ctBytesAvailable = ctBuffer; - return true; - } else { - int result; - unsigned long bytesAvailable; - result = ioctlsocket(CFSocketGetNative(s), FIONREAD, &bytesAvailable); - if (result < 0) - return false; - *ctBytesAvailable = (CFIndex) bytesAvailable; - return true; - } + CFIndex ctBuffer = s->_bytesToBufferPos - s->_bytesToBufferReadPos; + if (ctBuffer != 0) { + *ctBytesAvailable = ctBuffer; + return true; + } else { + int result; + unsigned long bytesAvailable; + result = ioctlsocket(CFSocketGetNative(s), FIONREAD, &bytesAvailable); + if (result < 0) + return false; + *ctBytesAvailable = (CFIndex) bytesAvailable; + return true; + } } #if defined(LOG_CFSOCKET) -static void __CFSocketWriteSocketList(CFArrayRef sockets, CFDataRef fdSet, Boolean onlyIfSet) { +static void __CFSocketWriteSocketList(CFArrayRef sockets, CFDataRef fdSet, char* dst, CFIndex dstCount, Boolean onlyIfSet) { + int len = snprintf(dst, dstCount, "{"); + dst += len; + dstCount -= len; + fd_set *tempfds = (fd_set *)CFDataGetBytePtr(fdSet); SInt32 idx, cnt; for (idx = 0, cnt = CFArrayGetCount(sockets); idx < cnt; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(sockets, idx); + len = 0; if (FD_ISSET(s->_socket, tempfds)) { - fprintf(stdout, "%d ", s->_socket); + len = snprintf(dst, dstCount, " %d ", s->_socket); } else if (!onlyIfSet) { - fprintf(stdout, "(%d) ", s->_socket); + len = snprintf(dst, dstCount, " (%d) ", s->_socket); } + dst += len; + dstCount -= len; } + + snprintf(dst, dstCount, "}"); } #endif @@ -2009,21 +2099,19 @@ static void manageSelectError() { SInt32 selectError = __CFSocketLastError(); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager received error %ld from select\n", (long)selectError); -#endif + + __CFSOCKETLOG("socket manager received error %ld from select", (long)selectError); + if (EBADF == selectError) { CFMutableArrayRef invalidSockets = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); - + __CFLock(&__CFActiveSocketsLock); CFIndex cnt = CFArrayGetCount(__CFWriteSockets); CFIndex idx; for (idx = 0; idx < cnt; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFWriteSockets, idx); if (!__CFNativeSocketIsValid(s->_socket)) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager found write socket %d invalid\n", s->_socket); -#endif + __CFSOCKETLOG_WS(s, "socket manager found write socket invalid"); CFArrayAppendValue(invalidSockets, s); } } @@ -2031,16 +2119,14 @@ manageSelectError() for (idx = 0; idx < cnt; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFReadSockets, idx); if (!__CFNativeSocketIsValid(s->_socket)) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager found read socket %d invalid\n", s->_socket); -#endif + __CFSOCKETLOG_WS(s, "socket manager found read socket invalid"); CFArrayAppendValue(invalidSockets, s); } } - - + + cnt = CFArrayGetCount(invalidSockets); - + /* Note that we're doing this only when we got EBADF but otherwise * don't have an explicit bad descriptor. Note that the lock is held now. * Finally, note that cnt == 0 doesn't necessarily mean @@ -2048,16 +2134,14 @@ manageSelectError() * while we were in select. */ if (cnt == 0) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager received EBADF(1): No sockets were marked as invalid, cleaning out fdsets\n"); -#endif - + __CFSOCKETLOG("socket manager received EBADF(1): No sockets were marked as invalid, cleaning out fdsets"); + clearInvalidFileDescriptors(__CFReadSocketsFds); clearInvalidFileDescriptors(__CFWriteSocketsFds); } - + __CFUnlock(&__CFActiveSocketsLock); - + for (idx = 0; idx < cnt; idx++) { CFSocketInvalidate(((CFSocketRef)CFArrayGetValueAtIndex(invalidSockets, idx))); } @@ -2073,7 +2157,6 @@ static void *__CFSocketManager(void * arg) #else pthread_setname_np("com.apple.CFSocket.private"); #endif - if (objc_collectingEnabled()) objc_registerThreadWithCollector(); SInt32 nrfds, maxnrfds, fdentries = 1; SInt32 rfds, wfds; fd_set *exceptfds = NULL; @@ -2093,14 +2176,16 @@ static void *__CFSocketManager(void * arg) for (;;) { __CFLock(&__CFActiveSocketsLock); __CFSocketManagerIteration++; + #if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager iteration %lu looking at read sockets ", (unsigned long)__CFSocketManagerIteration); - __CFSocketWriteSocketList(__CFReadSockets, __CFReadSocketsFds, FALSE); - if (0 < CFArrayGetCount(__CFWriteSockets)) { - fprintf(stdout, " and write sockets "); - __CFSocketWriteSocketList(__CFWriteSockets, __CFWriteSocketsFds, FALSE); - } - fprintf(stdout, "\n"); + char* readBuffer = (char*) malloc(16384); + __CFSocketWriteSocketList(__CFReadSockets, __CFReadSocketsFds, readBuffer, 16384, FALSE); + char* writeBuffer = (char*) malloc(16384); + __CFSocketWriteSocketList(__CFWriteSockets, __CFWriteSocketsFds, writeBuffer, 16384, FALSE); + __CFSOCKETLOG("socket manager iteration %lu looking at: read sockets %s, write sockets %s", (unsigned long)__CFSocketManagerIteration, readBuffer, writeBuffer); + + free(readBuffer); + free(writeBuffer); #endif rfds = __CFSocketFdGetSize(__CFReadSocketsFds); wfds = __CFSocketFdGetSize(__CFWriteSocketsFds); @@ -2110,73 +2195,103 @@ static void *__CFSocketManager(void * arg) writefds = (fd_set *)CFAllocatorReallocate(kCFAllocatorSystemDefault, writefds, fdentries * sizeof(fd_mask), 0); readfds = (fd_set *)CFAllocatorReallocate(kCFAllocatorSystemDefault, readfds, fdentries * sizeof(fd_mask), 0); } - memset(writefds, 0, fdentries * sizeof(fd_mask)); + memset(writefds, 0, fdentries * sizeof(fd_mask)); memset(readfds, 0, fdentries * sizeof(fd_mask)); CFDataGetBytes(__CFWriteSocketsFds, CFRangeMake(0, CFDataGetLength(__CFWriteSocketsFds)), (UInt8 *)writefds); - CFDataGetBytes(__CFReadSocketsFds, CFRangeMake(0, CFDataGetLength(__CFReadSocketsFds)), (UInt8 *)readfds); - + CFDataGetBytes(__CFReadSocketsFds, CFRangeMake(0, CFDataGetLength(__CFReadSocketsFds)), (UInt8 *)readfds); + if (__CFReadSocketsTimeoutInvalid) { struct timeval* minTimeout = NULL; __CFReadSocketsTimeoutInvalid = false; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "Figuring out which sockets have timeouts...\n"); -#endif + + __CFSOCKETLOG("Figuring out which sockets have timeouts..."); + CFArrayApplyFunction(__CFReadSockets, CFRangeMake(0, CFArrayGetCount(__CFReadSockets)), _calcMinTimeout_locked, (void*) &minTimeout); - + if (minTimeout == NULL) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "No one wants a timeout!\n"); -#endif + __CFSOCKETLOG("No one wants a timeout!"); pTimeout = NULL; } else { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "timeout will be %ld, %d!\n", minTimeout->tv_sec, minTimeout->tv_usec); -#endif + __CFSOCKETLOG("timeout will be %ld, %d!", minTimeout->tv_sec, minTimeout->tv_usec); tv = *minTimeout; pTimeout = &tv; } } - + if (pTimeout) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "select will have a %ld, %d timeout\n", pTimeout->tv_sec, pTimeout->tv_usec); -#endif + __CFSOCKETLOG("select will have a %ld, %d timeout", pTimeout->tv_sec, pTimeout->tv_usec); gettimeofday(&timeBeforeSelect, NULL); } - + __CFUnlock(&__CFActiveSocketsLock); - + #if DEPLOYMENT_TARGET_WINDOWS // On Windows, select checks connection failed sockets via the exceptfds parameter. connection succeeded is checked via writefds. We need both. exceptfds = writefds; +#elif defined(LOG_CFSOCKET) && defined(DEBUG_POLLING_SELECT) + if (pTimeout == NULL) { + /* If there's anyone with leftover bytes, they'll need to be awoken immediately */ + static struct timeval sKickerTime = { 5, 0 }; + pTimeout = &sKickerTime; + __CFSOCKETLOG("Setting 5s select timeout as debug measure"); + } + + if (exceptfds == NULL) { + exceptfds = (fd_set*) malloc(maxnrfds * NFDBITS); + bzero(exceptfds, maxnrfds * NFDBITS); + } #endif + nrfds = select(maxnrfds, readfds, writefds, exceptfds, pTimeout); - -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager woke from select, ret=%ld\n", (long)nrfds); + +#if defined(LOG_CFSOCKET) && defined(DEBUG_POLLING_SELECT) + __CFSOCKETLOG("socket manager woke from select, ret=%ld", (long)nrfds); + + if (nrfds < 0 && exceptfds && exceptfds != writefds) { + CFMutableStringRef s = NULL; + for (int i = 0; i < nrfds; i++) { + if (FD_ISSET(i, exceptfds)) { + if (s == NULL) { + s = CFStringCreateMutable(kCFAllocatorDefault, 0); + CFStringAppendCString(s, "Error set { ", kCFStringEncodingUTF8); + } + CFStringAppendFormat(s, NULL, CFSTR("%d "), i); + } + } + if (s == NULL) + __CFSOCKETLOG("Error from select errno %d, but no fds specified", errno); + else { + CFStringAppendFormat(s, NULL, CFSTR("}")); + __CFSOCKETLOG("Error from select errno %d, %@", errno, s); + CFRelease(s); + } + free(exceptfds); + exceptfds = nil; + } #endif - - /* - * select returned a timeout - */ + /* + * select returned a timeout + */ if (0 == nrfds) { + Boolean didFindOne = false; struct timeval timeAfterSelect; struct timeval deltaTime; gettimeofday(&timeAfterSelect, NULL); /* timeBeforeSelect becomes the delta */ timersub(&timeAfterSelect, &timeBeforeSelect, &deltaTime); - -#if defined(LOG_CFSOCKET) - fprintf(stdout, "Socket manager received timeout - kicking off expired reads (expired delta %ld, %d)\n", deltaTime.tv_sec, deltaTime.tv_usec); -#endif - + + __CFSOCKETLOG("Socket manager received timeout - kicking off expired reads (expired delta %ld, %d)", deltaTime.tv_sec, deltaTime.tv_usec); + __CFLock(&__CFActiveSocketsLock); - + tempfds = NULL; cnt = CFArrayGetCount(__CFReadSockets); for (idx = 0; idx < cnt; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(__CFReadSockets, idx); + if (timerisset(&s->_readBufferTimeout) || s->_leftoverBytes) { + didFindOne = true; + CFSocketNativeHandle sock = s->_socket; // We might have an new element in __CFReadSockets that we weren't listening to, // in which case we must be sure not to test a bit in the fdset that is @@ -2184,9 +2299,8 @@ static void *__CFSocketManager(void * arg) Boolean sockInBounds = (0 <= sock && sock < maxnrfds); /* if this sockets timeout is less than or equal elapsed time, then signal it */ if (INVALID_SOCKET != sock && sockInBounds) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "Expiring socket %d (delta %ld, %d)\n", sock, s->_readBufferTimeout.tv_sec, s->_readBufferTimeout.tv_usec); -#endif + __CFSOCKETLOG_WS(s, "Expiring socket (delta %ld, %d)", s->_readBufferTimeout.tv_sec, s->_readBufferTimeout.tv_usec); + CFArraySetValueAtIndex(selectedReadSockets, selectedReadSocketsIndex, s); selectedReadSocketsIndex++; /* socket is removed from fds here, will be restored in read handling or in perform function */ @@ -2199,17 +2313,30 @@ static void *__CFSocketManager(void * arg) __CFUnlock(&__CFActiveSocketsLock); /* and below, we dispatch through the normal read dispatch mechanism */ + if (! didFindOne) { +#if defined(LOG_CFSOCKET) && defined(DEBUG_POLLING_SELECT) + __CFSOCKETLOG("select() timeout - but no sockets actually timed out. Iteration %lu", (unsigned long) __CFSocketManagerIteration); + CFAbsoluteTime endTime = CFAbsoluteTimeGetCurrent() + 3; + CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopDefaultMode, ^{ + CFTimeInterval dt = CFAbsoluteTimeGetCurrent() - endTime; + if (dt > 0) { + __CFSOCKETLOG("select() timeout %lu - took %.05f for the main runloop (TOO LONG!)", __CFSocketManagerIteration, dt); + } else { + __CFSOCKETLOG("select() timeout %lu - took %.05f for the main runloop", __CFSocketManagerIteration, dt < 0? -dt : dt); + } + }); + CFRunLoopWakeUp(CFRunLoopGetMain()); +#endif + } } - + if (0 > nrfds) { manageSelectError(); continue; } if (FD_ISSET(__CFWakeupSocketPair[1], readfds)) { recv(__CFWakeupSocketPair[1], (char *)buffer, sizeof(buffer), 0); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager received %c on wakeup socket\n", buffer[0]); -#endif + __CFSOCKETLOG("socket manager received %c on wakeup socket\n", buffer[0]); } __CFLock(&__CFActiveSocketsLock); tempfds = NULL; @@ -2228,7 +2355,7 @@ static void *__CFSocketManager(void * arg) /* socket is removed from fds here, restored by CFSocketReschedule */ if (!tempfds) tempfds = (fd_set *)CFDataGetMutableBytePtr(__CFWriteSocketsFds); FD_CLR(sock, tempfds); - // CFLog(5, CFSTR("Manager: cleared socket %p from write fds"), s); + __CFSOCKETLOG_WS(s, "Manager: cleared socket from write fds"); } } } @@ -2247,7 +2374,7 @@ static void *__CFSocketManager(void * arg) // in which case we must be sure not to test a bit in the fdset that is // outside our mask size. Boolean sockInBounds = (0 <= sock && sock < maxnrfds); - + // Check if we hit the timeout s->_hitTheTimeout = false; if (pTimeout && sockInBounds && 0 != nrfds && !FD_ISSET(sock, readfds) && @@ -2256,7 +2383,7 @@ static void *__CFSocketManager(void * arg) { s->_hitTheTimeout = true; } - + if (INVALID_SOCKET != sock && sockInBounds && (FD_ISSET(sock, readfds) || s->_hitTheTimeout)) { CFArraySetValueAtIndex(selectedReadSockets, selectedReadSocketsIndex, s); selectedReadSocketsIndex++; @@ -2270,9 +2397,7 @@ static void *__CFSocketManager(void * arg) for (idx = 0; idx < selectedWriteSocketsIndex; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(selectedWriteSockets, idx); if (kCFNull == (CFNullRef)s) continue; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager signaling socket %d for write\n", s->_socket); -#endif + __CFSOCKETLOG_WS(s, "socket manager signaling for write", s, s->_socket); __CFSocketHandleWrite(s, FALSE); CFArraySetValueAtIndex(selectedWriteSockets, idx, kCFNull); } @@ -2281,9 +2406,7 @@ static void *__CFSocketManager(void * arg) for (idx = 0; idx < selectedReadSocketsIndex; idx++) { CFSocketRef s = (CFSocketRef)CFArrayGetValueAtIndex(selectedReadSockets, idx); if (kCFNull == (CFNullRef)s) continue; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "socket manager signaling socket %d for read\n", s->_socket); -#endif + __CFSOCKETLOG_WS(s, "socket manager signaling for read", s, s->_socket); __CFSocketHandleRead(s, nrfds == 0 || s->_hitTheTimeout); CFArraySetValueAtIndex(selectedReadSockets, idx, kCFNull); } @@ -2335,16 +2458,16 @@ static void __CFSocketDeallocate(CFTypeRef cf) { CFRelease(s->_readBuffer); s->_readBuffer = NULL; } - if (NULL != s->_leftoverBytes) { - CFRelease(s->_leftoverBytes); - s->_leftoverBytes = NULL; - } + if (NULL != s->_leftoverBytes) { + CFRelease(s->_leftoverBytes); + s->_leftoverBytes = NULL; + } timerclear(&s->_readBufferTimeout); s->_bytesToBuffer = 0; s->_bytesToBufferPos = 0; s->_bytesToBufferReadPos = 0; s->_atEOF = true; - s->_bufferedReadError = 0; + s->_bufferedReadError = 0; } static CFTypeID __kCFSocketTypeID = _kCFRuntimeNotATypeID; @@ -2357,14 +2480,14 @@ static const CFRuntimeClass __CFSocketClass = { __CFSocketDeallocate, NULL, // equal NULL, // hash - NULL, // + NULL, // __CFSocketCopyDescription }; CFTypeID CFSocketGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ - __kCFSocketTypeID = _CFRuntimeRegisterClass(&__CFSocketClass); // initOnce covered + __kCFSocketTypeID = _CFRuntimeRegisterClass(&__CFSocketClass); // initOnce covered #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI struct rlimit lim1; int ret1 = getrlimit(RLIMIT_NOFILE, &lim1); @@ -2414,17 +2537,15 @@ static CFSocketRef _CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketN } if (INVALID_SOCKET != sock && CFDictionaryGetValueIfPresent(__CFAllSockets, (void *)(uintptr_t)sock, (const void **)&memory)) { if (useExistingInstance) { - __CFUnlock(&__CFAllSocketsLock); - CFRetain(memory); - return memory; - } else { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "useExistingInstance is FALSE, removing existing instance %p from __CFAllSockets\n", memory); -#endif - __CFUnlock(&__CFAllSocketsLock); - CFSocketInvalidate(memory); - __CFLock(&__CFAllSocketsLock); - } + __CFUnlock(&__CFAllSocketsLock); + CFRetain(memory); + return memory; + } else { + __CFSOCKETLOG("useExistingInstance is FALSE, removing existing instance %p from __CFAllSockets\n", memory); + __CFUnlock(&__CFAllSocketsLock); + CFSocketInvalidate(memory); + __CFLock(&__CFAllSocketsLock); + } } memory = (CFSocketRef)_CFRuntimeCreateInstance(allocator, CFSocketGetTypeID(), sizeof(struct __CFSocket) - sizeof(CFRuntimeBase), NULL); if (NULL == memory) { @@ -2485,7 +2606,7 @@ static CFSocketRef _CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketN #endif pthread_create(&tid, &attr, __CFSocketManager, 0); pthread_attr_destroy(&attr); - //warning CF: we dont actually know that a pthread_t is the same size as void * +//warning CF: we dont actually know that a pthread_t is the same size as void * __CFSocketManagerThread = (void *)tid; #elif DEPLOYMENT_TARGET_WINDOWS unsigned tid; @@ -2511,24 +2632,19 @@ static CFSocketRef _CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketN memory->_context.info = contextInfo; __CFSocketUnlock(memory); } -#if defined(LOG_CFSOCKET) - CFLog(5, CFSTR("CFSocketCreateWithNative(): created socket %p (%d) with callbacks 0x%x"), memory, memory->_socket, callBackTypes); -#endif + __CFSOCKETLOG("created socket %p (%d) with callbacks 0x%x, callout %p", memory, memory->_socket, callBackTypes, callout); return memory; } CFSocketRef CFSocketCreateWithNative(CFAllocatorRef allocator, CFSocketNativeHandle sock, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context) { - return _CFSocketCreateWithNative(allocator, sock, callBackTypes, callout, context, TRUE); + return _CFSocketCreateWithNative(allocator, sock, callBackTypes, callout, context, TRUE); } void CFSocketInvalidate(CFSocketRef s) { - // CFLog(5, CFSTR("CFSocketInvalidate(%p) starting"), s); CHECK_FOR_FORK(); UInt32 previousSocketManagerIteration; __CFGenericValidateType(s, CFSocketGetTypeID()); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "invalidating socket %d with flags 0x%x disabled 0x%x connected 0x%x\n", s->_socket, s->_f.client, s->_f.disabled, s->_f.connected); -#endif + __CFSOCKETLOG_WS(s, "flags 0x%x disabled 0x%x connected 0x%x\n", s->_f.client, s->_f.disabled, s->_f.connected); CFRetain(s); __CFLock(&__CFAllSocketsLock); __CFSocketLock(s); @@ -2572,7 +2688,7 @@ void CFSocketInvalidate(CFSocketRef s) { s->_socketSetCount = 0; // we'll need this later - CFArrayRef runLoops = (CFArrayRef)CFRetain(s->_runLoops); + CFArrayRef runLoops = (CFArrayRef)CFRetain(s->_runLoops); CFRelease(s->_runLoops); s->_runLoops = NULL; @@ -2591,7 +2707,7 @@ void CFSocketInvalidate(CFSocketRef s) { CFRunLoopWakeUp((CFRunLoopRef)CFArrayGetValueAtIndex(runLoops, idx)); } CFRelease(runLoops); - + if (NULL != contextRelease) { contextRelease(contextInfo); } @@ -2603,10 +2719,8 @@ void CFSocketInvalidate(CFSocketRef s) { __CFSocketUnlock(s); } __CFUnlock(&__CFAllSocketsLock); + __CFSOCKETLOG("done for %p", s); CFRelease(s); -#if defined(LOG_CFSOCKET) - CFLog(5, CFSTR("CFSocketInvalidate(%p) done"), s); -#endif } Boolean CFSocketIsValid(CFSocketRef s) { @@ -2618,7 +2732,7 @@ Boolean CFSocketIsValid(CFSocketRef s) { CFSocketNativeHandle CFSocketGetNative(CFSocketRef s) { CHECK_FOR_FORK(); __CFGenericValidateType(s, CFSocketGetTypeID()); - return s->_socket; + return s == NULL? -1 : s->_socket; } CFDataRef CFSocketCopyAddress(CFSocketRef s) { @@ -2632,7 +2746,13 @@ CFDataRef CFSocketCopyAddress(CFSocketRef s) { } __CFSocketUnlock(s); #if defined(LOG_CFSOCKET) - CFLog(5, CFSTR("CFSocketCopyAddress(): created socket %p address %@"), s, result); + CFStringRef local = copyLocalAddress(kCFAllocatorDefault, s->_socket); + CFStringRef peer = copyPeerAddress(kCFAllocatorDefault, s->_socket); + __CFSOCKETLOG_WS(s, "addresses local %@ peer %@", local, peer); + if (local) + CFRelease(local); + if (peer) + CFRelease(peer); #endif return result; } @@ -2648,7 +2768,13 @@ CFDataRef CFSocketCopyPeerAddress(CFSocketRef s) { } __CFSocketUnlock(s); #if defined(LOG_CFSOCKET) - CFLog(5, CFSTR("CFSocketCopyAddress(): created socket %p peer address %@"), s, result); + CFStringRef local = copyLocalAddress(kCFAllocatorDefault, s->_socket); + CFStringRef peer = copyPeerAddress(kCFAllocatorDefault, s->_socket); + __CFSOCKETLOG_WS(s, "addresses local %@ peer %@", local, peer); + if (local) + CFRelease(local); + if (peer) + CFRelease(peer); #endif return result; } @@ -2656,7 +2782,7 @@ CFDataRef CFSocketCopyPeerAddress(CFSocketRef s) { void CFSocketGetContext(CFSocketRef s, CFSocketContext *context) { CHECK_FOR_FORK(); __CFGenericValidateType(s, CFSocketGetTypeID()); - CFAssert(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); + CFAssert1(0 == context->version, __kCFLogAssertion, "%s(): context version not initialized to 0", __PRETTY_FUNCTION__); *context = s->_context; } @@ -2670,12 +2796,12 @@ void CFSocketSetSocketFlags(CFSocketRef s, CFOptionFlags flags) { CHECK_FOR_FORK(); __CFGenericValidateType(s, CFSocketGetTypeID()); __CFSocketLock(s); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "setting flags for socket %d, from 0x%x to 0x%lx\n", s->_socket, s->_f.client, flags); +#if LOG_CFSOCKET + CFOptionFlags oldFlags = s->_f.client; #endif s->_f.client = flags; __CFSocketUnlock(s); - // CFLog(5, CFSTR("CFSocketSetSocketFlags(%p, 0x%x)"), s, flags); + __CFSOCKETLOG_WS(s, "set flags 0x%x (was 0x%x)", flags, oldFlags); } void CFSocketDisableCallBacks(CFSocketRef s, CFOptionFlags callBackTypes) { @@ -2688,9 +2814,7 @@ void CFSocketDisableCallBacks(CFSocketRef s, CFOptionFlags callBackTypes) { callBackTypes &= __CFSocketCallBackTypes(s); readCallBackType = __CFSocketReadCallBackType(s); s->_f.disabled |= callBackTypes; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "unscheduling socket %d with flags 0x%x disabled 0x%x connected 0x%x for types 0x%lx\n", s->_socket, s->_f.client, s->_f.disabled, s->_f.connected, callBackTypes); -#endif + __CFSOCKETLOG_WS(s, "unscheduling with flags 0x%x disabled 0x%x connected 0x%x for types 0x%lx\n", s->_f.client, s->_f.disabled, s->_f.connected, callBackTypes); __CFLock(&__CFActiveSocketsLock); if ((readCallBackType == kCFSocketAcceptCallBack) || !__CFSocketIsConnectionOriented(s)) s->_f.connected = TRUE; if (((callBackTypes & kCFSocketWriteCallBack) != 0) || (((callBackTypes & kCFSocketConnectCallBack) != 0) && !s->_f.connected)) { @@ -2727,15 +2851,13 @@ void __CFSocketEnableCallBacks(CFSocketRef s, CFOptionFlags callBackTypes, Boole } if (__CFSocketIsValid(s) && __CFSocketIsScheduled(s)) { Boolean turnOnWrite = FALSE, turnOnConnect = FALSE, turnOnRead = FALSE; - uint8_t readCallBackType = __CFSocketReadCallBackType(s); + uint8_t readCallBackType = __CFSocketReadCallBackType(s); callBackTypes &= __CFSocketCallBackTypes(s); if (force) s->_f.disabled &= ~callBackTypes; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "rescheduling socket %d with flags 0x%x disabled 0x%x connected 0x%x for types 0x%lx\n", s->_socket, s->_f.client, s->_f.disabled, s->_f.connected, callBackTypes); -#endif + __CFSOCKETLOG_WS(s, "rescheduling with flags 0x%x disabled 0x%x connected 0x%x for types 0x%lx\n", s->_f.client, s->_f.disabled, s->_f.connected, callBackTypes); /* We will wait for connection only for connection-oriented, non-rendezvous sockets that are not already connected. Mark others as already connected. */ if ((readCallBackType == kCFSocketAcceptCallBack) || !__CFSocketIsConnectionOriented(s)) s->_f.connected = TRUE; - + // First figure out what to turn on if (s->_f.connected || (callBackTypes & kCFSocketConnectCallBack) == 0) { // if we want write callbacks and they're not disabled... @@ -2746,15 +2868,17 @@ void __CFSocketEnableCallBacks(CFSocketRef s, CFOptionFlags callBackTypes, Boole } // if we want read callbacks and they're not disabled... if (readCallBackType != kCFSocketNoCallBack && (callBackTypes & readCallBackType) != 0 && (s->_f.disabled & kCFSocketReadCallBack) == 0) turnOnRead = TRUE; - + // Now turn on the callbacks we've determined that we want on if (turnOnRead || turnOnWrite || turnOnConnect) { __CFLock(&__CFActiveSocketsLock); if (turnOnWrite || turnOnConnect) { if (force) { SInt32 idx = CFArrayGetFirstIndexOfValue(__CFWriteSockets, CFRangeMake(0, CFArrayGetCount(__CFWriteSockets)), s); - if (kCFNotFound == idx) CFArrayAppendValue(__CFWriteSockets, s); - // if (kCFNotFound == idx) CFLog(5, CFSTR("__CFSocketEnableCallBacks: put %p in __CFWriteSockets list due to force and non-presence"), s); + if (kCFNotFound == idx) + CFArrayAppendValue(__CFWriteSockets, s); + if (kCFNotFound == idx) + __CFSOCKETLOG_WS(s, "put %p __CFWriteSockets list due to force and non-presence"); } if (__CFSocketSetFDForWrite(s)) wakeup = true; } @@ -2776,7 +2900,7 @@ void CFSocketEnableCallBacks(CFSocketRef s, CFOptionFlags callBackTypes) { __CFGenericValidateType(s, CFSocketGetTypeID()); __CFSocketLock(s); __CFSocketEnableCallBacks(s, callBackTypes, TRUE, 'r'); - // CFLog(5, CFSTR("CFSocketEnableCallBacks(%p, 0x%x) done"), s, callBackTypes); + __CFSOCKETLOG_WS(s, "done for callbackTypes %x", callBackTypes); } static void __CFSocketSchedule(void *info, CFRunLoopRef rl, CFStringRef mode) { @@ -2794,10 +2918,7 @@ static void __CFSocketSchedule(void *info, CFRunLoopRef rl, CFStringRef mode) { // is added to we just need to enable it there once (and _socketSetCount gives us a refCount // to know when we can finally disable it). if (1 == s->_socketSetCount) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "scheduling socket %d\n", s->_socket); -#endif - // CFLog(5, CFSTR("__CFSocketSchedule(%p, %p, %p)"), s, rl, mode); + __CFSOCKETLOG_WS(s, "rl %p (%s), mode %@", rl, (CFRunLoopGetCurrent() == rl? "current" : CFRunLoopGetMain() == rl? "main" : ""), mode); __CFSocketEnableCallBacks(s, __CFSocketCallBackTypes(s), TRUE, 's'); // unlocks s } else __CFSocketUnlock(s); @@ -2814,7 +2935,7 @@ static void __CFSocketCancel(void *info, CFRunLoopRef rl, CFStringRef mode) { __CFLock(&__CFActiveSocketsLock); idx = CFArrayGetFirstIndexOfValue(__CFWriteSockets, CFRangeMake(0, CFArrayGetCount(__CFWriteSockets)), s); if (0 <= idx) { - // CFLog(5, CFSTR("__CFSocketCancel: removing %p from __CFWriteSockets list"), s); + __CFSOCKETLOG_WS(s, "removing from __CFWriteSockets list"); CFArrayRemoveValueAtIndex(__CFWriteSockets, idx); __CFSocketClearFDForWrite(s); } @@ -2854,9 +2975,7 @@ static void __CFSocketDoCallback(CFSocketRef s, CFDataRef data, CFDataRef addres __CFSocketUnsetWriteSignalled(s); callout = s->_callout; contextInfo = s->_context.info; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "entering perform for socket %d with read signalled %d write signalled %d connect signalled %d callback types %d\n", s->_socket, readSignalled, writeSignalled, connectSignalled, callBackTypes); -#endif + __CFSOCKETLOG_WS(s, "entering perform with read signalled %d write signalled %d connect signalled %d callback types %d", readSignalled, writeSignalled, connectSignalled, callBackTypes); if (writeSignalled) { errorCode = s->_errorCode; s->_f.connected = TRUE; @@ -2864,17 +2983,11 @@ static void __CFSocketDoCallback(CFSocketRef s, CFDataRef data, CFDataRef addres __CFSocketUnlock(s); if ((callBackTypes & kCFSocketConnectCallBack) != 0) { if (connectSignalled && (!calledOut || CFSocketIsValid(s))) { - // CFLog(5, CFSTR("__CFSocketPerformV0(%p) doing connect callback, error: %d"), s, errorCode); + __CFSOCKETLOG_WS(s, "doing connect callback (%p), error: %d", callout, errorCode); if (errorCode) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out error %ld to socket %d\n", (long)errorCode, s->_socket); -#endif if (callout) callout(s, kCFSocketConnectCallBack, NULL, &errorCode, contextInfo); calledOut = true; } else { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out connect to socket %d\n", s->_socket); -#endif if (callout) callout(s, kCFSocketConnectCallBack, NULL, NULL, contextInfo); calledOut = true; } @@ -2883,37 +2996,28 @@ static void __CFSocketDoCallback(CFSocketRef s, CFDataRef data, CFDataRef addres if (kCFSocketDataCallBack == readCallBackType) { if (NULL != data && (!calledOut || CFSocketIsValid(s))) { SInt32 datalen = CFDataGetLength(data); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out data of length %ld to socket %d\n", (long)datalen, s->_socket); -#endif + __CFSOCKETLOG_WS(s, "perform calling out data of length %ld", (long)datalen); if (callout) callout(s, kCFSocketDataCallBack, address, data, contextInfo); calledOut = true; if (0 == datalen) CFSocketInvalidate(s); } } else if (kCFSocketAcceptCallBack == readCallBackType) { if (INVALID_SOCKET != sock && (!calledOut || CFSocketIsValid(s))) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out accept of socket %d to socket %d\n", sock, s->_socket); -#endif + __CFSOCKETLOG_WS(s, "perform calling out accept"); if (callout) callout(s, kCFSocketAcceptCallBack, address, &sock, contextInfo); calledOut = true; } } else if (kCFSocketReadCallBack == readCallBackType) { if (readSignalled && (!calledOut || CFSocketIsValid(s))) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out read to socket %d\n", s->_socket); -#endif - // CFLog(5, CFSTR("__CFSocketPerformV0(%p) doing read callback"), s); + __CFSOCKETLOG_WS(s, "doing read callback"); + __CFSOCKETLOG("__CFSocketPerformV0(%p) for socket %d", s, s->_socket); if (callout) callout(s, kCFSocketReadCallBack, NULL, NULL, contextInfo); calledOut = true; } } if ((callBackTypes & kCFSocketWriteCallBack) != 0) { if (writeSignalled && !errorCode && (!calledOut || CFSocketIsValid(s))) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform calling out write to socket %d\n", s->_socket); -#endif - // CFLog(5, CFSTR("__CFSocketPerformV0(%p) doing write callback"), s); + __CFSOCKETLOG_WS(s, "doing write callback"); if (callout) callout(s, kCFSocketWriteCallBack, NULL, NULL, contextInfo); calledOut = true; } @@ -2929,8 +3033,8 @@ static void __CFSocketPerformV0(void *info) { CFRunLoopRef rl = NULL; void *contextInfo = NULL; void (*contextRelease)(const void *) = NULL; - // CFLog(5, CFSTR("__CFSocketPerformV0(%p) starting"), s); - + __CFSOCKETLOG_WS(s, "Starting"); + __CFSocketLock(s); if (!__CFSocketIsValid(s)) { __CFSocketUnlock(s); @@ -2941,7 +3045,7 @@ static void __CFSocketPerformV0(void *info) { CFOptionFlags callBacksSignalled = 0; if (__CFSocketIsReadSignalled(s)) callBacksSignalled |= readCallBackType; if (__CFSocketIsWriteSignalled(s)) callBacksSignalled |= kCFSocketWriteCallBack; - + if (kCFSocketDataCallBack == readCallBackType) { if (NULL != s->_dataQueue && 0 < CFArrayGetCount(s->_dataQueue)) { data = (CFDataRef)CFArrayGetValueAtIndex(s->_dataQueue, 0); @@ -2960,29 +3064,27 @@ static void __CFSocketPerformV0(void *info) { CFArrayRemoveValueAtIndex(s->_addressQueue, 0); } } - + if (NULL != s->_context.retain) { contextInfo = s->_context.info; contextRelease = s->_context.release; s->_context.retain(contextInfo); } - + __CFSocketDoCallback(s, data, address, sock); // does __CFSocketUnlock(s) - + if (NULL != contextRelease) { contextRelease(contextInfo); } - + if (NULL != data) CFRelease(data); if (NULL != address) CFRelease(address); - + __CFSocketLock(s); if (__CFSocketIsValid(s) && kCFSocketNoCallBack != readCallBackType) { // if there's still more data, we want to wake back up right away if ((kCFSocketDataCallBack == readCallBackType || kCFSocketAcceptCallBack == readCallBackType) && NULL != s->_dataQueue && 0 < CFArrayGetCount(s->_dataQueue)) { -#if defined(LOG_CFSOCKET) - fprintf(stdout, "perform short-circuit signaling source for socket %d with flags 0x%x disabled 0x%x connected 0x%x\n", s->_socket, s->_f.client, s->_f.disabled, s->_f.connected); -#endif + __CFSOCKETLOG_WS(s, "perform short-circuit signaling source with flags 0x%x disabled 0x%x connected 0x%x\n", s->_f.client, s->_f.disabled, s->_f.connected); CFRunLoopSourceSignal(s->_source0); CFMutableArrayRef runLoopsOrig = (CFMutableArrayRef)CFRetain(s->_runLoops); CFMutableArrayRef runLoopsCopy = CFArrayCreateMutableCopy(kCFAllocatorSystemDefault, 0, s->_runLoops); @@ -3006,12 +3108,12 @@ static void __CFSocketPerformV0(void *info) { } // Only reenable callbacks that are auto-reenabled __CFSocketEnableCallBacks(s, callBacksSignalled & s->_f.client, FALSE, 'p'); // unlocks s - + if (NULL != rl) { CFRunLoopWakeUp(rl); CFRelease(rl); } - // CFLog(5, CFSTR("__CFSocketPerformV0(%p) done"), s); + __CFSOCKETLOG_WS(s, "Done"); } CFRunLoopSourceRef CFSocketCreateRunLoopSource(CFAllocatorRef allocator, CFSocketRef s, CFIndex order) { @@ -3127,9 +3229,7 @@ CFSocketError CFSocketSendData(CFSocketRef s, CFDataRef address, CFDataRef data, } else { size = send(sock, (char *)dataptr, datalen, 0); } -#if defined(LOG_CFSOCKET) - fprintf(stdout, "wrote %ld bytes to socket %d\n", (long)size, sock); -#endif + __CFSOCKETLOG_WS(s, "wrote %ld bytes", (long)size); __CFSocketWriteUnlock(s); CFRelease(s); } @@ -3193,7 +3293,7 @@ CFSocketError CFSocketConnectToAddress(CFSocketRef s, CFDataRef address, CFTimeI SInt32 namelen, result = -1, connect_err = 0, select_err = 0; UInt32 yes = 1, no = 0; Boolean wasBlocking = true; - + __CFGenericValidateType(s, CFSocketGetTypeID()); if (!CFSocketIsValid(s)) return kCFSocketError; name = CFDataGetBytePtr(address); @@ -3220,9 +3320,7 @@ CFSocketError CFSocketConnectToAddress(CFSocketRef s, CFDataRef address, CFTimeI if (connect_err == WSAEWOULDBLOCK) connect_err = EINPROGRESS; #endif } -#if defined(LOG_CFSOCKET) - fprintf(stdout, "connection attempt returns %d error %d on socket %d (flags 0x%x blocking %d)\n", (int) result, (int) connect_err, sock, (int) flags, wasBlocking); -#endif + __CFSOCKETLOG_WS(s, "connection attempt returns %d error %d on socket %d (flags 0x%x blocking %d)", (int) result, (int) connect_err, sock, (int) flags, wasBlocking); if (EINPROGRESS == connect_err && timeout >= 0.0) { /* select on socket */ SInt32 nrfds; @@ -3243,16 +3341,12 @@ CFSocketError CFSocketConnectToAddress(CFSocketRef s, CFDataRef address, CFTimeI result = (select_err == 0) ? 0 : -1; } CFRelease(fds); -#if defined(LOG_CFSOCKET) - fprintf(stdout, "timed connection attempt %s on socket %d, result %d, select returns %d error %d\n", (result == 0) ? "succeeds" : "fails", sock, (int) result, (int) nrfds, (int) select_err); -#endif + __CFSOCKETLOG_WS(s, "timed connection attempt %s result %d, select returns %d error %d\n", (result == 0) ? "succeeds" : "fails", (int) result, (int) nrfds, (int) select_err); } if (wasBlocking && (timeout > 0.0 || timeout < 0.0)) ioctlsocket(sock, FIONBIO, (u_long *)&no); if (EINPROGRESS == connect_err && timeout < 0.0) { result = 0; -#if defined(LOG_CFSOCKET) - fprintf(stdout, "connection attempt continues in background on socket %d\n", sock); -#endif + __CFSOCKETLOG_WS(s, "connection attempt continues in background\n"); } } //??? should return errno diff --git a/CoreFoundation/RunLoop.subproj/CFSocket.h b/CoreFoundation/RunLoop.subproj/CFSocket.h index 1e9937be3a..c6b8f1fd6c 100644 --- a/CoreFoundation/RunLoop.subproj/CFSocket.h +++ b/CoreFoundation/RunLoop.subproj/CFSocket.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSocket.h - Copyright (c) 1999-2015, Apple Inc. All rights reserved. + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSOCKET__) diff --git a/CoreFoundation/Stream.subproj/CFConcreteStreams.c b/CoreFoundation/Stream.subproj/CFConcreteStreams.c index 96b51903fe..8068360eac 100644 --- a/CoreFoundation/Stream.subproj/CFConcreteStreams.c +++ b/CoreFoundation/Stream.subproj/CFConcreteStreams.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFConcreteStreams.c - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: John Iarocci */ @@ -54,9 +49,10 @@ typedef struct { CONST_STRING_DECL(kCFStreamPropertyFileCurrentOffset, "kCFStreamPropertyFileCurrentOffset"); -#if DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX +#if DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI CONST_STRING_DECL(_kCFStreamPropertyFileNativeHandle, "_kCFStreamPropertyFileNativeHandle"); #endif +CONST_STRING_DECL(_kCFStreamPropertyHTTPTrailer, "_kCFStreamPropertyHTTPTrailer"); #ifdef REAL_FILE_SCHEDULING extern void _CFFileDescriptorInduceFakeReadCallBack(CFFileDescriptorRef); @@ -87,7 +83,7 @@ static Boolean constructFD(_CFFileStreamContext *fileStream, CFStreamError *erro wchar_t path[CFMaxPathSize]; flags |= (_O_BINARY|_O_NOINHERIT); if (_CFURLGetWideFileSystemRepresentation(fileStream->url, TRUE, path, CFMaxPathSize) == FALSE) -#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX +#else char path[CFMaxPathSize]; if (CFURLGetFileSystemRepresentation(fileStream->url, TRUE, (UInt8 *)path, CFMaxPathSize) == FALSE) #endif @@ -102,10 +98,10 @@ static Boolean constructFD(_CFFileStreamContext *fileStream, CFStreamError *erro } do { -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX +#if DEPLOYMENT_TARGET_WINDOWS + fileStream->fd = _wopen(path, flags, 0666); +#else fileStream->fd = open((const char *)path, flags, 0666); -#elif DEPLOYMENT_TARGET_WINDOWS - fileStream->fd = _wopen(path, flags, 0666); #endif if (fileStream->fd < 0) break; @@ -422,7 +418,7 @@ static CFTypeRef fileCopyProperty(struct _CFStream *stream, CFStringRef property if (fileStream->offset != -1) { result = CFNumberCreate(CFGetAllocator((CFTypeRef)stream), kCFNumberSInt64Type, &(fileStream->offset)); } -#if DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX +#if DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI } else if (CFEqual(propertyName, _kCFStreamPropertyFileNativeHandle)) { int fd = fileStream->fd; if (fd != -1) { @@ -869,5 +865,10 @@ CF_EXPORT CFWriteStreamRef CFWriteStreamCreateWithAllocatedBuffers(CFAllocatorRe return (CFWriteStreamRef)_CFStreamCreateWithConstantCallbacks(alloc, &ctxt, (struct _CFStreamCallBacks *)(&writeDataCallBacks), FALSE); } +CF_SWIFT_EXPORT _Nullable CFErrorRef _CFReadStreamCopyError(CFReadStreamRef stream) { return CFReadStreamCopyError(stream); } + +CF_SWIFT_EXPORT _Nullable CFErrorRef _CFWriteStreamCopyError(CFWriteStreamRef stream) { return CFWriteStreamCopyError(stream); } + + #undef BUF_SIZE diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index a38de48eb4..5948057eae 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFSocketStream.c - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Jeremy Wyld */ // Original Author: Becky Willrich diff --git a/CoreFoundation/Stream.subproj/CFStream.c b/CoreFoundation/Stream.subproj/CFStream.c index bab83d38c2..b8e3cd7cbd 100644 --- a/CoreFoundation/Stream.subproj/CFStream.c +++ b/CoreFoundation/Stream.subproj/CFStream.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStream.c - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: John Iarocci */ @@ -24,15 +19,13 @@ #include #endif + struct _CFStream { CFRuntimeBase _cfBase; CFOptionFlags flags; CFErrorRef error; // if callBacks->version < 2, this is actually a pointer to a CFStreamError struct _CFStreamClient *client; - /* NOTE: CFNetwork is still using _CFStreamGetInfoPointer, and so this slot needs to stay in this position (as the fifth field in the structure) */ - /* NOTE: This can be taken out once CFNetwork rebuilds */ - /* NOTE: Remove comment once CFNetwork has been rebuilt */ - void *info; + void *info; /* callBacks info */ const struct _CFStreamCallBacks *callBacks; // This will not exist (will not be allocated) if the callbacks are from our known, "blessed" set. CFLock_t streamLock; @@ -40,6 +33,7 @@ struct _CFStream { #if __HAS_DISPATCH__ dispatch_queue_t queue; #endif + Boolean pendingEventsToDeliver; }; @@ -352,7 +346,7 @@ CONST_STRING_DECL(kCFStreamPropertyDataWritten, "kCFStreamPropertyDataWritten") CONST_STRING_DECL(kCFStreamPropertyAppendToFile, "kCFStreamPropertyAppendToFile") CF_PRIVATE void __CFStreamInitialize(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFReadStreamTypeID = _CFRuntimeRegisterClass(&__CFReadStreamClass); __kCFWriteStreamTypeID = _CFRuntimeRegisterClass(&__CFWriteStreamClass); }); } @@ -381,6 +375,7 @@ static struct _CFStream *_CFStreamCreate(CFAllocatorRef allocator, Boolean isRea #if __HAS_DISPATCH__ newStream->queue = NULL; #endif + newStream->pendingEventsToDeliver = false; } return newStream; } @@ -389,7 +384,7 @@ CF_EXPORT void* _CFStreamGetInfoPointer(struct _CFStream* stream) { return stream == NULL? NULL : stream->info; } -CF_EXPORT struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef alloc, void *info, const struct _CFStreamCallBacks *cb, Boolean isReading) { +CF_PRIVATE struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef alloc, void *info, const struct _CFStreamCallBacks *cb, Boolean isReading) { struct _CFStream *newStream; if (cb->version != 1) return NULL; newStream = _CFStreamCreate(alloc, isReading); @@ -405,21 +400,6 @@ CF_EXPORT struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef return newStream; } -CF_EXPORT void _CFStreamSetInfoPointer(struct _CFStream *stream, void *info, const struct _CFStreamCallBacks *cb) { - if (info != stream->info) { - if (stream->callBacks->finalize) { - stream->callBacks->finalize(stream, stream->info); - } - if (cb->create) { - stream->info = cb->create(stream, info); - } else { - stream->info = info; - } - } - stream->callBacks = cb; -} - - CF_EXPORT CFReadStreamRef CFReadStreamCreate(CFAllocatorRef alloc, const CFReadStreamCallBacks *callbacks, void *info) { struct _CFStream *newStream = _CFStreamCreate(alloc, TRUE); struct _CFStreamCallBacks *cb; @@ -569,38 +549,45 @@ CF_EXPORT CFWriteStreamRef CFWriteStreamCreate(CFAllocatorRef alloc, const CFWri return (CFWriteStreamRef)newStream; } -static void _signalEventSync(struct _CFStream* stream, CFOptionFlags whatToSignal) +static void _signalEventSync(struct _CFStream* stream) { CFOptionFlags eventMask; - + __CFBitSet(stream->flags, CALLING_CLIENT); - + _CFStreamLock(stream); - + struct _CFStreamClient* client = stream->client; - if (client == NULL) { + if (client == NULL || stream->client->whatToSignal == 0) { + stream->pendingEventsToDeliver = false; _CFStreamUnlock(stream); } else { void* info = NULL; void (*release) (void*) = NULL; void (*cb)(struct _CFStream *, CFStreamEventType, void *) = client == NULL? NULL : client->cb; - + if (stream->client->cbContext.retain == NULL) info = stream->client->cbContext.info; else { info = stream->client->cbContext.retain(stream->client->cbContext.info); release = stream->client->cbContext.release; } - _CFStreamUnlock(stream); + + CFOptionFlags whatToSignal = stream->client->whatToSignal; + stream->client->whatToSignal = 0; + + stream->pendingEventsToDeliver = false; + _CFStreamUnlock(stream); + for (eventMask = 1; eventMask <= whatToSignal; eventMask = eventMask << 1) { _CFStreamLock(stream); Boolean shouldSignal = ((eventMask & whatToSignal) && stream->client && (stream->client->when & eventMask)); _CFStreamUnlock(stream); - + if (shouldSignal && client) { cb(stream, eventMask, info); - + /* What happens if the callback sets the client to NULL? We're in a loop here... Hmm. */ /* After writing that comment, I see: CFReadStreamSetClient(..., NULL) unsafely releases info pointer immediately */ /* Of note, when the stream callbacks are set to to NULL, we're re-initalized so as not to receive more events, so we @@ -614,13 +601,12 @@ static void _signalEventSync(struct _CFStream* stream, CFOptionFlags whatToSigna __CFBitClear(stream->flags, CALLING_CLIENT); } - #if __HAS_DISPATCH__ -static void _signalEventQueue(dispatch_queue_t q, struct _CFStream* stream, CFOptionFlags whatToSignal) +static void _signalEventQueue(dispatch_queue_t q, struct _CFStream* stream) { CFRetain(stream); dispatch_async(q, ^{ - _signalEventSync(stream, whatToSignal); + _signalEventSync(stream); CFRelease(stream); }); } @@ -638,27 +624,27 @@ static void _cfstream_solo_signalEventSync(void* info) } else { struct _CFStream* stream = (struct _CFStream*) info; _CFStreamLock(stream); - CFOptionFlags whatToSignal = stream->client->whatToSignal; - stream->client->whatToSignal = 0; -#if __HAS_DISPATCH__ - dispatch_queue_t queue = stream->queue; - if (queue) dispatch_retain(queue); -#endif - CFRetain(stream); - _CFStreamUnlock(stream); - - /* Since the array version holds a retain, we do it here as well, as opposed to taking a second retain in the client callback */ + if (stream->pendingEventsToDeliver) { + _CFStreamUnlock(stream); + } else { #if __HAS_DISPATCH__ - if (queue == 0) - _signalEventSync(stream, whatToSignal); - else { - _signalEventQueue(queue, stream, whatToSignal); - dispatch_release(queue); - } + dispatch_queue_t queue = stream->queue; + if (queue) dispatch_retain(queue); + CFRetain(stream); + _CFStreamUnlock(stream); + + /* Since the array version holds a retain, we do it here as well, as opposed to taking a second retain in the client callback */ + if (queue == 0) + _signalEventSync(stream); + else { + _signalEventQueue(queue, stream); + dispatch_release(queue); + } + CFRelease(stream); #else - _signalEventSync(stream, whatToSignal); + _signalEventSync(stream); #endif - CFRelease(stream); + } } } @@ -667,92 +653,83 @@ static void _cfstream_shared_signalEventSync(void* info) CFTypeID typeID = CFGetTypeID((CFTypeRef) info); if (typeID != CFArrayGetTypeID()) { - CFLog(__kCFLogAssertion, CFSTR("Expected an array for %p"), info); + CFLog(__kCFLogAssertion, CFSTR("Expected an array for %p"), info); #if defined(DEBUG) - abort(); + abort(); #endif } else { - CFMutableArrayRef list = (CFMutableArrayRef) info; - CFIndex c, i; - CFOptionFlags whatToSignal = 0; + CFMutableArrayRef list = (CFMutableArrayRef) info; + CFIndex c, i; #if __HAS_DISPATCH__ dispatch_queue_t queue = 0; #endif - struct _CFStream* stream = NULL; - - __CFLock(&sSourceLock); - - /* Looks like, we grab the first stream that wants an event... */ - /* Note that I grab an extra retain when I pull out the stream here... */ - c = CFArrayGetCount(list); - for (i = 0; i < c; i++) { - struct _CFStream* s = (struct _CFStream*)CFArrayGetValueAtIndex(list, i); - - if (s->client->whatToSignal) { - stream = s; - CFRetain(stream); - whatToSignal = stream->client->whatToSignal; - s->client->whatToSignal = 0; + struct _CFStream* stream = NULL; + + __CFLock(&sSourceLock); + + /* Looks like, we grab the first stream that wants an event... */ + /* Note that I grab an extra retain when I pull out the stream here... */ + c = CFArrayGetCount(list); + for (i = 0; i < c; i++) { + struct _CFStream* s = (struct _CFStream*)CFArrayGetValueAtIndex(list, i); + + if (s->pendingEventsToDeliver) { + continue; + } + + if (s->client->whatToSignal) { + stream = s; + CFRetain(stream); #if __HAS_DISPATCH__ queue = stream->queue; if (queue) dispatch_retain(queue); #endif - break; - } - } - - /* And then we also signal any other streams in this array so that we get them next go? */ - for (; i < c; i++) { - struct _CFStream* s = (struct _CFStream*)CFArrayGetValueAtIndex(list, i); - if (s->client->whatToSignal) { + stream->pendingEventsToDeliver = true; + break; + } + } + + /* And then we also signal any other streams in this array so that we get them next go? */ + for (; i < c; i++) { + struct _CFStream* s = (struct _CFStream*)CFArrayGetValueAtIndex(list, i); + + if (s == stream) { + continue; + } + + if (s->pendingEventsToDeliver) { + continue; + } + + if (s->client->whatToSignal) { CFRunLoopSourceRef source = _CFStreamCopySource(s); if (source) { CFRunLoopSourceSignal(source); CFRelease(source); } break; - } - } - - __CFUnlock(&sSourceLock); - - /* We're sitting here now, possibly with a stream that needs to be processed by the common routine */ - if (stream) { + } + } + + __CFUnlock(&sSourceLock); + + /* We're sitting here now, possibly with a stream that needs to be processed by the common routine */ + if (stream) { #if __HAS_DISPATCH__ if (queue == 0) - _signalEventSync(stream, whatToSignal); + _signalEventSync(stream); else { - _signalEventQueue(queue, stream, whatToSignal); + _signalEventQueue(queue, stream); dispatch_release(queue); } #else - _signalEventSync(stream, whatToSignal); + _signalEventSync(stream); #endif - - /* Lose our extra retain */ - CFRelease(stream); - } - } -} - -/* This routine is to be considered unsafe... */ -static CFArrayRef _CFStreamGetRunLoopsAndModes(struct _CFStream *stream) -{ - CFArrayRef result = NULL; - if (stream && stream->client) { - _CFStreamLock(stream); - if (stream->previousRunloopsAndModes) { - CFRelease(stream->previousRunloopsAndModes); - stream->previousRunloopsAndModes = NULL; - } - if (stream->client->runLoopsAndModes) { - stream->previousRunloopsAndModes = CFArrayCreateCopy(CFGetAllocator(stream), stream->client->runLoopsAndModes); + + /* Lose our extra retain */ + CFRelease(stream); } - result = stream->previousRunloopsAndModes; - checkRLMArray(result); - _CFStreamUnlock(stream); } - return result; } static CFArrayRef _CFStreamCopyRunLoopsAndModes(struct _CFStream *stream) @@ -845,8 +822,8 @@ CF_PRIVATE void _CFStreamSignalEvent(struct _CFStream *stream, CFStreamEventType _CFStreamSetStatusCode(stream, kCFStreamStatusError); } - // Now signal any pertinent event - if (stream->client && (stream->client->when & event) != 0) { + // Now signal any pertinent event - if not already signaled + if (stream->client && (stream->client->when & event) != 0 && (stream->client->whatToSignal & event) == 0) { CFRunLoopSourceRef source = _CFStreamCopySource(stream); if (source) { @@ -1067,6 +1044,7 @@ CF_EXPORT Boolean CFReadStreamHasBytesAvailable(CFReadStreamRef readStream) { } static void waitForOpen(struct _CFStream *stream); + CFIndex CFReadStreamRead(CFReadStreamRef readStream, UInt8 *buffer, CFIndex bufferLength) { CF_OBJC_FUNCDISPATCHV(__kCFReadStreamTypeID, CFIndex, (NSInputStream *)readStream, read:(uint8_t *)buffer maxLength:(NSUInteger)bufferLength); struct _CFStream *stream = (struct _CFStream *)readStream; @@ -1680,17 +1658,17 @@ void CFWriteStreamUnscheduleFromRunLoop(CFWriteStreamRef stream, CFRunLoopRef ru _CFStreamUnscheduleFromRunLoop((struct _CFStream *)stream, runLoop, runLoopMode); } +#if __HAS_DISPATCH__ + static CFRunLoopRef sLegacyRL = NULL; static void _perform(void* info) { } -#if __HAS_DISPATCH__ - static void* _legacyStreamRunLoop_workThread(void* arg) { -#if DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD +#if DEPLOYMENT_TARGET_LINUX pthread_setname_np(pthread_self(), "com.apple.CFStream.LegacyThread"); #else pthread_setname_np("com.apple.CFStream.LegacyThread"); @@ -1749,6 +1727,7 @@ static void* _legacyStreamRunLoop_workThread(void* arg) return NULL; } + static CFRunLoopRef _legacyStreamRunLoop() { static dispatch_once_t sOnce = 0; @@ -1849,10 +1828,8 @@ dispatch_queue_t CFWriteStreamCopyDispatchQueue(CFWriteStreamRef stream) { return _CFStreamCopyDispatchQueue((struct _CFStream*) stream); } - #endif - static void waitForOpen(struct _CFStream *stream) { CFRunLoopRef runLoop = CFRunLoopGetCurrent(); CFStringRef privateMode = CFSTR("_kCFStreamBlockingOpenMode"); @@ -1864,14 +1841,6 @@ static void waitForOpen(struct _CFStream *stream) { _CFStreamUnscheduleFromRunLoop(stream, runLoop, privateMode); } -CF_EXPORT CFArrayRef _CFReadStreamGetRunLoopsAndModes(CFReadStreamRef readStream) { - return _CFStreamGetRunLoopsAndModes((struct _CFStream *)readStream); -} - -CF_EXPORT CFArrayRef _CFWriteStreamGetRunLoopsAndModes(CFWriteStreamRef writeStream) { - return _CFStreamGetRunLoopsAndModes((struct _CFStream *)writeStream); -} - CF_EXPORT CFArrayRef _CFReadStreamCopyRunLoopsAndModes(CFReadStreamRef readStream) { return _CFStreamCopyRunLoopsAndModes((struct _CFStream *)readStream); } @@ -1911,120 +1880,7 @@ CF_EXPORT void *CFWriteStreamGetInfoPointer(CFWriteStreamRef stream) { return _CFStreamGetInfoPointer((struct _CFStream *)stream); } -/* CF_EXPORT */ -void _CFStreamSourceScheduleWithRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode) -{ - CFIndex count; - CFRange range; - - checkRLMArray(runLoopsAndModes); - - count = CFArrayGetCount(runLoopsAndModes); - range = CFRangeMake(0, count); - - while (range.length) { - - CFIndex i = CFArrayGetFirstIndexOfValue(runLoopsAndModes, range, runLoop); - - if (i == kCFNotFound) - break; - - if (CFEqual(CFArrayGetValueAtIndex(runLoopsAndModes, i + 1), runLoopMode)) - return; - - range.location = i + 2; - range.length = count - range.location; - } - - // Add the new values. - CFArrayAppendValue(runLoopsAndModes, runLoop); - CFArrayAppendValue(runLoopsAndModes, runLoopMode); - - // Schedule the source on the new loop and mode. - if (source) - CFRunLoopAddSource(runLoop, source, runLoopMode); -} - - -/* CF_EXPORT */ -void _CFStreamSourceUnscheduleFromRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode) -{ - CFIndex count; - CFRange range; - - count = CFArrayGetCount(runLoopsAndModes); - range = CFRangeMake(0, count); - - checkRLMArray(runLoopsAndModes); - - while (range.length) { - - CFIndex i = CFArrayGetFirstIndexOfValue(runLoopsAndModes, range, runLoop); - - // If not found, it's not scheduled on it. - if (i == kCFNotFound) - return; - - // Make sure it is scheduled in this mode. - if (CFEqual(CFArrayGetValueAtIndex(runLoopsAndModes, i + 1), runLoopMode)) { - - // Remove mode and runloop from the list. - CFArrayReplaceValues(runLoopsAndModes, CFRangeMake(i, 2), NULL, 0); - - // Remove it from the runloop. - if (source) - CFRunLoopRemoveSource(runLoop, source, runLoopMode); - - return; - } - - range.location = i + 2; - range.length = count - range.location; - } -} - - -/* CF_EXPORT */ -void _CFStreamSourceScheduleWithAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes) -{ - CFIndex i, count = CFArrayGetCount(runLoopsAndModes); - - if (!source) - return; - - checkRLMArray(runLoopsAndModes); - - for (i = 0; i < count; i += 2) { - - // Make sure it's scheduled on all the right loops and modes. - // Go through the array adding the source to all loops and modes. - CFRunLoopAddSource((CFRunLoopRef)CFArrayGetValueAtIndex(runLoopsAndModes, i), - source, - (CFStringRef)CFArrayGetValueAtIndex(runLoopsAndModes, i + 1)); - } -} - - -/* CF_EXPORT */ -void _CFStreamSourceUncheduleFromAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes) -{ - CFIndex i, count = CFArrayGetCount(runLoopsAndModes); - - if (!source) - return; - - checkRLMArray(runLoopsAndModes); - - for (i = 0; i < count; i += 2) { - - // Go through the array removing the source from all loops and modes. - CFRunLoopRemoveSource((CFRunLoopRef)CFArrayGetValueAtIndex(runLoopsAndModes, i), - source, - (CFStringRef)CFArrayGetValueAtIndex(runLoopsAndModes, i + 1)); - } -} - -Boolean _CFStreamRemoveRunLoopAndModeFromArray(CFMutableArrayRef runLoopsAndModes, CFRunLoopRef rl, CFStringRef mode) { +static Boolean _CFStreamRemoveRunLoopAndModeFromArray(CFMutableArrayRef runLoopsAndModes, CFRunLoopRef rl, CFStringRef mode) { CFIndex idx, cnt; Boolean found = FALSE; diff --git a/CoreFoundation/Stream.subproj/CFStream.h b/CoreFoundation/Stream.subproj/CFStream.h index 91aa0c29d0..6246a12528 100644 --- a/CoreFoundation/Stream.subproj/CFStream.h +++ b/CoreFoundation/Stream.subproj/CFStream.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStream.h - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTREAM__) @@ -22,13 +17,13 @@ #include #include #include -#if __HAS_DISPATCH__ #include -#endif CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN +typedef CFStringRef CFStreamPropertyKey CF_EXTENSIBLE_STRING_ENUM; + typedef CF_ENUM(CFIndex, CFStreamStatus) { kCFStreamStatusNotOpen = 0, kCFStreamStatusOpening, /* open is in-progress */ @@ -72,7 +67,7 @@ CFTypeID CFWriteStreamGetTypeID(void); /* Value will be a CFData containing all bytes thusfar written; used to recover the data written to a memory write stream. */ CF_EXPORT -const CFStringRef kCFStreamPropertyDataWritten; +const CFStreamPropertyKey kCFStreamPropertyDataWritten; /* Pass kCFAllocatorNull for bytesDeallocator to prevent CFReadStream from deallocating bytes; otherwise, CFReadStream will deallocate bytes when the stream is destroyed */ CF_EXPORT @@ -98,25 +93,25 @@ CF_IMPLICIT_BRIDGING_ENABLED /* Property for file write streams; value should be a CFBoolean. Set to TRUE to append to a file, rather than to replace its contents */ CF_EXPORT -const CFStringRef kCFStreamPropertyAppendToFile; +const CFStreamPropertyKey kCFStreamPropertyAppendToFile; CF_EXPORT -const CFStringRef kCFStreamPropertyFileCurrentOffset; // Value is a CFNumber +const CFStreamPropertyKey kCFStreamPropertyFileCurrentOffset; // Value is a CFNumber /* Socket stream properties */ /* Value will be a CFData containing the native handle */ CF_EXPORT -const CFStringRef kCFStreamPropertySocketNativeHandle; +const CFStreamPropertyKey kCFStreamPropertySocketNativeHandle; /* Value will be a CFString, or NULL if unknown */ CF_EXPORT -const CFStringRef kCFStreamPropertySocketRemoteHostName; +const CFStreamPropertyKey kCFStreamPropertySocketRemoteHostName; /* Value will be a CFNumber, or NULL if unknown */ CF_EXPORT -const CFStringRef kCFStreamPropertySocketRemotePortNumber; +const CFStreamPropertyKey kCFStreamPropertySocketRemotePortNumber; CF_IMPLICIT_BRIDGING_DISABLED /* Socket streams; the returned streams are paired such that they use the same socket; pass NULL if you want only the read stream or the write stream */ @@ -170,7 +165,7 @@ Boolean CFReadStreamHasBytesAvailable(CFReadStreamRef stream); This call will block until at least one byte is available; it will NOT block until the entire buffer can be filled. To avoid blocking, either poll using CFReadStreamHasBytesAvailable() or use the run loop and listen for the - kCFStreamCanRead event for notification of data available. */ + kCFStreamEventHasBytesAvailable event for notification of data available. */ CF_EXPORT CFIndex CFReadStreamRead(CFReadStreamRef stream, UInt8 *buffer, CFIndex bufferLength); @@ -195,7 +190,7 @@ Boolean CFWriteStreamCanAcceptBytes(CFWriteStreamRef stream); occurred, or 0 if the stream has been filled to capacity (for fixed-length streams). If the stream is not full, this call will block until at least one byte is written. To avoid blocking, either poll via CFWriteStreamCanAcceptBytes - or use the run loop and listen for the kCFStreamCanWrite event. */ + or use the run loop and listen for the kCFStreamEventCanAcceptBytes event. */ CF_EXPORT CFIndex CFWriteStreamWrite(CFWriteStreamRef stream, const UInt8 *buffer, CFIndex bufferLength); @@ -208,16 +203,16 @@ CFIndex CFWriteStreamWrite(CFWriteStreamRef stream, const UInt8 *buffer, CFIndex (like before the stream has been opened). See the documentation for particular properties to determine their get- and set-ability. */ CF_EXPORT -CFTypeRef CFReadStreamCopyProperty(CFReadStreamRef stream, CFStringRef propertyName); +CFTypeRef CFReadStreamCopyProperty(CFReadStreamRef stream, CFStreamPropertyKey propertyName); CF_EXPORT -CFTypeRef CFWriteStreamCopyProperty(CFWriteStreamRef stream, CFStringRef propertyName); +CFTypeRef CFWriteStreamCopyProperty(CFWriteStreamRef stream, CFStreamPropertyKey propertyName); /* Returns TRUE if the stream recognizes and accepts the given property-value pair; FALSE otherwise. */ CF_EXPORT -Boolean CFReadStreamSetProperty(CFReadStreamRef stream, CFStringRef propertyName, CFTypeRef propertyValue); +Boolean CFReadStreamSetProperty(CFReadStreamRef stream, CFStreamPropertyKey propertyName, CFTypeRef propertyValue); CF_EXPORT -Boolean CFWriteStreamSetProperty(CFWriteStreamRef stream, CFStringRef propertyName, CFTypeRef propertyValue); +Boolean CFWriteStreamSetProperty(CFWriteStreamRef stream, CFStreamPropertyKey propertyName, CFTypeRef propertyValue); /* Asynchronous processing - If you wish to neither poll nor block, you may register a client to hear about interesting events that occur on a stream. Only one client @@ -241,16 +236,15 @@ CF_EXPORT Boolean CFWriteStreamSetClient(CFWriteStreamRef stream, CFOptionFlags streamEvents, CFWriteStreamClientCallBack clientCB, CFStreamClientContext *clientContext); CF_EXPORT -void CFReadStreamScheduleWithRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); +void CFReadStreamScheduleWithRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode); CF_EXPORT -void CFWriteStreamScheduleWithRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); +void CFWriteStreamScheduleWithRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode); CF_EXPORT -void CFReadStreamUnscheduleFromRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); +void CFReadStreamUnscheduleFromRunLoop(CFReadStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode); CF_EXPORT -void CFWriteStreamUnscheduleFromRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); +void CFWriteStreamUnscheduleFromRunLoop(CFWriteStreamRef stream, CFRunLoopRef runLoop, CFRunLoopMode runLoopMode); -#if __HAS_DISPATCH__ /* * Specify the dispatch queue upon which the client callbacks will be invoked. @@ -276,7 +270,6 @@ dispatch_queue_t CFReadStreamCopyDispatchQueue(CFReadStreamRef stream) CF_AVAILA CF_EXPORT dispatch_queue_t CFWriteStreamCopyDispatchQueue(CFWriteStreamRef stream) CF_AVAILABLE(10_9, 7_0); -#endif /* The following API is deprecated starting in 10.5; please use CFRead/WriteStreamCopyError(), above, instead */ typedef CF_ENUM(CFIndex, CFStreamErrorDomain) { diff --git a/CoreFoundation/Stream.subproj/CFStreamAbstract.h b/CoreFoundation/Stream.subproj/CFStreamAbstract.h index ea16e17719..4ccec0c676 100644 --- a/CoreFoundation/Stream.subproj/CFStreamAbstract.h +++ b/CoreFoundation/Stream.subproj/CFStreamAbstract.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStreamAbstract.h - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc.and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTREAMABSTRACT__) @@ -120,19 +115,6 @@ void *_CFReadStreamGetClient(CFReadStreamRef readStream); CF_EXPORT void *_CFWriteStreamGetClient(CFWriteStreamRef writeStream); -// Returns an array of the runloops and modes on which the stream is currently scheduled -// Note that these are unretained mutable arrays - use the copy variant instead. -CF_EXPORT -CFArrayRef _CFReadStreamGetRunLoopsAndModes(CFReadStreamRef readStream); -CF_EXPORT -CFArrayRef _CFWriteStreamGetRunLoopsAndModes(CFWriteStreamRef writeStream); - -// Returns an array of the runloops and modes on which the stream is currently scheduled -CF_EXPORT -CFArrayRef _CFReadStreamCopyRunLoopsAndModes(CFReadStreamRef readStream); -CF_EXPORT -CFArrayRef _CFWriteStreamCopyRunLoopsAndModes(CFWriteStreamRef writeStream); - /* Deprecated versions; here for backwards compatibility. */ typedef struct { CFIndex version; /* == 1 */ diff --git a/CoreFoundation/Stream.subproj/CFStreamInternal.h b/CoreFoundation/Stream.subproj/CFStreamInternal.h index 3bddd9ca87..c0ff804784 100644 --- a/CoreFoundation/Stream.subproj/CFStreamInternal.h +++ b/CoreFoundation/Stream.subproj/CFStreamInternal.h @@ -1,13 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - +/* CFStreamInternal.h + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + */ #if !defined(__COREFOUNDATION_CFSTREAMINTERNAL__) #define __COREFOUNDATION_CFSTREAMINTERNAL__ 1 diff --git a/CoreFoundation/Stream.subproj/CFStreamPriv.h b/CoreFoundation/Stream.subproj/CFStreamPriv.h index 2b735738a8..b71bb8ad98 100644 --- a/CoreFoundation/Stream.subproj/CFStreamPriv.h +++ b/CoreFoundation/Stream.subproj/CFStreamPriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStreamPriv.h - Copyright (c) 2000 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2000-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTREAMPRIV__) @@ -60,78 +55,18 @@ struct _CFStream; CF_EXPORT void* _CFStreamGetInfoPointer(struct _CFStream* stream); -// cb version must be > 0 -CF_EXPORT struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef alloc, void *info, const struct _CFStreamCallBacks *cb, Boolean isReading); - -// Only available for streams created with _CFStreamCreateWithConstantCallbacks, above. cb's version must be 1 -CF_EXPORT void _CFStreamSetInfoPointer(struct _CFStream *stream, void *info, const struct _CFStreamCallBacks *cb); - -/* -** _CFStreamSourceScheduleWithRunLoop -** -** Schedules the given run loop source on the given run loop and mode. It then -** adds the loop and mode pair to the runLoopsAndModes list. The list is -** simply a linear list of a loop reference followed by a mode reference. -** -** source Run loop source to be scheduled -** -** runLoopsAndModes List of run loop/mode pairs on which the source is scheduled -** -** runLoop Run loop on which the source is being scheduled -** -** runLoopMode Run loop mode on which the source is being scheduled -*/ -CF_EXPORT -void _CFStreamSourceScheduleWithRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode); - - -/* -** _CFStreamSourceUnscheduleFromRunLoop -** -** Unschedule the given source from the given run loop and mode. It then will -** guarantee that the source remains scheduled on the list of run loop and mode -** pairs in the runLoopsAndModes list. The list is simply a linear list of a -** loop reference followed by a mode reference. -** -** source Run loop source to be unscheduled -** -** runLoopsAndModes List of run loop/mode pairs on which the source is scheduled -** -** runLoop Run loop from which the source is being unscheduled -** -** runLoopMode Run loop mode from which the source is being unscheduled -*/ -CF_EXPORT -void _CFStreamSourceUnscheduleFromRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode); - +#if !defined(CF_PRIVATE) +#define CF_PRIVATE __attribute__((__visibility__("hidden"))) +#endif -/* -** _CFStreamSourceScheduleWithAllRunLoops -** -** Schedules the given run loop source on all the run loops and modes in the list. -** The list is simply a linear list of a loop reference followed by a mode reference. -** -** source Run loop source to be unscheduled -** -** runLoopsAndModes List of run loop/mode pairs on which the source is scheduled -*/ -CF_EXPORT -void _CFStreamSourceScheduleWithAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes); +// cb version must be > 0 +CF_PRIVATE struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef alloc, void *info, const struct _CFStreamCallBacks *cb, Boolean isReading); - -/* -** _CFStreamSourceUnscheduleFromRunLoop -** -** Unschedule the given source from all the run loops and modes in the list. -** The list is simply a linear list of a loop reference followed by a mode -** reference. -** -** source Run loop source to be unscheduled -** -** runLoopsAndModes List of run loop/mode pairs on which the source is scheduled -*/ -CF_EXPORT -void _CFStreamSourceUncheduleFromAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes); +// Returns an array of the runloops and modes on which the stream is currently scheduled +CF_PRIVATE +CFArrayRef _CFReadStreamCopyRunLoopsAndModes(CFReadStreamRef readStream); +CF_PRIVATE +CFArrayRef _CFWriteStreamCopyRunLoopsAndModes(CFWriteStreamRef writeStream); CF_EXPORT CFReadStreamRef _CFReadStreamCreateFromFileDescriptor(CFAllocatorRef alloc, int fd); @@ -181,5 +116,14 @@ CF_EXTERN_C_END */ CF_EXPORT const CFStringRef _kCFStreamPropertyFileNativeHandle CF_AVAILABLE_IOS(5_0); +/* + * SPI: The _kCFStreamPropertyHTTPTrailer property is a dictionary of HTTP headers & values that the caller + * wishes to have present in the trailer section of a chunked-encoded message body. The caller is responsible + * for setting this property BEFORE the stream event NSStreamEventEndEncountered is signaled to the reader of the + * stream on which this property is set. + */ +CF_EXPORT const CFStringRef _kCFStreamPropertyHTTPTrailer API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + + #endif /* ! __COREFOUNDATION_CFSTREAMPRIV__ */ diff --git a/CoreFoundation/String.subproj/CFAttributedString.c b/CoreFoundation/String.subproj/CFAttributedString.c index 3ba1c7d0d2..61306e8fa2 100644 --- a/CoreFoundation/String.subproj/CFAttributedString.c +++ b/CoreFoundation/String.subproj/CFAttributedString.c @@ -38,10 +38,10 @@ CF_INLINE void __CFAttributedStringSetMutable(CFAttributedStringRef attrStr, Boo /* Assertions */ #define __CFAssertIsAttributedString(cf) __CFGenericValidateType(cf, CFAttributedStringGetTypeID()) -#define __CFAssertIndexIsInBounds(cf, idx) CFAssert((idx) >= 0 && (idx) < CFAttributedStringGetLength(cf), __kCFLogAssertion, "%s(): index %d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, CFAttributedStringGetLength(cf)) -#define __CFAssertRangeIsInBounds(cf, idx, count) CFAssert((idx) >= 0 && (idx + count) <= CFAttributedStringGetLength(cf), __kCFLogAssertion, "%s(): range %d,%d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, count, CFAttributedStringGetLength(cf)) -#define __CFAssertRangeIsWithinLength(len, idx, count) CFAssert((idx) >= 0 && (idx + count) <= len, __kCFLogAssertion, "%s(): range %d,%d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, count, len) -#define __CFAssertIsAttributedStringAndMutable(cf) CFAssert((CFGetTypeID(cf) == CFAttributedStringGetTypeID()) && __CFAttributedStringIsMutable(cf), __kCFLogAssertion, "%s(): argument not a CFMutableAttributedString", __PRETTY_FUNCTION__) +#define __CFAssertIndexIsInBounds(cf, idx) CFAssert3((idx) >= 0 && (idx) < CFAttributedStringGetLength(cf), __kCFLogAssertion, "%s(): index %d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, CFAttributedStringGetLength(cf)) +#define __CFAssertRangeIsInBounds(cf, idx, count) CFAssert4((idx) >= 0 && (idx + count) <= CFAttributedStringGetLength(cf), __kCFLogAssertion, "%s(): range %d,%d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, count, CFAttributedStringGetLength(cf)) +#define __CFAssertRangeIsWithinLength(len, idx, count) CFAssert4((idx) >= 0 && (idx + count) <= len, __kCFLogAssertion, "%s(): range %d,%d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, count, len) +#define __CFAssertIsAttributedStringAndMutable(cf) CFAssert1((CFGetTypeID(cf) == CFAttributedStringGetTypeID()) && __CFAttributedStringIsMutable(cf), __kCFLogAssertion, "%s(): argument not a CFMutableAttributedString", __PRETTY_FUNCTION__) /*** "Polymorphic" functions ***/ diff --git a/CoreFoundation/String.subproj/CFBurstTrie.c b/CoreFoundation/String.subproj/CFBurstTrie.c index 81e7698320..46b3450b09 100644 --- a/CoreFoundation/String.subproj/CFBurstTrie.c +++ b/CoreFoundation/String.subproj/CFBurstTrie.c @@ -1,16 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - -/* CFBurstTrie.c - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors - Responsibility: Jennifer Moore +/* CFBurstTrie.c + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: Jennifer Moore */ #include "CFInternal.h" @@ -1212,20 +1207,15 @@ static Boolean advanceCursorOnMappedPageForByte(Page *page, CompactMapCursor *cu //_printPageEntry(entry); BOOL shouldContinue = TRUE; - if (!(cursor->entryOffsetInPage == 0 && entry->strlen == 0)) { - if (cursor->entryOffsetInPage == entry->strlen - 1) { - minPrefixLength = entry->pfxLen + entry->strlen; + if (!(cursor->entryOffsetInPage == 0 && entry->strlen == 0)) { + cursor->offsetInEntry++; + if (entry->string[cursor->offsetInEntry] == byte) + found = TRUE; + else if (entry->string[cursor->offsetInEntry] > byte) + shouldContinue = FALSE; + else { + minPrefixLength = entry->pfxLen + cursor->offsetInEntry; cursor->entryOffsetInPage += getPackedPageEntrySize(entry); - } else { - cursor->offsetInEntry++; - if (entry->string[cursor->offsetInEntry] == byte) - found = TRUE; - else if (entry->string[cursor->offsetInEntry] > byte) - shouldContinue = FALSE; - else { - minPrefixLength = entry->pfxLen + cursor->offsetInEntry; - cursor->entryOffsetInPage += getPackedPageEntrySize(entry); - } } } @@ -1270,7 +1260,7 @@ static Boolean advanceCursorOnMappedPageForByte(Page *page, CompactMapCursor *cu return found; } -static Boolean advanceCursorMappedPageWithPerfixCompression(Page *page, CompactMapCursor *cursor, const UInt8* bytes, CFIndex length) +static Boolean advanceCursorMappedPageWithPrefixCompression(Page *page, CompactMapCursor *cursor, const UInt8* bytes, CFIndex length) { if (length == 0) { PageEntryPacked *entry = (PageEntryPacked*)&page->data[0]; @@ -1284,8 +1274,7 @@ static Boolean advanceCursorMappedPageWithPerfixCompression(Page *page, CompactM } for (CFIndex i = 0; i < length; ++i) { - if (!advanceCursorOnMappedPageForByte(page, cursor, bytes[i])) - return FALSE; + if (!advanceCursorOnMappedPageForByte(page, cursor, bytes[i])) return FALSE; } PageEntryPacked *entry = (PageEntryPacked*)&page->data[cursor->entryOffsetInPage]; getMapCursorPayloadFromPackedPageEntry(entry, cursor, &cursor->payload); @@ -1318,6 +1307,7 @@ static Boolean advanceCursorMappedPageSortedByKey(Page *page, CompactMapCursor * while (cursor->entryOffsetInPage < pageSize) { PageEntry *entry = (PageEntry*)&page->data[cursor->entryOffsetInPage]; + if (entry->strlen == 0) { cursor->entryOffsetInPage += getPageEntrySize(entry); continue; @@ -1367,10 +1357,10 @@ static Boolean advanceCursorMappedPage(CFBurstTrieRef trie, CompactMapCursor *cu if (pageSize == 0) return FALSE; - if (trie->cflags & kCFBurstTrieSortByKey) + if (trie->cflags & kCFBurstTriePrefixCompression) + return advanceCursorMappedPageWithPrefixCompression(page, cursor, bytes, length); + else if (trie->cflags & kCFBurstTrieSortByKey) return advanceCursorMappedPageSortedByKey(page, cursor, bytes, length); - else if (trie->cflags & kCFBurstTriePrefixCompression) - return advanceCursorMappedPageWithPerfixCompression(page, cursor, bytes, length); else return FALSE; } @@ -1452,14 +1442,15 @@ static void traverseFromMapCursorMappedLevel(CFBurstTrieRef trie, CompactMapCurs if (length >= capacity) return; - for (int i = 0; i < CHARACTER_SET_SIZE; ++i) {i = + for (int i = 0; i < CHARACTER_SET_SIZE; ++i) { bytes[length] = i; - cursor->next = (uint32_t)root->slots[i];; + cursor->next = (uint32_t)root->slots[i]; cursor->isOnPage = FALSE; cursor->entryOffsetInPage = 0; cursor->offsetInEntry = 0; cursor->payload = 0; - traverseFromMapCursor(trie, cursor, bytes, capacity - 1, length + 1, stop, ctx, callback); + int addByte = i ? 1 : 0; + traverseFromMapCursor(trie, cursor, bytes, capacity - addByte, length + addByte, stop, ctx, callback); if (*stop) return; } @@ -1523,8 +1514,12 @@ static void traverseFromMapCursorMappedPageWithPrefixCompression(Page *page, Com if (minPrefixLength > entry->pfxLen) break; else if (entry->payload && entry->strlen <= capacity) { - if (previousEntry) - length -= previousEntry->strlen + previousEntry->pfxLen - entry->pfxLen; + if (previousEntry) { + int32_t len = previousEntry->strlen + previousEntry->pfxLen - entry->pfxLen; + if (len <= length) { + length -= previousEntry->strlen + previousEntry->pfxLen - entry->pfxLen; + } + } memcpy(bytes + length, entry->string, entry->strlen); callback(ctx, bytes, length + entry->strlen, entry->payload, stop); length += entry->strlen; @@ -1579,10 +1574,10 @@ static void traverseFromMapCursorMappedPageSortedByKey(Page *page, CompactMapCur static void traverseFromMapCursorMappedPage(CFBurstTrieRef trie, CompactMapCursor *cursor, UInt8* bytes, uint32_t capacity, uint32_t length, Boolean *stop, void *ctx, CFBurstTrieTraversalCallback callback) { Page *page = (Page *)DiskNextTrie_GetPtr(trie->mapBase, cursor->next); - if (trie->cflags & kCFBurstTrieSortByKey) - traverseFromMapCursorMappedPageSortedByKey(page, cursor, bytes, capacity, length, stop, ctx, callback); - else if (trie->cflags & kCFBurstTriePrefixCompression) + if (trie->cflags & kCFBurstTriePrefixCompression) traverseFromMapCursorMappedPageWithPrefixCompression(page, cursor, bytes, capacity, length, stop, ctx, callback); + else if (trie->cflags & kCFBurstTrieSortByKey) + traverseFromMapCursorMappedPageSortedByKey(page, cursor, bytes, capacity, length, stop, ctx, callback); } void traverseFromMapCursor(CFBurstTrieRef trie, CompactMapCursor *cursor, UInt8* bytes, uint32_t capacity, uint32_t length, Boolean *stop, void *ctx, CFBurstTrieTraversalCallback callback) @@ -1861,13 +1856,13 @@ static void serializeCFBurstTrieList(CFBurstTrieRef trie, ListNodeRef listNode, char _buffer[MAX_BUFFER_SIZE]; size_t bufferSize = (sizeof(Page) + size * (sizeof(PageEntryPacked) + MAX_STRING_SIZE)); char *buffer = bufferSize < MAX_BUFFER_SIZE ? _buffer : (char *) malloc(bufferSize); - + Page *page = (Page *)buffer; uint32_t current = 0; - + if (trie->cflags & kCFBurstTriePrefixCompression) { qsort(nodes, listCount, sizeof(ListNodeRef), nodeStringCompare); - + ListNodeRef last = 0; for (int i=0; i < listCount; i++) { listNode = nodes[i]; @@ -1880,7 +1875,7 @@ static void serializeCFBurstTrieList(CFBurstTrieRef trie, ListNodeRef listNode, listNode->string[pfxLen] == last->string[pfxLen]; pfxLen++); } - + PageEntryPacked *entry = (PageEntryPacked *)(&page->data[current]); entry->strlen = listNode->length - pfxLen; entry->payload = listNode->payload; @@ -1889,12 +1884,16 @@ static void serializeCFBurstTrieList(CFBurstTrieRef trie, ListNodeRef listNode, current += listNode->length - pfxLen + sizeof(PageEntryPacked); last = listNode; } + + size_t len = (sizeof(PageEntryPacked) + current + 3) & ~3; + page->length = current; + write(fd, page, len); } else { if (trie->cflags & kCFBurstTrieSortByKey) qsort(nodes, listCount, sizeof(ListNodeRef), nodeStringCompare); else qsort(nodes, listCount, sizeof(ListNodeRef), nodeWeightCompare); - + for (int i=0; i < listCount; i++) { listNode = nodes[i]; PageEntry *entry = (PageEntry *)(&page->data[current]); @@ -1903,12 +1902,12 @@ static void serializeCFBurstTrieList(CFBurstTrieRef trie, ListNodeRef listNode, memcpy(entry->string, listNode->string, listNode->length); current += listNode->length + sizeof(PageEntry); } + + size_t len = (sizeof(Page) + current + 3) & ~3; + page->length = current; + write(fd, page, len); } - - size_t len = (sizeof(Page) + current + 3) & ~3; - page->length = current; - write(fd, page, len); - + free(nodes); if (buffer != _buffer) free(buffer); } diff --git a/CoreFoundation/String.subproj/CFBurstTrie.h b/CoreFoundation/String.subproj/CFBurstTrie.h index ef582df672..2ed8c00308 100644 --- a/CoreFoundation/String.subproj/CFBurstTrie.h +++ b/CoreFoundation/String.subproj/CFBurstTrie.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBurstTrie.h - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFBURSTTRIE__) diff --git a/CoreFoundation/String.subproj/CFCharacterSet.c b/CoreFoundation/String.subproj/CFCharacterSet.c index 1ca586153a..e5deb33fc2 100644 --- a/CoreFoundation/String.subproj/CFCharacterSet.c +++ b/CoreFoundation/String.subproj/CFCharacterSet.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFCharacterSet.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ @@ -157,14 +152,14 @@ CF_INLINE void __CFCSetPutCompactBitmapBits(CFMutableCharacterSetRef cset, uint8 */ #if defined(CF_ENABLE_ASSERTIONS) CF_INLINE void __CFCSetValidateBuiltinType(CFCharacterSetPredefinedSet type, const char *func) { - CFAssert(type > 0 && type <= __kCFLastBuiltinSetID, __kCFLogAssertion, "%s: Unknowen builtin type %d", func, type); + CFAssert2(type > 0 && type <= __kCFLastBuiltinSetID, __kCFLogAssertion, "%s: Unknowen builtin type %d", func, type); } CF_INLINE void __CFCSetValidateRange(CFRange theRange, const char *func) { - CFAssert(theRange.location >= 0 && theRange.location + theRange.length <= 0x1FFFFF, __kCFLogAssertion, "%s: Range out of Unicode range (location -> %d length -> %d)", func, theRange.location, theRange.length); + CFAssert3(theRange.location >= 0 && theRange.location + theRange.length <= 0x1FFFFF, __kCFLogAssertion, "%s: Range out of Unicode range (location -> %d length -> %d)", func, theRange.location, theRange.length); } CF_INLINE void __CFCSetValidateTypeAndMutability(CFCharacterSetRef cset, const char *func) { __CFGenericValidateType(cset, __kCFCharacterSetTypeID); - CFAssert(__CFCSetIsMutable(cset), __kCFLogAssertion, "%s: Immutable character set passed to mutable function", func); + CFAssert1(__CFCSetIsMutable(cset), __kCFLogAssertion, "%s: Immutable character set passed to mutable function", func); } #else #define __CFCSetValidateBuiltinType(t,f) @@ -799,14 +794,12 @@ static void __CFCSetMakeBitmap(CFMutableCharacterSetRef cset) { } } -#if DEPLOYMENT_RUNTIME_SWIFT CF_INLINE Boolean __CFCSetGenericInit(CFMutableCharacterSetRef cset, UInt32 flags) { cset->_base._cfinfo[CF_INFO_BITS] |= flags; cset->_hashValue = 0; cset->_annex = NULL; return true; } -#endif CF_INLINE CFMutableCharacterSetRef __CFCSetGenericCreate(CFAllocatorRef allocator, UInt32 flags) { CFMutableCharacterSetRef cset; @@ -814,11 +807,7 @@ CF_INLINE CFMutableCharacterSetRef __CFCSetGenericCreate(CFAllocatorRef allocato cset = (CFMutableCharacterSetRef)_CFRuntimeCreateInstance(allocator, CFCharacterSetGetTypeID(), size, NULL); if (NULL == cset) return NULL; - - cset->_base._cfinfo[CF_INFO_BITS] |= flags; - cset->_hashValue = 0; - cset->_annex = NULL; - + __CFCSetGenericInit(cset, flags); return cset; } @@ -1246,7 +1235,7 @@ static CFStringRef __CFCharacterSetCopyDescription(CFTypeRef cf) { case __kCFCharSetClassCompactBitmap: return (CFStringRef)CFRetain(CFSTR("")); // ??? Should generate description for 8k bitmap ? } - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here return NULL; } @@ -1256,7 +1245,7 @@ static void __CFCharacterSetDeallocate(CFTypeRef cf) { if (__CFCSetIsBuiltin((CFCharacterSetRef)cf) && !__CFCSetIsMutable((CFCharacterSetRef)cf) && !__CFCSetIsInverted((CFCharacterSetRef)cf)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)cf)); if (sharedSet == cf) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to deallocate predefined set. The process is likely to crash.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to deallocate predefined set. The process is likely to crash.", __PRETTY_FUNCTION__); return; // We never deallocate builtin set } } @@ -1284,7 +1273,7 @@ static const CFRuntimeClass __CFCharacterSetClass = { static bool __CFCheckForExapendedSet = false; CF_PRIVATE void __CFCharacterSetInitialize(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFCharacterSetTypeID = _CFRuntimeRegisterClass(&__CFCharacterSetClass); // initOnce covered const char *checkForExpandedSet = __CFgetenv("__CF_DEBUG_EXPANDED_SET"); @@ -1534,11 +1523,11 @@ Boolean _CFCharacterSetInitWithBitmapRepresentation(CFMutableCharacterSetRef cse CFCharacterSetRef CFCharacterSetCreateWithBitmapRepresentation(CFAllocatorRef allocator, CFDataRef theData) { CFMutableCharacterSetRef cset; - + if (!(cset = __CFCSetGenericCreate(allocator, __kCFCharSetClassBitmap))) return NULL; - + __CFCharacterSetInitWithBitmapRepresentation(allocator, cset, theData); - + return cset; } @@ -1546,8 +1535,7 @@ CFCharacterSetRef CFCharacterSetCreateInvertedSet(CFAllocatorRef alloc, CFCharac CFMutableCharacterSetRef cset; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFCharacterSetRef , (NSCharacterSet *)theSet, invertedSet); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFCharacterSetRef, (CFSwiftRef)theSet, NSCharacterSet.invertedSet); - + cset = CFCharacterSetCreateMutableCopy(alloc, theSet); CFCharacterSetInvert(cset); __CFCSetPutIsMutable(cset, false); @@ -1582,7 +1570,7 @@ static CFMutableCharacterSetRef __CFCharacterSetCreateCopy(CFAllocatorRef alloc, if (validateSubclasses) { CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFMutableCharacterSetRef , (NSCharacterSet *)theSet, mutableCopy); CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFMutableCharacterSetRef, (CFSwiftRef)theSet, NSCharacterSet.mutableCopy); - + __CFGenericValidateType(theSet, __kCFCharacterSetTypeID); } @@ -1645,7 +1633,7 @@ static CFMutableCharacterSetRef __CFCharacterSetCreateCopy(CFAllocatorRef alloc, break; default: - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here } if (__CFCSetHasNonBMPPlane(theSet)) { CFMutableCharacterSetRef annexPlane; @@ -1690,7 +1678,7 @@ Boolean CFCharacterSetIsCharacterMember(CFCharacterSetRef theSet, UniChar theCha CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, Boolean, (NSCharacterSet *)theSet, longCharacterIsMember:(UTF32Char)theChar); CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, Boolean, (CFSwiftRef)theSet, NSCharacterSet.longCharacterIsMember, theChar); - + __CFGenericValidateType(theSet, __kCFCharacterSetTypeID); isInverted = __CFCSetIsInverted(theSet); @@ -1718,7 +1706,7 @@ Boolean CFCharacterSetIsCharacterMember(CFCharacterSetRef theSet, UniChar theCha break; default: - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here break; } @@ -1781,7 +1769,7 @@ CF_SWIFT_EXPORT Boolean _CFCharacterSetIsLongCharacterMember(CFCharacterSetRef t break; default: - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here return false; // To make compiler happy } @@ -1802,7 +1790,6 @@ Boolean CFCharacterSetIsSurrogatePairMember(CFCharacterSetRef theSet, UniChar su static inline CFCharacterSetRef __CFCharacterSetGetExpandedSetForNSCharacterSet(const void *characterSet) { CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFCharacterSetRef , (NSCharacterSet *)characterSet, _expandedCFCharacterSet); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFCharacterSetRef, (CFSwiftRef)characterSet, NSCharacterSet._expandedCFCharacterSet); return NULL; } @@ -1992,8 +1979,7 @@ CFDataRef CFCharacterSetCreateBitmapRepresentation(CFAllocatorRef alloc, CFChara bool isAnnexInverted; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFDataRef , (NSCharacterSet *)theSet, _retainedBitmapRepresentation); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, CFDataRef, (CFSwiftRef)theSet, NSCharacterSet._retainedBitmapRepresentation); - + __CFGenericValidateType(theSet, __kCFCharacterSetTypeID); isAnnexInverted = (__CFCSetAnnexIsInverted(theSet) != 0); @@ -2149,15 +2135,14 @@ CFDataRef CFCharacterSetCreateBitmapRepresentation(CFAllocatorRef alloc, CFChara /*** MutableCharacterSet functions ***/ void CFCharacterSetAddCharactersInRange(CFMutableCharacterSetRef theSet, CFRange theRange) { CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, addCharactersInRange:NSMakeRange(theRange.location, theRange.length)); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.addCharactersInRange, theRange); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); __CFCSetValidateRange(theRange, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2216,15 +2201,14 @@ void CFCharacterSetAddCharactersInRange(CFMutableCharacterSetRef theSet, CFRange void CFCharacterSetRemoveCharactersInRange(CFMutableCharacterSetRef theSet, CFRange theRange) { CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, removeCharactersInRange:NSMakeRange(theRange.location, theRange.length)); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.removeCharactersInRange, theRange); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); __CFCSetValidateRange(theRange, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2292,14 +2276,13 @@ void CFCharacterSetAddCharactersInString(CFMutableCharacterSetRef theSet, CFStr BOOL hasSurrogate = NO; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, addCharactersInString:(NSString *)theString); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.addCharactersInString, theString); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2385,14 +2368,13 @@ void CFCharacterSetRemoveCharactersInString(CFMutableCharacterSetRef theSet, CFS BOOL hasSurrogate = NO; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, removeCharactersInString:(NSString *)theString); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.removeCharactersInString, theString); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2470,14 +2452,13 @@ void CFCharacterSetUnion(CFMutableCharacterSetRef theSet, CFCharacterSetRef theO CFCharacterSetRef expandedSet = NULL; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, formUnionWithCharacterSet:(NSCharacterSet *)theOtherSet); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.formUnionWithCharacterSet, theOtherSet); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2594,7 +2575,7 @@ void CFCharacterSetUnion(CFMutableCharacterSetRef theSet, CFCharacterSetRef theO while (length--) *bitmap1++ |= *bitmap2++; __CFCSetPutHasHashValue(theSet, false); } - CFRelease(bitmapRep); + if (bitmapRep) { CFRelease(bitmapRep); } } } @@ -2602,14 +2583,13 @@ void CFCharacterSetIntersect(CFMutableCharacterSetRef theSet, CFCharacterSetRef CFCharacterSetRef expandedSet = NULL; CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, formIntersectionWithCharacterSet:(NSCharacterSet *)theOtherSet); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.formIntersectionWithCharacterSet, theOtherSet); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -2686,7 +2666,7 @@ void CFCharacterSetIntersect(CFMutableCharacterSetRef theSet, CFCharacterSetRef break; default: - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here } } else { __CFCSetMakeBitmap(theSet); @@ -2821,21 +2801,20 @@ void CFCharacterSetIntersect(CFMutableCharacterSetRef theSet, CFCharacterSetRef while (length--) *bitmap1++ &= *bitmap2++; __CFCSetPutHasHashValue(theSet, false); } - CFRelease(bitmapRep); + if (bitmapRep) { CFRelease(bitmapRep); } } } void CFCharacterSetInvert(CFMutableCharacterSetRef theSet) { CF_OBJC_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (NSMutableCharacterSet *)theSet, invert); - CF_SWIFT_FUNCDISPATCHV(__kCFCharacterSetTypeID, void, (CFSwiftRef)theSet, NSMutableCharacterSet.invert); - + __CFCSetValidateTypeAndMutability(theSet, __PRETTY_FUNCTION__); if (__CFCSetIsBuiltin((CFCharacterSetRef)theSet) && !__CFCSetIsMutable((CFCharacterSetRef)theSet) && !__CFCSetIsInverted((CFCharacterSetRef)theSet)) { CFCharacterSetRef sharedSet = CFCharacterSetGetPredefined(__CFCSetBuiltinType((CFCharacterSetRef)theSet)); if (sharedSet == theSet) { // We're trying to dealloc the builtin set - CFAssert(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); + CFAssert1(0, __kCFLogAssertion, "%s: Trying to mutable predefined set.", __PRETTY_FUNCTION__); return; // We don't mutate builtin set } } @@ -3004,7 +2983,7 @@ void CFCharacterSetInitInlineBuffer(CFCharacterSetRef cset, CFCharacterSetInline break; default: - CFAssert(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here + CFAssert1(0, __kCFLogAssertion, "%s: Internal inconsistency error: unknown character set type", __PRETTY_FUNCTION__); // We should never come here return; } @@ -3022,6 +3001,7 @@ void CFCharacterSetInitInlineBuffer(CFCharacterSetRef cset, CFCharacterSetInline } } + #if DEPLOYMENT_RUNTIME_SWIFT CFIndex __CFCharDigitValue(UniChar ch) { return u_charDigitValue(ch); diff --git a/CoreFoundation/String.subproj/CFCharacterSet.h b/CoreFoundation/String.subproj/CFCharacterSet.h index 4b7784f36f..b5b1d640e6 100644 --- a/CoreFoundation/String.subproj/CFCharacterSet.h +++ b/CoreFoundation/String.subproj/CFCharacterSet.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFCharacterSet.h - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ /*! diff --git a/CoreFoundation/String.subproj/CFCharacterSetPriv.h b/CoreFoundation/String.subproj/CFCharacterSetPriv.h index 272e689410..41d3ca17dd 100644 --- a/CoreFoundation/String.subproj/CFCharacterSetPriv.h +++ b/CoreFoundation/String.subproj/CFCharacterSetPriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFCharacterSetPriv.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFCHARACTERSETPRIV__) diff --git a/CoreFoundation/String.subproj/CFString.c b/CoreFoundation/String.subproj/CFString.c index 70b974d546..d9ab9acfb9 100644 --- a/CoreFoundation/String.subproj/CFString.c +++ b/CoreFoundation/String.subproj/CFString.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFString.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Ali Ozer !!! For performance reasons, it's important that all functions marked CF_INLINE in this file are inlined. @@ -45,6 +40,7 @@ + #define USE_STRING_ROM 0 @@ -182,8 +178,9 @@ B6 B5 C8 (11001000 = default allocator, not inline, not freed contents; 8-bit; has NULL byte; doesn't have length; is immutable) D0 (11010000 = default allocator, not inline, not freed contents; Unicode; is immutable) The bit usages should not be modified in a way that would effect these bit patterns. -*/ +Note that some of the bit patterns in the enum below overlap and are duplicated. Keep this in mind as you do searches for use cases. +*/ enum { __kCFFreeContentsWhenDoneMask = 0x020, __kCFFreeContentsWhenDone = 0x020, @@ -316,7 +313,7 @@ Boolean __CFStringIsEightBit(CFStringRef str) { */ CF_INLINE void __CFStrSetContentPtr(CFStringRef str, const void *p) { // XXX_PCB catch all writes for mutable string case. - __CFAssignWithWriteBarrier((void **)&((CFMutableStringRef)str)->variants.notInlineImmutable1.buffer, (void *)p); + *((void **)&((CFMutableStringRef)str)->variants.notInlineImmutable1.buffer) = (void *)p; } CF_INLINE void __CFStrSetInfoBits(CFStringRef str, UInt32 v) {__CFBitfieldSetValue(((CFMutableStringRef)str)->base._cfinfo[CF_INFO_BITS], 6, 0, v);} @@ -368,16 +365,20 @@ static void __CFStrDeallocateMutableContents(CFMutableStringRef str, void *buffe CFAllocatorRef alloc = (__CFStrHasContentsAllocator(str)) ? __CFStrContentsAllocator(str) : __CFGetAllocator(str); if (__CFStrIsMutable(str) && __CFStrHasContentsAllocator(str) && (0)) { // do nothing - } else if (CF_IS_COLLECTABLE_ALLOCATOR(alloc)) { - // GC: for finalization safety, let collector reclaim the buffer in the next GC cycle. - auto_zone_release(objc_collectableZone(), buffer); } else { CFAllocatorDeallocate(alloc, buffer); } } - - +#if 0 +// Mark contents from not freed at all to being managed by default allocator (happens on mutation of externally mutable buffer string which was set to no free) +CF_INLINE void __CFStrEnsureContentsFreeable(CFMutableStringRef str) { + if ((str->base._cfinfo[CF_INFO_BITS] & __kCFContentsMask) == __kCFNotInlineContentsNoFree) { + str->base._cfinfo[CF_INFO_BITS] &= ~__kCFContentsMask; + str->base._cfinfo[CF_INFO_BITS] |= __kCFNotInlineContentsDefaultFree; + } +} +#endif /* CFString specific init flags Note that you cannot count on the external buffer not being copied. @@ -589,12 +590,12 @@ CF_INLINE Boolean __CFCanUseLengthByte(CFIndex len) { /* Various string assertions */ #define __CFAssertIsString(cf) __CFGenericValidateType(cf, __kCFStringTypeID) -#define __CFAssertIndexIsInStringBounds(cf, idx) CFAssert((idx) >= 0 && (idx) < __CFStrLength(cf), __kCFLogAssertion, "%s(): string index %d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, __CFStrLength(cf)) -#define __CFAssertRangeIsInStringBounds(cf, idx, count) CFAssert((idx) >= 0 && (idx + count) <= __CFStrLength(cf), __kCFLogAssertion, "%s(): string range %d,%d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, count, __CFStrLength(cf)) -#define __CFAssertIsStringAndMutable(cf) {__CFGenericValidateType(cf, __kCFStringTypeID); CFAssert(__CFStrIsMutable(cf), __kCFLogAssertion, "%s(): string not mutable", __PRETTY_FUNCTION__);} -#define __CFAssertIsStringAndExternalMutable(cf) {__CFGenericValidateType(cf, __kCFStringTypeID); CFAssert(__CFStrIsMutable(cf) && __CFStrIsExternalMutable(cf), __kCFLogAssertion, "%s(): string not external mutable", __PRETTY_FUNCTION__);} -#define __CFAssertIsNotNegative(idx) CFAssert(idx >= 0, __kCFLogAssertion, "%s(): index %d is negative", __PRETTY_FUNCTION__, idx) -#define __CFAssertIfFixedLengthIsOK(cf, reqLen) CFAssert(!__CFStrIsFixed(cf) || (reqLen <= __CFStrDesiredCapacity(cf)), __kCFLogAssertion, "%s(): length %d too large", __PRETTY_FUNCTION__, reqLen) +#define __CFAssertIndexIsInStringBounds(cf, idx) CFAssert3((idx) >= 0 && (idx) < __CFStrLength(cf), __kCFLogAssertion, "%s(): string index %ld out of bounds (length %ld)", __PRETTY_FUNCTION__, idx, __CFStrLength(cf)) +#define __CFAssertRangeIsInStringBounds(cf, idx, count) CFAssert4((idx) >= 0 && (idx + count) <= __CFStrLength(cf), __kCFLogAssertion, "%s(): string range %ld,%ld out of bounds (length %ld)", __PRETTY_FUNCTION__, idx, count, __CFStrLength(cf)) +#define __CFAssertIsStringAndMutable(cf) {__CFGenericValidateType(cf, __kCFStringTypeID); CFAssert1(__CFStrIsMutable(cf), __kCFLogAssertion, "%s(): string not mutable", __PRETTY_FUNCTION__);} +#define __CFAssertIsStringAndExternalMutable(cf) {__CFGenericValidateType(cf, __kCFStringTypeID); CFAssert1(__CFStrIsMutable(cf) && __CFStrIsExternalMutable(cf), __kCFLogAssertion, "%s(): string not external mutable", __PRETTY_FUNCTION__);} +#define __CFAssertIsNotNegative(idx) CFAssert2(idx >= 0, __kCFLogAssertion, "%s(): index %ld is negative", __PRETTY_FUNCTION__, idx) +#define __CFAssertIfFixedLengthIsOK(cf, reqLen) CFAssert2(!__CFStrIsFixed(cf) || (reqLen <= __CFStrDesiredCapacity(cf)), __kCFLogAssertion, "%s(): length %ld too large", __PRETTY_FUNCTION__, reqLen) /* Basic algorithm is to shrink memory when capacity is SHRINKFACTOR times the required capacity or to allocate memory when the capacity is less than GROWFACTOR times the required capacity. This function will return -1 if the new capacity is just too big (> LONG_MAX). @@ -868,7 +869,7 @@ static void __CFStringChangeSizeMultiple(CFMutableStringRef str, const CFRange * Boolean hasLengthAndNullBytes = __CFStrHasLengthByte(str); - CFAssert(hasLengthAndNullBytes == __CFStrHasNullByte(str), __kCFLogAssertion, "%s(): Invalid state in 8-bit string", __PRETTY_FUNCTION__); + CFAssert1(hasLengthAndNullBytes == __CFStrHasNullByte(str), __kCFLogAssertion, "%s(): Invalid state in 8-bit string", __PRETTY_FUNCTION__); // Calculate pointers to the actual string content (skipping over the length byte, if present). Note that keeping a reference to the base is needed for newContents under GC, since the copy may take a long time. const uint8_t *curContentsBody = hasLengthAndNullBytes ? (curContents+1) : curContents; @@ -905,6 +906,7 @@ static void __CFStringChangeSizeMultiple(CFMutableStringRef str, const CFRange * if (allocNewBuffer) { __CFStrSetCapacity(str, newCapacity); __CFStrClearCapacityProvidedExternally(str); +// __CFStrEnsureContentsFreeable(str); // Commented out until we clarify: . Until then will leak: __CFStrSetContentPtr(str, newContents); } } @@ -925,7 +927,7 @@ static void __CFStringDeallocate(CFTypeRef cf) { CFStringRef str = (CFStringRef)cf; // If in DEBUG mode, check to see if the string a CFSTR, and complain. - CFAssert(__CFConstantStringTableBeingFreed || !__CFStrIsConstantString((CFStringRef)cf), __kCFLogAssertion, "Tried to deallocate CFSTR(\"%@\")", str); + CFAssert1(__CFConstantStringTableBeingFreed || !__CFStrIsConstantString((CFStringRef)cf), __kCFLogAssertion, "Tried to deallocate CFSTR(\"%@\")", str); if (!__CFStrIsInline(str)) { uint8_t *contents; @@ -1199,7 +1201,7 @@ static const CFRuntimeClass __CFStringClass = { }; CF_PRIVATE void __CFStringInitialize(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFStringTypeID = _CFRuntimeRegisterClass(&__CFStringClass); }); } @@ -1236,6 +1238,7 @@ CF_PRIVATE CFStringRef __CFStringCreateImmutableFunnel3( CFAllocatorRef alloc, const void *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean possiblyExternalFormat, Boolean tryToReduceUnicode, Boolean hasLengthByte, Boolean hasNullByte, Boolean noCopy, CFAllocatorRef contentsDeallocator, UInt32 converterFlags) { + CFMutableStringRef str = NULL; CFVarWidthCharBuffer vBuf; CFIndex size; @@ -1542,6 +1545,7 @@ CF_PRIVATE CFStringRef __CFStringCreateImmutableFunnel3( } } #endif + return str; } @@ -1590,7 +1594,7 @@ CFStringRef CFStringCreateWithCharactersNoCopy(CFAllocatorRef alloc, const UniC } -CF_EXPORT CFStringRef CFStringCreateWithBytes(CFAllocatorRef alloc, const uint8_t *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean externalFormat) { +CFStringRef CFStringCreateWithBytes(CFAllocatorRef alloc, const uint8_t *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean externalFormat) { return __CFStringCreateImmutableFunnel3(alloc, bytes, numBytes, encoding, externalFormat, true, false, false, false, ALLOCATORSFREEFUNC, 0); } @@ -1650,6 +1654,31 @@ CFStringRef CFStringCreateWithSubstring(CFAllocatorRef alloc, CFStringRef str, C return __CFStringCreateImmutableFunnel3(alloc, contents + range.location, range.length * sizeof(UniChar), kCFStringEncodingUnicode, false, true, false, false, false, ALLOCATORSFREEFUNC, 0); } } + +static CFStringRef _CFStringSlowPathCopyBundleUnloadingProtectedString(CFStringRef str) { + CFStringEncoding fastestEncoding = CFStringGetFastestEncoding(str); + const char *cStr = CFStringGetCStringPtr(str, fastestEncoding); + CFIndex len = CFStringGetLength(str); + if (cStr) { + return CFStringCreateWithBytes(kCFAllocatorSystemDefault, (const uint8_t *)cStr, len, fastestEncoding, false); + } + const UniChar *charsPtr = CFStringGetCharactersPtr(str); + if (charsPtr) { + return CFStringCreateWithCharacters(kCFAllocatorSystemDefault, charsPtr, len); + } + CFIndex maxByteCount = CFStringGetMaximumSizeForEncoding(len, fastestEncoding); + STACK_BUFFER_DECL(uint8_t, buffer, maxByteCount); + CFIndex byteCount = 0; + if (CFStringGetBytes(str, CFRangeMake(0, len), fastestEncoding, 0, false, buffer, maxByteCount, &byteCount)) { + return CFStringCreateWithBytes(kCFAllocatorSystemDefault, buffer, byteCount, fastestEncoding, false); + } + return CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, str); +} + +CF_PRIVATE CFStringRef _CFStringCopyBundleUnloadingProtectedString(CFStringRef str) { + return _CFStringSlowPathCopyBundleUnloadingProtectedString(str); +} + CFStringRef CFStringCreateCopy(CFAllocatorRef alloc, CFStringRef str) { CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, CFStringRef, (CFSwiftRef)str, NSString.copy); @@ -1659,7 +1688,7 @@ CFStringRef CFStringCreateCopy(CFAllocatorRef alloc, CFStringRef str) { if (!__CFStrIsMutable((CFStringRef)str) && // If the string is not mutable ((alloc ? alloc : __CFGetDefaultAllocator()) == __CFGetAllocator(str)) && // and it has the same allocator as the one we're using (__CFStrIsInline((CFStringRef)str) || __CFStrFreeContentsWhenDone((CFStringRef)str) || __CFStrIsConstant((CFStringRef)str))) { // and the characters are inline, or are owned by the string, or the string is constant - if (!(kCFUseCollectableAllocator && (0))) CFRetain(str); // Then just retain instead of making a true copy + CFRetain(str); // Then just retain instead of making a true copy return str; } if (__CFStrIsEightBit((CFStringRef)str)) { @@ -1933,10 +1962,9 @@ CFMutableStringRef CFStringCreateMutable(CFAllocatorRef alloc, CFIndex maxLength return __CFStringCreateMutableFunnel(alloc, maxLength, __kCFNotInlineContentsDefaultFree); } -CF_EXPORT CFMutableStringRef CFStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFStringRef string) { +CFMutableStringRef CFStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFStringRef string) { CFMutableStringRef newString; - // TODO: Re-enable this when CFHash, CFEqual, etc. work with bridged NSString objects from Swift. The existing implementation below still works. -// CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, CFMutableStringRef, (CFSwiftRef)string, _CFSwiftStringCreateMutableCopy); + // CF_OBJC_FUNCDISPATCHV(__kCFStringTypeID, CFMutableStringRef, (NSString *)string, mutableCopy); __CFAssertIsString(string); @@ -1956,7 +1984,7 @@ CF_PRIVATE void _CFStrSetDesiredCapacity(CFMutableStringRef str, CFIndex len) { /* This one is for CF */ -CF_EXPORT CFIndex CFStringGetLength(CFStringRef str) { +CFIndex CFStringGetLength(CFStringRef str) { CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, CFIndex, (CFSwiftRef)str, NSString.length); CF_OBJC_FUNCDISPATCHV(__kCFStringTypeID, CFIndex, (NSString *)str, length); @@ -2041,10 +2069,12 @@ int _CFStringCheckAndGetCharacters(CFStringRef str, CFRange range, UniChar *buff } -CF_EXPORT CFIndex CFStringGetBytes(CFStringRef str, CFRange range, CFStringEncoding encoding, uint8_t lossByte, Boolean isExternalRepresentation, uint8_t *buffer, CFIndex maxBufLen, CFIndex *usedBufLen) { +CFIndex CFStringGetBytes(CFStringRef str, CFRange range, CFStringEncoding encoding, uint8_t lossByte, Boolean isExternalRepresentation, uint8_t *buffer, CFIndex maxBufLen, CFIndex *usedBufLen) { +#if DEPLOYMENT_RUNTIME_SWIFT if (CF_IS_SWIFT(CFStringGetTypeID(), str) && __CFSwiftBridge.NSString.__getBytes != NULL) { return __CFSwiftBridge.NSString.__getBytes(str, encoding, range, buffer, maxBufLen, usedBufLen); } +#endif __CFAssertIsNotNegative(maxBufLen); { @@ -2091,7 +2121,7 @@ const char * CFStringGetCStringPtr(CFStringRef str, CFStringEncoding encoding) { if (str == NULL) return NULL; // Should really just crash, but for compatibility... see - CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, const char *, (CFSwiftRef)str, NSString._fastCStringContents); + CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, const char *, (CFSwiftRef)str, NSString._fastCStringContents, true); CF_OBJC_FUNCDISPATCHV(__kCFStringTypeID, const char *, (NSString *)str, _fastCStringContents:true); __CFAssertIsString(str); @@ -2099,19 +2129,6 @@ const char * CFStringGetCStringPtr(CFStringRef str, CFStringEncoding encoding) { if (__CFStrHasNullByte(str)) { // Note: this is called a lot, 27000 times to open a small xcode project with one file open. // Of these uses about 1500 are for cStrings/utf8strings. -#if 0 - // Only sometimes when the stars are aligned will this call return a gc pointer - // under GC we can only really return a pointer to the start of a GC buffer for cString use - // (Is there a simpler way to ask if contents isGC?) - CFAllocatorRef alloc = (__CFStrHasContentsAllocator(str)) ? __CFStrContentsAllocator(str) : __CFGetAllocator(str); - if (CF_IS_COLLECTABLE_ALLOCATOR(alloc)) { - if (__CFStrSkipAnyLengthByte(str) != 0 || !__CFStrIsMutable(str)) { - static int counter = 0; - printf("CFString %dth unsafe safe string %s\n", ++counter, __CFStrContents(str) + __CFStrSkipAnyLengthByte(str)); - return NULL; - } - } -#endif return (const char *)__CFStrContents(str) + __CFStrSkipAnyLengthByte(str); } else { return NULL; @@ -3407,7 +3424,7 @@ enum { static const CFCharacterSetInlineBuffer *__CFStringGetFitzpatrickModifierBaseCharacterSet(void) { static CFCharacterSetInlineBuffer buffer; - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ // based on UTR#51 1.0 (draft 7) for Unicode 8.0 /* 8.0 @@ -3416,7 +3433,6 @@ static const CFCharacterSetInlineBuffer *__CFStringGetFitzpatrickModifierBaseCha U+270A RAISED FIST…U+270D WRITING HAND U+1F385 FATHER CHRISTMAS U+1F3C2 SNOWBOARDER…U+1F3C4 SURFER - U+1F3C7 HORSE RACING U+1F3CA SWIMMER U+1F442 EAR…U+1F443 NOSE U+1F446 WHITE UP POINTING BACKHAND INDEX…U+1F450 OPEN HANDS SIGN @@ -3430,6 +3446,7 @@ static const CFCharacterSetInlineBuffer *__CFStringGetFitzpatrickModifierBaseCha U+1F485 NAIL POLISH U+1F486 FACE MASSAGE…U+1F487 HAIRCUT U+1F4AA FLEXED BICEPS + U+1F575 SLEUTH OR SPY U+1F590 RAISED HAND WITH FINGERS SPLAYED U+1F595 REVERSED HAND WITH MIDDLE FINGER EXTENDED…U+1F596 RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS U+1F600 GRINNING FACE…U+1F637 FACE WITH MEDICAL MASK @@ -3454,7 +3471,6 @@ static const CFCharacterSetInlineBuffer *__CFStringGetFitzpatrickModifierBaseCha CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x270A, 4)); // RAISED FIST ~ WRITING HAND CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F385, 1)); // FATHER CHRISTMAS CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3C2, 3)); // SNOWBOARDER ~ SURFER - CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3C7, 1)); // HORSE RACING CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3CA, 1)); // SWIMMER CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F442, 2)); // EAR ~ NOSE CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F446, 0x1F451 - 0x1F446)); // WHITE UP POINTING BACKHAND INDEX ~ OPEN HANDS SIGN @@ -3466,6 +3482,7 @@ static const CFCharacterSetInlineBuffer *__CFStringGetFitzpatrickModifierBaseCha CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F481, 3)); // INFORMATION DESK PERSON ~ DANCER CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F485, 3)); // NAIL POLISH ~ HAIRCUT CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F4AA, 1)); // FLEXED BICEPS + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F575, 1)); // SLEUTH OR SPY CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F590, 1)); // RAISED HAND WITH FINGERS SPLAYED CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F595, 2)); // REVERSED HAND WITH MIDDLE FINGER EXTENDED ~ RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F600, 0x1F638 - 0x1F600)); // GRINNING FACE ~ FACE WITH MEDICAL MASK @@ -3494,6 +3511,100 @@ static inline bool __CFStringIsBaseForFitzpatrickModifiers(UTF32Char character) return false; } +static const CFCharacterSetInlineBuffer *__CFStringGetGenderModifierBaseCharacterSet(void) { + static CFCharacterSetInlineBuffer buffer; + static dispatch_once_t initOnce; + dispatch_once(&initOnce, ^{ + /* + ⛹U+26F9 PERSON WITH BALL // 0x26F9 + 🏃U+1F3C3 RUNNER // 0xD83C 0xDFC3 + 🏄U+1F3C4 SURFER // 0xD83C 0xDFC4 + 🏊U+1F3CA SWIMMER // 0xD83C 0xDFCA + 🏋U+1F3CB WEIGHT LIFTER // 0xD83C 0xDFCB + 🏌U+1F3CC GOLFER // 0xD83C 0xDFCC + 👮U+1F46E POLICE OFFICER // 0xD83D 0xDC6E + 👯U+1F46F TWO WOMEN DANCING // 0xD83D 0xDC6F + 👱U+1F471 PERSON WITH BLOND HAIR // 0xD83D 0xDC71 + 👳U+1F473 MAN WITH TURBAN // 0xD83D 0xDC73 + 👷U+1F477 CONSTRUCTION WORKER // 0xD83D 0xDC77 + 💁U+1F481 INFORMATION DESK PERSON // 0xD83D 0xDC81 + 💂U+1F482 GUARDSMAN // 0xD83D 0xDC82 + 💆U+1F486 FACE MASSAGE // 0xD83D 0xDC86 + 💇U+1F487 HAIRCUT // 0xD83D 0xDC87 + 🕵U+1F575 SLEUTH OR SPY // 0xD83D 0xDD75 + 🙅U+1F645 FACE WITH NO GOOD GESTURE // 0xD83D 0xDE45 + 🙆U+1F646 FACE WITH OK GESTURE // 0xD83D 0xDE46 + 🙇U+1F647 PERSON BOWING DEEPLY // 0xD83D 0xDE47 + 🙋U+1F64B HAPPY PERSON RAISING ONE HAND // 0xD83D 0xDE4B + 🙍U+1F64D PERSON FROWNING // 0xD83D 0xDE4D + 🙎U+1F64E PERSON WITH POUTING FACE // 0xD83D 0xDE4E + 🚣U+1F6A3 ROWBOAT // 0xD83D 0xDEA3 + 🚴U+1F6B4 BICYCLIST // 0xD83D 0xDEB4 + 🚵U+1F6B5 MOUNTAIN BICYCLIST // 0xD83D 0xDEB5 + 🚶U+1F6B6 PEDESTRIAN // 0xD83D 0xDEB6 + */ + CFMutableCharacterSetRef cset = CFCharacterSetCreateMutable(NULL); + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x26F9, 1)); // PERSON WITH BALL + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3C3, 1)); // RUNNER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3C4, 1)); // SURFER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3CA, 1)); // SWIMMER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3CB, 1)); // WEIGHT LIFTER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F3CC, 1)); // GOLFER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F46E, 1)); // POLICE OFFICER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F46F, 1)); // TWO WOMEN DANCING + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F471, 1)); // PERSON WITH BLOND HAIR + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F473, 1)); // MAN WITH TURBAN + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F477, 1)); // CONSTRUCTION WORKER + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F481, 1)); // INFORMATION DESK PERSON + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F482, 1)); // GUARDSMAN + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F486, 1)); // FACE MASSAGE + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F487, 1)); // HAIRCUT + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F575, 1)); // SLEUTH OR SPY + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F645, 1)); // FACE WITH NO GOOD GESTURE + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F646, 1)); // FACE WITH OK GESTURE + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F647, 1)); // PERSON BOWING DEEPLY + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F64B, 1)); // HAPPY PERSON RAISING ONE HAND + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F64D, 1)); // PERSON FROWNING + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F64E, 1)); // PERSON WITH POUTING FACE + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F6A3, 1)); // ROWBOAT + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F6B4, 1)); // BICYCLIST + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F6B5, 1)); // MOUNTAIN BICYCLIST + CFCharacterSetAddCharactersInRange(cset, CFRangeMake(0x1F6B6, 1)); // PEDESTRIAN + CFCharacterSetCompact(cset); + CFCharacterSetInitInlineBuffer(cset, &buffer); + }); + return (const CFCharacterSetInlineBuffer *)&buffer; +} + +static inline bool __CFStringIsGenderModifier(UTF32Char character) { return ((character == 0x2640) || (character == 0x2642)); } + +static inline bool __CFStringIsBaseForGenderModifier(UTF32Char character) { + if (((character >= 0x2600) && (character < 0x3000)) || ((character >= 0x1F300) && (character < 0x1FA00))) { // Misc symbols, dingbats, & emoticons + return CFCharacterSetInlineBufferIsLongCharacterMember(__CFStringGetGenderModifierBaseCharacterSet(), character); + } + return false; +} + +static inline bool __CFStringIsGenderModifierBaseCluster(CFStringInlineBuffer *buffer, CFRange range) { + UTF16Char character = CFStringGetCharacterFromInlineBuffer(buffer, range.location); + UTF32Char baseCharacter = character; + if (range.length > 1) { + if (CFUniCharIsSurrogateHighCharacter(character)) { + UTF16Char otherCharacter = CFStringGetCharacterFromInlineBuffer(buffer, range.location + 1); + if (CFUniCharIsSurrogateLowCharacter(otherCharacter)) { + baseCharacter = CFUniCharGetLongCharacterForSurrogatePair(character, otherCharacter); + } + } + } + return __CFStringIsBaseForGenderModifier(baseCharacter); +} + +static inline bool __CFStringIsGenderModifierCluster(CFStringInlineBuffer *buffer, CFRange range) { + if ((range.length < 1) || (range.length > 2)) return false; + UTF16Char character = CFStringGetCharacterFromInlineBuffer(buffer, range.location); + return (__CFStringIsGenderModifier(character) && ((range.length == 1) || (0xFE0F == CFStringGetCharacterFromInlineBuffer(buffer, range.location + 1)))); // Either modifier is alone or is followed by FEOF +} + static inline bool __CFStringIsFamilySequenceBaseCharacterHigh(UTF16Char character) { return (character == 0xD83D) ? true : false; } static inline bool __CFStringIsFamilySequenceBaseCharacterLow(UTF16Char character) { return (((character >= 0xDC66) && (character <= 0xDC69)) || (character == 0xDC8B) || (character == 0xDC41) || (character == 0xDDE8) ? true : false); } static inline bool __CFStringIsFamilySequenceCluster(CFStringInlineBuffer *buffer, CFRange range) { @@ -3514,6 +3625,14 @@ static inline bool __CFStringIsRegionalIndicatorAtIndex(CFStringInlineBuffer *bu return ((CFStringGetCharacterFromInlineBuffer(buffer, index) == RI_SURROGATE_HI) && __CFStringIsRegionalIndicatorSurrogateLow(CFStringGetCharacterFromInlineBuffer(buffer, index + 1))) ? true : false; } +static inline bool __CFStringIsWavingWhiteFlagCluster(CFStringInlineBuffer *buffer, CFRange range) { + return ((CFStringGetCharacterFromInlineBuffer(buffer, range.location) == RI_SURROGATE_HI) && (CFStringGetCharacterFromInlineBuffer(buffer, range.location + 1) == 0xDFF3)); +} + +static inline bool __CFStringIsRainbowCluster(CFStringInlineBuffer *buffer, CFRange range) { + return ((CFStringGetCharacterFromInlineBuffer(buffer, range.location) == RI_SURROGATE_HI) && (CFStringGetCharacterFromInlineBuffer(buffer, range.location + 1) == 0xDF08)); +} + static CFRange _CFStringInlineBufferGetComposedRange(CFStringInlineBuffer *buffer, CFIndex start, CFStringCharacterClusterType type, const uint8_t *bmpBitmap, CFIndex csetType) { CFIndex end = start + 1; const uint8_t *bitmap = bmpBitmap; @@ -3695,7 +3814,7 @@ CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex ch /* Fast case. If we're eight-bit, it's either the default encoding is cheap or the content is all ASCII. Watch out when (or if) adding more 8bit Mac-scripts in CFStringEncodingConverters */ - if (!CF_IS_OBJC(__kCFStringTypeID, string) && !CF_IS_SWIFT(__kCFStringTypeID, string) && __CFStrIsEightBit(string)) return CFRangeMake(charIndex, 1); + if (!CF_IS_OBJC(__kCFStringTypeID, string) && !CF_IS_SWIFT(__kCFStringTypeID, string) && __CFStrIsEightBit(string)) return CFRangeMake(charIndex, 1); bmpBitmap = CFUniCharGetBitmapPtrForPlane(csetType, 0); letterBMP = CFUniCharGetBitmapPtrForPlane(kCFUniCharLetterCharacterSet, 0); @@ -3824,9 +3943,101 @@ CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex ch } } - // Family face sequence + // Rainbow flag sequence & Gender modifier sequence CFRange aCluster; + if (__CFStringIsWavingWhiteFlagCluster(&stringBuffer, range)) { + CFIndex end = range.location + range.length - 1; + if ((end + 1) < length) { + UTF32Char endCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, end); + if (endCharacter != ZERO_WIDTH_JOINER) { + end++; + endCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, end); + } + if (endCharacter == ZERO_WIDTH_JOINER) { + aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, end + 1, type, bmpBitmap, csetType); + if (__CFStringIsRainbowCluster(&stringBuffer, aCluster)) { + currentIndex = aCluster.location + aCluster.length; + if ((aCluster.length > 1) && (ZERO_WIDTH_JOINER == CFStringGetCharacterFromInlineBuffer(&stringBuffer, currentIndex - 1))) --currentIndex; + } + if (currentIndex > (range.location + range.length)) range.length = currentIndex - range.location; + } + } + } else if (__CFStringIsRainbowCluster(&stringBuffer, range)) { + if (range.location > 1) { + CFIndex prev = range.location - 1; + UTF32Char prevCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, prev); + // if prevChar is still not zwj, try again + if ((prevCharacter != ZERO_WIDTH_JOINER) && (prev > 1)) { + prev--; + prevCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, prev); + } + if (prevCharacter == ZERO_WIDTH_JOINER) { + aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, prev - 1, type, bmpBitmap, csetType); + if (__CFStringIsWavingWhiteFlagCluster(&stringBuffer, aCluster)) { + currentIndex = aCluster.location; + } + if (currentIndex < range.location) { + range.length += range.location - currentIndex; + range.location = currentIndex; + } + } + } + } else if (__CFStringIsGenderModifierBaseCluster(&stringBuffer, range)) { + CFIndex end = range.location + range.length - 1; + if ((end + 1) < length) { + UTF32Char endCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, end); + if (endCharacter != ZERO_WIDTH_JOINER) { + end++; + endCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, end); + } + if (endCharacter == ZERO_WIDTH_JOINER) { + aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, end + 1, type, bmpBitmap, csetType); + if (__CFStringIsGenderModifierCluster(&stringBuffer, aCluster)) { + currentIndex = aCluster.location + aCluster.length; + if ((aCluster.length > 1) && (ZERO_WIDTH_JOINER == CFStringGetCharacterFromInlineBuffer(&stringBuffer, currentIndex - 1))) --currentIndex; + } + if (currentIndex > (range.location + range.length)) range.length = currentIndex - range.location; + } + } + } else if (__CFStringIsGenderModifierCluster(&stringBuffer, range)) { + if (range.location > 1) { + CFIndex prev = range.location - 1; + UTF32Char prevCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, prev); + // if prevChar is still not zwj, try again + if ((prevCharacter != ZERO_WIDTH_JOINER) && (prev > 1)) { + prev--; + prevCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, prev); + } + if (prevCharacter == ZERO_WIDTH_JOINER) { + aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, prev - 1, type, bmpBitmap, csetType); + if (__CFStringIsGenderModifierBaseCluster(&stringBuffer, aCluster)) { + currentIndex = aCluster.location; + } + if (currentIndex < range.location) { + range.length += range.location - currentIndex; + range.location = currentIndex; + } + } + } + } else { + // range is zwj + CFIndex end = range.location + range.length - 1; + UTF32Char endCharacter = CFStringGetCharacterFromInlineBuffer(&stringBuffer, end); + if (((end + 1) < length) && (endCharacter == ZERO_WIDTH_JOINER)) { + // Get cluster before and after zwj. Range length of zwj cluster is always 1. + CFRange rangeBeforeZWJ = _CFStringInlineBufferGetComposedRange(&stringBuffer, end - 1, type, bmpBitmap, csetType); + aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, end + 1, type, bmpBitmap, csetType); + + if (((__CFStringIsWavingWhiteFlagCluster(&stringBuffer, rangeBeforeZWJ)) && (__CFStringIsRainbowCluster(&stringBuffer, aCluster))) || + ((__CFStringIsGenderModifierBaseCluster(&stringBuffer, rangeBeforeZWJ)) && (__CFStringIsGenderModifierCluster(&stringBuffer, aCluster)))) { + range.location = rangeBeforeZWJ.location; + range.length += rangeBeforeZWJ.length + aCluster.length; + } + } + } + + // Family face sequence if (range.location > 1) { // there are more than 2 chars character = CFStringGetCharacterFromInlineBuffer(&stringBuffer, range.location); @@ -3836,10 +4047,12 @@ CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex ch while ((currentIndex > 1) && (ZERO_WIDTH_JOINER == CFStringGetCharacterFromInlineBuffer(&stringBuffer, currentIndex - 1))) { aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, currentIndex - 2, type, bmpBitmap, csetType); - if (__CFStringIsFamilySequenceCluster(&stringBuffer, aCluster) && (aCluster.location < range.location)) { - currentIndex = aCluster.location; - } else { - break; + if (aCluster.location < range.location) { + if (__CFStringIsFamilySequenceCluster(&stringBuffer, aCluster)) { + currentIndex = aCluster.location; + } else { + break; + } } } @@ -3861,7 +4074,7 @@ CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex ch while (((currentIndex + 1) < length) && (ZERO_WIDTH_JOINER == CFStringGetCharacterFromInlineBuffer(&stringBuffer, currentIndex))) { aCluster = _CFStringInlineBufferGetComposedRange(&stringBuffer, currentIndex + 1, type, bmpBitmap, csetType); - if (__CFStringIsFamilySequenceCluster(&stringBuffer, aCluster)) { + if ((__CFStringIsFamilySequenceCluster(&stringBuffer, aCluster))) { currentIndex = aCluster.location + aCluster.length; if ((aCluster.length > 1) && (ZERO_WIDTH_JOINER == CFStringGetCharacterFromInlineBuffer(&stringBuffer, currentIndex - 1))) --currentIndex; } else { @@ -3871,6 +4084,7 @@ CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex ch if (currentIndex > (range.location + range.length)) range.length = currentIndex - range.location; } } + return range; } @@ -4192,7 +4406,7 @@ CFStringRef CFStringCreateFromExternalRepresentation(CFAllocatorRef alloc, CFDat } -CF_EXPORT CFDataRef CFStringCreateExternalRepresentation(CFAllocatorRef alloc, CFStringRef string, CFStringEncoding encoding, uint8_t lossByte) { +CFDataRef CFStringCreateExternalRepresentation(CFAllocatorRef alloc, CFStringRef string, CFStringEncoding encoding, uint8_t lossByte) { CFIndex length; CFIndex guessedByteLength; uint8_t *bytes; @@ -4299,7 +4513,7 @@ double CFStringGetDoubleValue(CFStringRef str) { void CFStringSetExternalCharactersNoCopy(CFMutableStringRef string, UniChar *chars, CFIndex length, CFIndex capacity) { __CFAssertIsNotNegative(length); __CFAssertIsStringAndExternalMutable(string); - CFAssert((length <= capacity) && ((capacity == 0) || ((capacity > 0) && chars)), __kCFLogAssertion, "%s(): Invalid args: characters %p length %d capacity %d", __PRETTY_FUNCTION__, chars, length, capacity); + CFAssert4((length <= capacity) && ((capacity == 0) || ((capacity > 0) && chars)), __kCFLogAssertion, "%s(): Invalid args: characters %p length %ld capacity %ld", __PRETTY_FUNCTION__, chars, length, capacity); __CFStrSetContentPtr(string, chars); __CFStrSetExplicitLength(string, length); __CFStrSetCapacity(string, capacity * sizeof(UniChar)); @@ -4312,7 +4526,7 @@ void CFStringInsert(CFMutableStringRef str, CFIndex idx, CFStringRef insertedStr CF_SWIFT_FUNCDISPATCHV(__kCFStringTypeID, void, (CFSwiftRef)str, NSMutableString.insertString, idx, (CFSwiftRef)insertedStr); CF_OBJC_FUNCDISPATCHV(__kCFStringTypeID, void, (NSMutableString *)str, insertString:(NSString *)insertedStr atIndex:(NSUInteger)idx); __CFAssertIsStringAndMutable(str); - CFAssert(idx >= 0 && idx <= __CFStrLength(str), __kCFLogAssertion, "%s(): string index %d out of bounds (length %d)", __PRETTY_FUNCTION__, idx, __CFStrLength(str)); + CFAssert3(idx >= 0 && idx <= __CFStrLength(str), __kCFLogAssertion, "%s(): string index %ld out of bounds (length %ld)", __PRETTY_FUNCTION__, idx, __CFStrLength(str)); __CFStringReplace(str, CFRangeMake(idx, 0), insertedStr); } @@ -4407,7 +4621,7 @@ void __CFStringAppendBytes(CFMutableStringRef str, const char *cStr, CFIndex app vBuf.chars.unicode = NULL; // This will cause the decode function to allocate memory if necessary if (!__CFStringDecodeByteStream3((const uint8_t *)cStr, appendedLength, encoding, __CFStrIsUnicode(str), &vBuf, &usingPassedInMemory, 0)) { - CFAssert(0, __kCFLogAssertion, "Supplied bytes could not be converted specified encoding %d", encoding); + CFAssert1(0, __kCFLogAssertion, "Supplied bytes could not be converted specified encoding %ud", (unsigned int)encoding); return; } @@ -5463,6 +5677,41 @@ void CFStringFold(CFMutableStringRef theString, CFStringCompareFlags theFlags, C } } + +static bool _CFStringHasStrongRTL(CFStringRef str, CFRange range) { + CFIndex charIndex = 0; + CFStringInlineBuffer stringBuffer; + const uint8_t *strongRightBMP = CFUniCharGetBitmapPtrForPlane(kCFUniCharStrongRightToLeftCharacterSet, 0); // Most RTL strong chars are in BMP + + CFStringInitInlineBuffer(str, &stringBuffer, range); + + while (charIndex < range.length) { // Both line break & strong right characters are all in BMP so no need to process surrogates + UTF32Char character = CFStringGetCharacterFromInlineBuffer(&stringBuffer, charIndex); + + const uint8_t *strongRight = strongRightBMP; + + if (CFUniCharIsSurrogateHighCharacter(character)) { + UTF16Char otherChar = CFStringGetCharacterFromInlineBuffer(&stringBuffer, ++charIndex); + uint32_t plane; + + if (!CFUniCharIsSurrogateLowCharacter(otherChar)) continue; + + character = CFUniCharGetLongCharacterForSurrogatePair(character, otherChar); + + plane = ((character >> 16) & 0x1F); + if (0 != plane) strongRight = CFUniCharGetBitmapPtrForPlane(kCFUniCharStrongRightToLeftCharacterSet, plane); + } + + if (CFUniCharIsMemberOfBitmap(character, strongRight)) return true; + + ++charIndex; + } + return false; +} + + +/* String formatting */ + enum { kCFStringFormatZeroFlag = (1 << 0), // if not, padding is space char kCFStringFormatMinusFlag = (1 << 1), // if not, no flag implied @@ -5529,8 +5778,7 @@ enum { CFFormatLongType = 33, CFFormatDoubleType = 34, CFFormatPointerType = 35, - CFFormatObjectType = 36, /* handled specially */ /* ??? not used anymore, can be removed? */ - CFFormatCFType = 37, /* handled specially */ + CFFormatCFType = 37, /* handled specially; this is the general object type */ CFFormatUnicharsType = 38, /* handled specially */ CFFormatCharsType = 39, /* handled specially */ CFFormatPascalCharsType = 40, /* handled specially */ @@ -5593,7 +5841,9 @@ static Boolean __CFStringFormatLocalizedNumber(CFMutableStringRef output, CFLoca formatter = gFormatter; break; } - + + CFStringRef origFormat = CFStringCreateCopy(NULL, CFNumberFormatterGetFormat(formatter)); // Need to hang on to this in case the format changes while we are setting properties below + SInt32 prec = hasPrecision ? precision : ((spec->type == CFFormatLongType) ? 0 : 6); // default precision of printf is 6 // pattern must be set before setting width and padding @@ -5651,22 +5901,24 @@ static Boolean __CFStringFormatLocalizedNumber(CFMutableStringRef output, CFLoca break; } - CFStringRef pattern = CFNumberFormatterGetFormat(formatter); + CFStringRef currentPattern = CFNumberFormatterGetFormat(formatter); if ((spec->flags & kCFStringFormatPlusFlag) && !isNegative) { - if (CFStringGetCharacterAtIndex(pattern, 0) != '+') { + if (CFStringGetCharacterAtIndex(currentPattern, 0) != '+') { CFMutableStringRef newPattern = CFStringCreateMutableCopy(NULL, 0, CFSTR("+")); - CFStringAppend(newPattern, pattern); + CFStringAppend(newPattern, currentPattern); CFNumberFormatterSetFormat(formatter, newPattern); CFRelease(newPattern); } } else { - if (CFStringGetCharacterAtIndex(pattern, 0) == '+') { - CFStringRef newPattern = CFStringCreateWithSubstring(NULL, pattern, CFRangeMake(1, CFStringGetLength(pattern)-1)); + if (CFStringGetCharacterAtIndex(currentPattern, 0) == '+') { + CFStringRef newPattern = CFStringCreateWithSubstring(NULL, currentPattern, CFRangeMake(1, CFStringGetLength(currentPattern)-1)); CFNumberFormatterSetFormat(formatter, newPattern); CFRelease(newPattern); } } + Boolean padZero = spec->flags & kCFStringFormatZeroFlag; + // width == 0 seems to be CFNumberFormatter's default setting if (hasPrecision && spec->type == CFFormatLongType) { // if we have precision and %d or %u, we pad 0 according to precision first tmp = CFNumberCreate(NULL, kCFNumberSInt32Type, &prec); @@ -5674,18 +5926,30 @@ static Boolean __CFStringFormatLocalizedNumber(CFMutableStringRef output, CFLoca tmp = CFNumberCreate(NULL, kCFNumberSInt32Type, &width); } CFNumberFormatterSetProperty(formatter, kCFNumberFormatterFormatWidthKey, tmp); - CFRelease(tmp); - - // ??? use the right zero here for Arabic - Boolean padZero = spec->flags & kCFStringFormatZeroFlag; + if (hasPrecision && spec->type == CFFormatLongType) { // if we have precision and %d or %u, we pad 0 padZero = true; } - CFNumberFormatterSetProperty(formatter, kCFNumberFormatterPaddingCharacterKey, padZero ? CFSTR("0") : CFSTR(" ")); - - + // Left (default) or right padding SInt32 p = (spec->flags & kCFStringFormatMinusFlag) ? kCFNumberFormatterPadAfterSuffix : (padZero ? kCFNumberFormatterPadAfterPrefix : kCFNumberFormatterPadBeforePrefix); + SInt32 minDigits = 0; + CFNumberGetValue(tmp, kCFNumberSInt32Type, &minDigits); + + // Ensure we're padding up to the minimum number of digits + // NOTE: MinIntegerDigits doesn't take punctuation (plus/minus sign, grouping separators, radix, etc) into account but printf normally does. + if (padZero && (minDigits > 0) && p) { + if (spec->type == CFFormatDoubleType) { + if (width > precision) { + CFRelease(tmp); + SInt32 minIntDigits = width - precision; + tmp = CFNumberCreate(NULL, kCFNumberSInt32Type, &minIntDigits); + } + } + CFNumberFormatterSetProperty(formatter, kCFNumberFormatterMinIntegerDigitsKey, tmp); + } + CFRelease(tmp); + if (hasPrecision && spec->type == CFFormatLongType) { SInt32 tmpP = kCFNumberFormatterPadAfterPrefix; tmp = CFNumberCreate(NULL, kCFNumberSInt32Type, &tmpP); @@ -5695,6 +5959,17 @@ static Boolean __CFStringFormatLocalizedNumber(CFMutableStringRef output, CFLoca CFNumberFormatterSetProperty(formatter, kCFNumberFormatterPaddingPositionKey, tmp); CFRelease(tmp); + if (!padZero) { // If we're padding with 0, the zero needs to be localized. Setting MinIntegerDigitsKey localizes, setting PaddingCharacterKey does not + CFNumberFormatterSetProperty(formatter, kCFNumberFormatterPaddingCharacterKey, CFSTR(" ")); + } + + // Work around until ICU allows for localizing of custom format patterns + // Custom scientific notation formatting does not work with padding + if (padZero && spec->numericFormatStyle == CFFormatStyleDecimalOrScientific) { + CFNumberFormatterSetProperty(formatter, kCFNumberFormatterPaddingCharacterKey, CFSTR("0")); + } + + if (spec->numericFormatStyle == CFFormatStyleScientific) { prec++; // for %e, precision+1 is the number of sig fig tmp = CFNumberCreate(NULL, kCFNumberSInt32Type, &prec); @@ -5722,6 +5997,8 @@ static Boolean __CFStringFormatLocalizedNumber(CFMutableStringRef output, CFLoca break; } } + CFNumberFormatterSetFormat(formatter, origFormat); // Need to reset the format in case it changed + CFRelease(origFormat); __CFUnlock(&formatterLock); if (localizedNumberString) { @@ -5960,12 +6237,6 @@ reswtch:switch (ch) { } } -/* ??? %s depends on handling of encodings by __CFStringAppendBytes -*/ -void CFStringAppendFormatAndArguments(CFMutableStringRef outputString, CFDictionaryRef formatOptions, CFStringRef formatString, va_list args) { - __CFStringAppendFormatCore(outputString, NULL, NULL, formatOptions, NULL, formatString, 0, NULL, 0, args); -} - // Length of the buffer to call sprintf() with #define BUFFER_LEN 512 @@ -6003,6 +6274,12 @@ void CFStringAppendFormatAndArguments(CFMutableStringRef outputString, CFDiction }} #endif +/* These three functions are the external entry points for string formatting. +*/ +void CFStringAppendFormatAndArguments(CFMutableStringRef outputString, CFDictionaryRef formatOptions, CFStringRef formatString, va_list args) { + __CFStringAppendFormatCore(outputString, NULL, NULL, formatOptions, NULL, formatString, 0, NULL, 0, args); +} + void _CFStringAppendFormatAndArgumentsAux2(CFMutableStringRef outputString, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, CFStringRef formatString, va_list args) { __CFStringAppendFormatCore(outputString, copyDescFunc, contextDescFunc, formatOptions, NULL, formatString, 0, NULL, 0, args); } @@ -6010,7 +6287,24 @@ void _CFStringAppendFormatAndArgumentsAux2(CFMutableStringRef outputString, CFSt void _CFStringAppendFormatAndArgumentsAux(CFMutableStringRef outputString, CFStringRef (*copyDescFunc)(void *, const void *), CFDictionaryRef formatOptions, CFStringRef formatString, va_list args) { _CFStringAppendFormatAndArgumentsAux2(outputString, copyDescFunc, NULL, formatOptions, formatString, args); } - + + +/* + __CFStringAppendFormatCore(): The core for all string formatting. + + outputString: Mutable string being formatted into. Results will be appended. + copyDescFunc: Callback for formatting strings. Can be NULL. Foundation calls with a function that will invoke descriptionWithLocale: or description. Second argument is the locale (a dictionary or locale). + contextDescFunc: Callback for doing context-based formatting. Can be NULL. <> + formatOptions: Locale specific info. Used to be a CFDictionary, now CFLocale, but either is still possible. If !NULL, localized formatting is assumed. + stringsDictConfig: Only used for recursive calls when doing stringsDict formatting. Otherwise NULL. <> + formatString: The actual format string. + initialArgPosition: Only used for recursive calls when doing stringsDict formatting. Otherwise 0. <> + origValues: Only used for recursive calls when doing stringsDict formatting. Otherwise NULL. <> + originalValuesSize: Only used for recursive calls when doing stringsDict formatting. Otherwise 0. <> + args: Finally, the arguments to be formatted. + + ??? %s depends on handling of encodings by __CFStringAppendBytes +*/ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFStringRef (*copyDescFunc)(void *, const void *), CFStringRef (*contextDescFunc)(void *, const void *, const void *, bool, bool *), CFDictionaryRef formatOptions, CFDictionaryRef stringsDictConfig, CFStringRef formatString, CFIndex initialArgPosition, const void *origValues, CFIndex originalValuesSize, va_list args) { SInt32 numSpecs, sizeSpecs, sizeArgNum, formatIdx, curSpec, argNum; CFIndex formatLen; @@ -6031,6 +6325,8 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString CFMutableDictionaryRef formattingConfig = NULL; CFIndex numConfigs; CFAllocatorRef tmpAlloc = NULL; + bool localizedFormatting = formatOptions && (CFGetTypeID(formatOptions) == CFLocaleGetTypeID()); + intmax_t dummyLocation; // A place for %n to do its thing in; should be the widest possible int value numSpecs = 0; @@ -6203,7 +6499,6 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString } break; case CFFormatPointerType: - case CFFormatObjectType: case CFFormatCFType: case CFFormatUnicharsType: case CFFormatCharsType: @@ -6256,7 +6551,7 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString case CFFormatLongType: case CFFormatDoubleType: #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS - if (formatOptions && (specs[curSpec].flags & kCFStringFormatLocalizable) && (CFGetTypeID(formatOptions) == CFLocaleGetTypeID())) { // We have a locale, so we do localized formatting + if (localizedFormatting && (specs[curSpec].flags & kCFStringFormatLocalizable)) { // We have a locale, so we do localized formatting if (__CFStringFormatLocalizedNumber(outputString, (CFLocaleRef)formatOptions, values, &specs[curSpec], width, precision, hasPrecision)) break; } /* Otherwise fall-thru to the next case! */ @@ -6434,7 +6729,6 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString } break; case CFFormatCFType: - case CFFormatObjectType: if (specs[curSpec].configDictIndex != -1) { // config dict CFTypeRef object = NULL; switch (values[specs[curSpec].mainArgNum].type) { @@ -6536,7 +6830,6 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString break; case CFFormatCFType: - case CFFormatObjectType: if (NULL != values[specs[curSpec].mainArgNum].value.pointerValue) object = CFRetain(values[specs[curSpec].mainArgNum].value.pointerValue); break; } @@ -6565,7 +6858,7 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString } } if (str) { - CFStringAppend(outputString, str); + CFStringAppend(outputString, str); CFRelease(str); } else { CFStringAppendCString(outputString, "(null description)", kCFStringEncodingASCII); @@ -6601,6 +6894,7 @@ static void __CFStringAppendFormatCore(CFMutableStringRef outputString, CFString #undef SNPRINTF + void CFShowStr(CFStringRef str) { CFAllocatorRef alloc; @@ -6642,6 +6936,8 @@ void CFShowStr(CFStringRef str) { + + #undef HANGUL_SBASE #undef HANGUL_LBASE #undef HANGUL_VBASE diff --git a/CoreFoundation/String.subproj/CFString.h b/CoreFoundation/String.subproj/CFString.h index 1cbb58e147..35bb233062 100644 --- a/CoreFoundation/String.subproj/CFString.h +++ b/CoreFoundation/String.subproj/CFString.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFString.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRING__) @@ -47,8 +42,9 @@ pointer quickly, in constant time, or they return NULL. They might choose to ret for many reasons; for instance it's possible that for users running in different languages these sometimes return NULL; or in a future OS release the first two might switch to always returning NULL. Never observing NULL returns in your usages of these -functions does not mean they won't ever return NULL. (But note the CFStringGetCharactersPtr() -exception mentioned further below.) +functions does not mean they won't ever return NULL. In fact, this happened with the +introduction of tagged pointer strings in OS X 10.10, and a year later iOS 9. +(But please note the CFStringGetCharactersPtr() exception mentioned further below.) In your usages of these functions, if you get a NULL return, use the non-Ptr version of the functions as shown in this example: @@ -286,8 +282,8 @@ CFMutableStringRef CFStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLe /* This function creates a mutable string that has a developer supplied and directly editable backing store. The string will be manipulated within the provided buffer (if any) until it outgrows capacity; then the externalCharactersAllocator will be consulted for more memory. When the CFString is deallocated, the -buffer will be freed with the externalCharactersAllocator. Provide kCFAllocatorNull here to prevent the buffer -from ever being reallocated or deallocated by CFString. See comments at top of this file for more info. +buffer will be freed with the externalCharactersAllocator. If you provide kCFAllocatorNull here, and the buffer +needs to grow, then CFString will switch to using the default allocator. See comments at top of this file for more info. */ CF_EXPORT CFMutableStringRef CFStringCreateMutableWithExternalCharactersNoCopy(CFAllocatorRef alloc, UniChar *chars, CFIndex numChars, CFIndex capacity, CFAllocatorRef externalCharactersAllocator); @@ -333,13 +329,13 @@ this can't always be counted on. Please see note at the top of the file for more details. */ CF_EXPORT -ConstStringPtr CFStringGetPascalStringPtr(CFStringRef theString, CFStringEncoding encoding); /* May return NULL at any time; be prepared for NULL */ +ConstStringPtr CFStringGetPascalStringPtr(CFStringRef theString, CFStringEncoding encoding); /* May return NULL at any time; be prepared for NULL, if not now, in some other time or place. See discussion at top of this file. */ CF_EXPORT -const char *CFStringGetCStringPtr(CFStringRef theString, CFStringEncoding encoding); /* May return NULL at any time; be prepared for NULL */ +const char *CFStringGetCStringPtr(CFStringRef theString, CFStringEncoding encoding); /* May return NULL at any time; be prepared for NULL, if not now, in some other time or place. See discussion at top of this file. */ CF_EXPORT -const UniChar *CFStringGetCharactersPtr(CFStringRef theString); /* May return NULL at any time; be prepared for NULL */ +const UniChar *CFStringGetCharactersPtr(CFStringRef theString); /* May return NULL at any time; be prepared for NULL, if not now, in some other time or place. See discussion at top of this file. */ /* The primitive conversion routine; allows you to convert a string piece at a time into a fixed size buffer. Returns number of characters converted. diff --git a/CoreFoundation/String.subproj/CFStringDefaultEncoding.h b/CoreFoundation/String.subproj/CFStringDefaultEncoding.h index d67caff4a8..c79305ee79 100644 --- a/CoreFoundation/String.subproj/CFStringDefaultEncoding.h +++ b/CoreFoundation/String.subproj/CFStringDefaultEncoding.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringDefaultEncoding.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRINGDEFAULTENCODING__) diff --git a/CoreFoundation/String.subproj/CFStringEncodingExt.h b/CoreFoundation/String.subproj/CFStringEncodingExt.h index 4601695e54..2ea2b26e4e 100644 --- a/CoreFoundation/String.subproj/CFStringEncodingExt.h +++ b/CoreFoundation/String.subproj/CFStringEncodingExt.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingExt.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRINGENCODINGEXT__) diff --git a/CoreFoundation/String.subproj/CFStringEncodings.c b/CoreFoundation/String.subproj/CFStringEncodings.c index 919a23809a..c5ccea910c 100644 --- a/CoreFoundation/String.subproj/CFStringEncodings.c +++ b/CoreFoundation/String.subproj/CFStringEncodings.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodings.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ @@ -812,8 +807,8 @@ CFIndex CFStringGetMaximumSizeOfFileSystemRepresentation(CFStringRef string) { } } -Boolean CFStringGetFileSystemRepresentation(CFStringRef string, char *buffer, CFIndex maxBufLen) { -#if (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX) +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +_CFStringFileSystemRepresentationError _CFStringGetFileSystemRepresentationWithErrorStatus(CFStringRef string, char *buffer, CFIndex maxBufLen, CFIndex *characterIndex) { #define MAX_STACK_BUFFER_LEN (255) const UTF16Char *characters = CFStringGetCharactersPtr(string); const char *origBuffer = buffer; @@ -821,7 +816,9 @@ Boolean CFStringGetFileSystemRepresentation(CFStringRef string, char *buffer, CF CFIndex length = CFStringGetLength(string); CFIndex usedBufLen; - if (maxBufLen < length) return false; // Since we're using UTF-8, the byte length is never shorter than the char length. Also, it filters out 0 == maxBufLen + if (maxBufLen < length) { + return _kCFStringFileSystemRepresentationErrorBufferFull; // Since we're using UTF-8, the byte length is never shorter than the char length. Also, it filters out 0 == maxBufLen + } if (NULL == characters) { UTF16Char charactersBuffer[MAX_STACK_BUFFER_LEN]; @@ -843,27 +840,58 @@ Boolean CFStringGetFileSystemRepresentation(CFStringRef string, char *buffer, CF CFStringGetCharacters(string, range, charactersBuffer); if ((range.length == MAX_STACK_BUFFER_LEN) && CFUniCharIsSurrogateHighCharacter(charactersBuffer[MAX_STACK_BUFFER_LEN - 1])) --range.length; // Backup for a high surrogate - if (!CFUniCharDecompose(charactersBuffer, range.length, NULL, (void *)buffer, bufferLimit - buffer, &usedBufLen, true, kCFUniCharUTF8Format, true)) return false; + CFIndex badIndex = kCFNotFound; + if (!CFUniCharDecomposeWithErrorLocation(charactersBuffer, range.length, NULL, (void *)buffer, bufferLimit - buffer, &usedBufLen, true, kCFUniCharUTF8Format, true, &badIndex)) { + if (badIndex == kCFNotFound) { + return _kCFStringFileSystemRepresentationErrorBufferFull; + } else { + if (characterIndex) *characterIndex = badIndex; + return _kCFStringFileSystemRepresentationErrorUnpairedSurrogate; + } + } buffer += usedBufLen; range.location += range.length; } } else { - if (!CFUniCharDecompose(characters, length, NULL, (void *)buffer, maxBufLen, &usedBufLen, true, kCFUniCharUTF8Format, true)) return false; + CFIndex badIndex = kCFNotFound; + if (!CFUniCharDecomposeWithErrorLocation(characters, length, NULL, (void *)buffer, maxBufLen, &usedBufLen, true, kCFUniCharUTF8Format, true, &badIndex)) { + if (badIndex == kCFNotFound) { + return _kCFStringFileSystemRepresentationErrorBufferFull; + } else { + if (characterIndex) *characterIndex = badIndex; + return _kCFStringFileSystemRepresentationErrorUnpairedSurrogate; + } + } buffer += usedBufLen; } if (buffer < bufferLimit) { // Since the filename has its own limit, this is ok for now *buffer = '\0'; - if (_CFExecutableLinkedOnOrAfter(CFSystemVersionLion)) { - while (origBuffer < buffer) if (*origBuffer++ == 0) { // There's a zero in there. Now see if the rest are all zeroes. - while (origBuffer < buffer) if (*origBuffer++ != 0) return false; // Embedded NULLs should cause failure: + if (_CFExecutableLinkedOnOrAfter(CFSystemVersionLion)) { + const char *findZeroBuffer = origBuffer; + while (findZeroBuffer < buffer) if (*findZeroBuffer++ == 0) { // There's a zero in there. Now see if the rest are all zeroes. + while (findZeroBuffer < buffer) { + if (*findZeroBuffer != 0) { + // Embedded NULLs should cause failure: + if (characterIndex) *characterIndex = findZeroBuffer - origBuffer; + return _kCFStringFileSystemRepresentationErrorEmbeddedNull; + } + findZeroBuffer++; + } } - } - return true; + } + return _kCFStringFileSystemRepresentationErrorNone; } else { - return false; + return _kCFStringFileSystemRepresentationErrorBufferFull; } + +} +#endif + +Boolean CFStringGetFileSystemRepresentation(CFStringRef string, char *buffer, CFIndex maxBufLen) { +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + return _CFStringGetFileSystemRepresentationWithErrorStatus(string, buffer, maxBufLen, NULL) == _kCFStringFileSystemRepresentationErrorNone; #else return CFStringGetCString(string, buffer, maxBufLen, CFStringFileSystemEncoding()); #endif diff --git a/CoreFoundation/String.subproj/CFStringScanner.c b/CoreFoundation/String.subproj/CFStringScanner.c index 669438dc42..775d50b514 100644 --- a/CoreFoundation/String.subproj/CFStringScanner.c +++ b/CoreFoundation/String.subproj/CFStringScanner.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringScanner.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Ali Ozer */ diff --git a/CoreFoundation/String.subproj/CFStringUtilities.c b/CoreFoundation/String.subproj/CFStringUtilities.c index fe6544b5f9..501a98740d 100644 --- a/CoreFoundation/String.subproj/CFStringUtilities.c +++ b/CoreFoundation/String.subproj/CFStringUtilities.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringUtilities.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ diff --git a/CoreFoundation/StringEncodings.subproj/CFBuiltinConverters.c b/CoreFoundation/StringEncodings.subproj/CFBuiltinConverters.c index a709c04b7e..ca84018432 100644 --- a/CoreFoundation/StringEncodings.subproj/CFBuiltinConverters.c +++ b/CoreFoundation/StringEncodings.subproj/CFBuiltinConverters.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFBuiltinConverters.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ diff --git a/CoreFoundation/StringEncodings.subproj/CFICUConverters.c b/CoreFoundation/StringEncodings.subproj/CFICUConverters.c index 4c995c00ed..432c65be34 100644 --- a/CoreFoundation/StringEncodings.subproj/CFICUConverters.c +++ b/CoreFoundation/StringEncodings.subproj/CFICUConverters.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFICUConverters.c - Copyright (c) 2004 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2004-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ diff --git a/CoreFoundation/StringEncodings.subproj/CFICUConverters.h b/CoreFoundation/StringEncodings.subproj/CFICUConverters.h index 561ee4a3ef..a49ac3231b 100644 --- a/CoreFoundation/StringEncodings.subproj/CFICUConverters.h +++ b/CoreFoundation/StringEncodings.subproj/CFICUConverters.h @@ -1,19 +1,13 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - * CFICUConverters.h - * CoreFoundation - * - * Copyright (c) 2007 - 2015 Apple Inc. and the Swift project authors - * + CFICUConverters.h + CoreFoundation + + Copyright (c) 2007-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #include diff --git a/CoreFoundation/StringEncodings.subproj/CFPlatformConverters.c b/CoreFoundation/StringEncodings.subproj/CFPlatformConverters.c index 53a672cfe5..f4786a1930 100644 --- a/CoreFoundation/StringEncodings.subproj/CFPlatformConverters.c +++ b/CoreFoundation/StringEncodings.subproj/CFPlatformConverters.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFPlatformConverters.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.c b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.c index b78ab86a45..124cc36544 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.c +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingConverter.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ @@ -585,7 +580,7 @@ static const _CFEncodingConverter *__CFGetConverter(uint32_t encoding) { const _CFEncodingConverter **commonConverterSlot = NULL; static _CFEncodingConverter *commonConverters[3] = {NULL, NULL, NULL}; // UTF8, MacRoman/WinLatin1, and the default encoding* static CFMutableDictionaryRef mappingTable = NULL; - static pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER; + static OSSpinLock lock = OS_SPINLOCK_INIT; switch (encoding) { case kCFStringEncodingUTF8: commonConverterSlot = (const _CFEncodingConverter **)&(commonConverters[0]); break; @@ -603,15 +598,15 @@ static const _CFEncodingConverter *__CFGetConverter(uint32_t encoding) { default: if (CFStringGetSystemEncoding() == encoding) commonConverterSlot = (const _CFEncodingConverter **)&(commonConverters[2]); break; } - pthread_rwlock_rdlock(&rwlock); + OSSpinLockLock(&lock); converter = ((NULL == commonConverterSlot) ? ((NULL == mappingTable) ? NULL : (const _CFEncodingConverter *)CFDictionaryGetValue(mappingTable, (const void *)(uintptr_t)encoding)) : *commonConverterSlot); - pthread_rwlock_unlock(&rwlock); + OSSpinLockUnlock(&lock); if (NULL == converter) { const CFStringEncodingConverter *definition = __CFStringEncodingConverterGetDefinition(encoding); if (NULL != definition) { - pthread_rwlock_wrlock(&rwlock); + OSSpinLockLock(&lock); converter = ((NULL == commonConverterSlot) ? ((NULL == mappingTable) ? NULL : (const _CFEncodingConverter *)CFDictionaryGetValue(mappingTable, (const void *)(uintptr_t)encoding)) : *commonConverterSlot); if (NULL == converter) { @@ -625,7 +620,7 @@ static const _CFEncodingConverter *__CFGetConverter(uint32_t encoding) { *commonConverterSlot = converter; } } - pthread_rwlock_unlock(&rwlock); + OSSpinLockUnlock(&lock); } } @@ -850,11 +845,11 @@ uint32_t CFStringEncodingBytesToUnicode(uint32_t encoding, uint32_t flags, const return theResult; } -CF_EXPORT bool CFStringEncodingIsValidEncoding(uint32_t encoding) { +CF_PRIVATE bool CFStringEncodingIsValidEncoding(uint32_t encoding) { return (CFStringEncodingGetConverter(encoding) ? true : false); } -CF_EXPORT CFIndex CFStringEncodingCharLengthForBytes(uint32_t encoding, uint32_t flags, const uint8_t *bytes, CFIndex numBytes) { +CF_PRIVATE CFIndex CFStringEncodingCharLengthForBytes(uint32_t encoding, uint32_t flags, const uint8_t *bytes, CFIndex numBytes) { const _CFEncodingConverter *converter = __CFGetConverter(encoding); if (converter) { @@ -898,7 +893,7 @@ CF_EXPORT CFIndex CFStringEncodingCharLengthForBytes(uint32_t encoding, uint32_t return 0; } -CF_EXPORT CFIndex CFStringEncodingByteLengthForCharacters(uint32_t encoding, uint32_t flags, const UniChar *characters, CFIndex numChars) { +CF_PRIVATE CFIndex CFStringEncodingByteLengthForCharacters(uint32_t encoding, uint32_t flags, const UniChar *characters, CFIndex numChars) { const _CFEncodingConverter *converter = __CFGetConverter(encoding); if (converter) { @@ -981,7 +976,7 @@ static void __CFStringEncodingFliterDupes(CFStringEncoding *encodings, CFIndex n } } -CF_EXPORT const CFStringEncoding *CFStringEncodingListOfAvailableEncodings(void) { +CF_PRIVATE const CFStringEncoding *CFStringEncodingListOfAvailableEncodings(void) { static const CFStringEncoding *encodings = NULL; if (NULL == encodings) { diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.h b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.h index f800724096..7ca356e9ed 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.h +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverter.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingConverter.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRINGENCODINGCONVERTER__) diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterExt.h b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterExt.h index abb66f835d..0d6dd61225 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterExt.h +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterExt.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingConverterExt.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRINGENCODINGCONVERETEREXT__) diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterPriv.h b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterPriv.h index c21c0a47c0..4228932bfe 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterPriv.h +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingConverterPriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingConverterPriv.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFSTRINGENCODINGCONVERTERPRIV__) diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.c b/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.c index 7109271f36..6991e914d0 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.c +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFStringEncodingDatabase.c - Copyright (c) 2005 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2005-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ diff --git a/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.h b/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.h index cf0056bbaf..4394583337 100644 --- a/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.h +++ b/CoreFoundation/StringEncodings.subproj/CFStringEncodingDatabase.h @@ -1,19 +1,13 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - * CFStringEncodingDatabase.h - * CoreFoundation - * - * Copyright (c) 2007 - 2015 Apple Inc. and the Swift project authors - * + CFStringEncodingDatabase.h + CoreFoundation + + Copyright (c) 2007-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #include diff --git a/CoreFoundation/StringEncodings.subproj/CFUniChar.c b/CoreFoundation/StringEncodings.subproj/CFUniChar.c index b23332406e..700b687773 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUniChar.c +++ b/CoreFoundation/StringEncodings.subproj/CFUniChar.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUniChar.c - Copyright (c) 2001 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2001-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ @@ -241,6 +236,7 @@ static bool __CFUniCharLoadBytesFromFile(const wchar_t *fileName, const void **b #endif // USE_MACHO_SEGMENT + #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD #if !defined(CF_UNICHAR_BITMAP_FILE) #if USE_MACHO_SEGMENT @@ -563,7 +559,7 @@ const uint8_t *CFUniCharGetBitmapPtrForPlane(uint32_t charset, uint32_t plane) { return NULL; } -CF_EXPORT uint8_t CFUniCharGetBitmapForPlane(uint32_t charset, uint32_t plane, void *bitmap, bool isInverted) { +CF_PRIVATE uint8_t CFUniCharGetBitmapForPlane(uint32_t charset, uint32_t plane, void *bitmap, bool isInverted) { const uint8_t *src = CFUniCharGetBitmapPtrForPlane(charset, plane); int numBytes = (8 * 1024); @@ -691,7 +687,7 @@ CF_EXPORT uint8_t CFUniCharGetBitmapForPlane(uint32_t charset, uint32_t plane, v return (isInverted ? kCFUniCharBitmapAll : kCFUniCharBitmapEmpty); } -CF_EXPORT uint32_t CFUniCharGetNumberOfPlanes(uint32_t charset) { +CF_PRIVATE uint32_t CFUniCharGetNumberOfPlanes(uint32_t charset) { if ((charset == kCFUniCharControlCharacterSet) || (charset == kCFUniCharControlAndFormatterCharacterSet)) { return 15; // 0 to 14 } else if (charset < kCFUniCharDecimalDigitCharacterSet) { @@ -714,7 +710,7 @@ static const void **__CFUniCharMappingTables = NULL; static CFLock_t __CFUniCharMappingTableLock = CFLockInit; -CF_EXPORT const void *CFUniCharGetMappingData(uint32_t type) { +CF_PRIVATE const void *CFUniCharGetMappingData(uint32_t type) { __CFLock(&__CFUniCharMappingTableLock); @@ -1128,7 +1124,7 @@ CF_INLINE bool __CFUniCharIsAfter_i(UTF16Char *buffer, CFIndex length) { return true; } -CF_EXPORT uint32_t CFUniCharGetConditionalCaseMappingFlags(UTF32Char theChar, UTF16Char *buffer, CFIndex currentIndex, CFIndex length, uint32_t type, const uint8_t *langCode, uint32_t lastFlags) { +CF_PRIVATE uint32_t CFUniCharGetConditionalCaseMappingFlags(UTF32Char theChar, UTF16Char *buffer, CFIndex currentIndex, CFIndex length, uint32_t type, const uint8_t *langCode, uint32_t lastFlags) { if (theChar == 0x03A3) { // GREEK CAPITAL LETTER SIGMA if ((type == kCFUniCharToLowercase) && (currentIndex > 0)) { UTF16Char *start = buffer; @@ -1210,7 +1206,7 @@ static __CFUniCharBitmapData *__CFUniCharUnicodePropertyTable = NULL; static int __CFUniCharUnicodePropertyTableCount = 0; const void *CFUniCharGetUnicodePropertyDataForPlane(uint32_t propertyType, uint32_t plane) { - static dispatch_once_t once = 0; + static dispatch_once_t once = 0L; dispatch_once(&once, ^{ __CFUniCharBitmapData *table; const void *bytes; @@ -1275,12 +1271,12 @@ const void *CFUniCharGetUnicodePropertyDataForPlane(uint32_t propertyType, uint3 return (plane < __CFUniCharUnicodePropertyTable[propertyType]._numPlanes ? __CFUniCharUnicodePropertyTable[propertyType]._planes[plane] : NULL); } -CF_EXPORT uint32_t CFUniCharGetNumberOfPlanesForUnicodePropertyData(uint32_t propertyType) { +CF_PRIVATE uint32_t CFUniCharGetNumberOfPlanesForUnicodePropertyData(uint32_t propertyType) { (void)CFUniCharGetUnicodePropertyDataForPlane(propertyType, 0); return __CFUniCharUnicodePropertyTable[propertyType]._numPlanes; } -CF_EXPORT uint32_t CFUniCharGetUnicodeProperty(UTF32Char character, uint32_t propertyType) { +CF_PRIVATE uint32_t CFUniCharGetUnicodeProperty(UTF32Char character, uint32_t propertyType) { if (propertyType == kCFUniCharCombiningProperty) { return CFUniCharGetCombiningPropertyForCharacter(character, (const uint8_t *)CFUniCharGetUnicodePropertyDataForPlane(propertyType, (character >> 16) & 0xFF)); } else if (propertyType == kCFUniCharBidiProperty) { diff --git a/CoreFoundation/StringEncodings.subproj/CFUniChar.h b/CoreFoundation/StringEncodings.subproj/CFUniChar.h index 899a94748d..e7f38d1c4d 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUniChar.h +++ b/CoreFoundation/StringEncodings.subproj/CFUniChar.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUniChar.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUNICHAR__) diff --git a/CoreFoundation/StringEncodings.subproj/CFUniCharPriv.h b/CoreFoundation/StringEncodings.subproj/CFUniCharPriv.h index a242d73d92..140ef842d9 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUniCharPriv.h +++ b/CoreFoundation/StringEncodings.subproj/CFUniCharPriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUniCharPriv.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUNICHARPRIV__) diff --git a/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.c b/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.c index 8749bcbeb6..977e178897 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.c +++ b/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.c @@ -1,16 +1,11 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - -/* CFUnicodeDecomposition.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors - Responsibility: Foundation Team +/* CFUnicodeDecomposition.c + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + Responsibility: Foundation Team */ #include @@ -208,8 +203,9 @@ CF_INLINE bool __CFProcessReorderBuffer(UTF32Char *buffer, CFIndex length, void } #define MAX_BUFFER_LENGTH (32) -bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedLength, void *dst, CFIndex maxLength, CFIndex *filledLength, bool needToReorder, uint32_t dstFormat, bool isHFSPlus) { +bool CFUniCharDecomposeWithErrorLocation(const UTF16Char *src, CFIndex length, CFIndex *consumedLength, void *dst, CFIndex maxLength, CFIndex *filledLength, bool needToReorder, uint32_t dstFormat, bool isHFSPlus, CFIndex *charIndex) { CFIndex usedLength = 0; + const UTF16Char * const originalSrc = src; CFIndex originalLength = length; UTF32Char buffer[MAX_BUFFER_LENGTH]; UTF32Char *decompBuffer = buffer; @@ -218,6 +214,9 @@ bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedL CFIndex segmentLength = 0; UTF32Char currentChar; + // kCFNotFound indicates an insufficiently sized buffer, which is the default failure case. + if (charIndex) *charIndex = kCFNotFound; + if (NULL == __CFUniCharDecompositionTable) __CFUniCharLoadDecompositionTable(); while ((length - segmentLength) > 0) { @@ -244,12 +243,18 @@ bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedL ++usedLength; } else { if (CFUniCharIsSurrogateLowCharacter(currentChar)) { // Stray surrogagte - if (dstFormat != kCFUniCharUTF16Format) break; + if (dstFormat != kCFUniCharUTF16Format) { + if (charIndex) *charIndex = src - 1 - originalSrc; + break; + } } else if (CFUniCharIsSurrogateHighCharacter(currentChar)) { if (((length - segmentLength) > 1) && CFUniCharIsSurrogateLowCharacter(*src)) { currentChar = CFUniCharGetLongCharacterForSurrogatePair(currentChar, *(src++)); } else { - if (dstFormat != kCFUniCharUTF16Format) break; + if (dstFormat != kCFUniCharUTF16Format) { + if (charIndex) *charIndex = src - originalSrc; + break; + } } } @@ -305,6 +310,10 @@ bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedL return ((length > 0) ? false : true); } +bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedLength, void *dst, CFIndex maxLength, CFIndex *filledLength, bool needToReorder, uint32_t dstFormat, bool isHFSPlus) { + return CFUniCharDecomposeWithErrorLocation(src, length, consumedLength, dst, maxLength, filledLength, needToReorder, dstFormat, isHFSPlus, NULL); +} + #define MAX_COMP_DECOMP_LEN (32) static CFIndex __CFUniCharRecursivelyCompatibilityDecomposeCharacter(UTF32Char character, UTF32Char *convertedChars) { @@ -344,7 +353,7 @@ CF_INLINE void __CFUniCharMoveBufferFromEnd1(UTF32Char *convertedChars, CFIndex while (convertedChars > limit) *(--dstP) = *(--convertedChars); } -CF_EXPORT CFIndex CFUniCharCompatibilityDecompose(UTF32Char *convertedChars, CFIndex length, CFIndex maxBufferLength) { +CF_PRIVATE CFIndex CFUniCharCompatibilityDecompose(UTF32Char *convertedChars, CFIndex length, CFIndex maxBufferLength) { UTF32Char currentChar; UTF32Char buffer[MAX_COMP_DECOMP_LEN]; const UTF32Char *bufferP; diff --git a/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.h b/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.h index 3b9e80f90a..14bf62d60d 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.h +++ b/CoreFoundation/StringEncodings.subproj/CFUnicodeDecomposition.h @@ -1,20 +1,14 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - * CFUnicodeDecomposition.h - * CoreFoundation - * - * Created by aki on Wed Oct 03 2001. - * Copyright (c) 2001 - 2015 Apple Inc. and the Swift project authors - * + CFUnicodeDecomposition.h + CoreFoundation + + Created by aki on Wed Oct 03 2001. + Copyright (c) 2001-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUNICODEDECOMPOSITION__) @@ -34,6 +28,7 @@ CF_EXPORT CFIndex CFUniCharDecomposeCharacter(UTF32Char character, UTF32Char *co CF_EXPORT CFIndex CFUniCharCompatibilityDecompose(UTF32Char *convertedChars, CFIndex length, CFIndex maxBufferLength); CF_EXPORT bool CFUniCharDecompose(const UTF16Char *src, CFIndex length, CFIndex *consumedLength, void *dst, CFIndex maxLength, CFIndex *filledLength, bool needToReorder, uint32_t dstFormat, bool isHFSPlus); +CF_EXPORT bool CFUniCharDecomposeWithErrorLocation(const UTF16Char *src, CFIndex length, CFIndex *consumedLength, void *dst, CFIndex maxLength, CFIndex *filledLength, bool needToReorder, uint32_t dstFormat, bool isHFSPlus, CFIndex *charIndex); CF_EXPORT void CFUniCharPrioritySort(UTF32Char *characters, CFIndex length); diff --git a/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.c b/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.c index 1e4d29367e..459487ed36 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.c +++ b/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFUnicodePrecomposition.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Foundation Team */ @@ -108,8 +103,8 @@ static uint32_t __CFUniCharGetMappedValue_P(const __CFUniCharPrecomposeMappings return 0; } -CF_EXPORT UTF32Char CFUniCharPrecomposeCharacter(UTF32Char base, - UTF32Char combining) { +CF_PRIVATE +UTF32Char CFUniCharPrecomposeCharacter(UTF32Char base, UTF32Char combining) { uint32_t value; if (NULL == __CFUniCharPrecompSourceTable) __CFUniCharLoadPrecompositionTable(); diff --git a/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.h b/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.h index dab75974fc..fc19f083bf 100644 --- a/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.h +++ b/CoreFoundation/StringEncodings.subproj/CFUnicodePrecomposition.h @@ -1,20 +1,14 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* - * CFUnicodePrecomposition.h - * CoreFoundation - * - * Created by aki on Wed Oct 03 2001. - * Copyright (c) 2001 - 2015 Apple Inc. and the Swift project authors - * + CFUnicodePrecomposition.h + CoreFoundation + + Created by aki on Wed Oct 03 2001. + Copyright (c) 2001-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFUNICODEPRECOMPOSITION__) diff --git a/CoreFoundation/URL.subproj/CFURL.c b/CoreFoundation/URL.subproj/CFURL.c index f818af798f..191e713c04 100644 --- a/CoreFoundation/URL.subproj/CFURL.c +++ b/CoreFoundation/URL.subproj/CFURL.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURL.c - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Jim Luther/Chris Linn */ @@ -59,12 +54,29 @@ CF_EXPORT CFURLRef _CFURLCreateCurrentDirectoryURL(CFAllocatorRef allocator) CF_ static Boolean _CFURLHasFileURLScheme(CFURLRef url, Boolean *hasScheme); #endif -PE_CONST_STRING_DECL(kCFURLHTTPScheme, "http") -PE_CONST_STRING_DECL(kCFURLHTTPSScheme, "https") -PE_CONST_STRING_DECL(kCFURLFileScheme, "file") -PE_CONST_STRING_DECL(kCFURLDataScheme, "data") -PE_CONST_STRING_DECL(kCFURLFTPScheme, "ftp") -PE_CONST_STRING_DECL(kCFURLLocalhost, "localhost") + + +// When __CONSTANT_CFSTRINGS__ is not defined, we have separate macros for static and exported constant strings, but +// when it is defined, we must prefix with static to prevent the string from being exported +#ifdef __CONSTANT_CFSTRINGS__ +static CONST_STRING_DECL(kCFURLHTTPScheme, "http") +static CONST_STRING_DECL(kCFURLHTTPSScheme, "https") +static CONST_STRING_DECL(kCFURLFileScheme, "file") +static CONST_STRING_DECL(kCFURLDataScheme, "data") +static CONST_STRING_DECL(kCFURLFTPScheme, "ftp") +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +static CONST_STRING_DECL(kCFURLLocalhost, "localhost") +#endif +#else +CONST_STRING_DECL(kCFURLHTTPScheme, "http") +CONST_STRING_DECL(kCFURLHTTPSScheme, "https") +CONST_STRING_DECL(kCFURLFileScheme, "file") +CONST_STRING_DECL(kCFURLDataScheme, "data") +CONST_STRING_DECL(kCFURLFTPScheme, "ftp") +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED +CONST_STRING_DECL(kCFURLLocalhost, "localhost") +#endif +#endif #if DEBUG_URL_MEMORY_USAGE static uint numURLs = 0; // number of URLs allocated @@ -114,6 +126,7 @@ CF_INLINE void _setSchemeTypeInFlags(UInt32 *flags, UInt32 schemeType); // Other useful defines #define NET_LOCATION_MASK (HAS_HOST | HAS_USER | HAS_PASSWORD | HAS_PORT) #define RESOURCE_SPECIFIER_MASK (HAS_PARAMETERS | HAS_QUERY | HAS_FRAGMENT) +#define ALL_COMPONENTS_MASK (HAS_SCHEME | HAS_USER | HAS_PASSWORD | HAS_HOST | HAS_PORT | HAS_PATH | HAS_PARAMETERS | HAS_QUERY | HAS_FRAGMENT) // These flags can be compared for equality since these are all set once when the CFURL is created. // IS_CANONICAL_FILE_URL cannot be compared since we don't always create the URL string. // POSIX_AND_URL_PATHS_MATCH cannot be compared because it may not be set @@ -218,10 +231,28 @@ CF_INLINE void* _getResourceInfo ( const struct __CFURL* url ) } } +CF_INLINE uint8_t _countRanges(const struct __CFURL *url) { + if (url) { + uint8_t numberOfRanges = 0; + if (url->_flags & HAS_SCHEME) numberOfRanges++; + if (url->_flags & HAS_USER) numberOfRanges++; + if (url->_flags & HAS_PASSWORD) numberOfRanges++; + if (url->_flags & HAS_HOST) numberOfRanges++; + if (url->_flags & HAS_PORT) numberOfRanges++; + if (url->_flags & HAS_PATH) numberOfRanges++; + if (url->_flags & HAS_PARAMETERS) numberOfRanges++; + if (url->_flags & HAS_QUERY) numberOfRanges++; + if (url->_flags & HAS_FRAGMENT) numberOfRanges++; + return numberOfRanges; + } else { + return 0; + } +} + static void _CFURLAllocateExtraDataspace( struct __CFURL* url ) { if ( url && ! url->_extra ) - { struct _CFURLAdditionalData* extra = (struct _CFURLAdditionalData*) CFAllocatorAllocate( CFGetAllocator( url), sizeof( struct _CFURLAdditionalData ), __kCFAllocatorGCScannedMemory); + { struct _CFURLAdditionalData* extra = (struct _CFURLAdditionalData*) CFAllocatorAllocate( CFGetAllocator( url), sizeof( struct _CFURLAdditionalData ), 0); extra->_reserved = _getReserved( url ); extra->_additionalDataFlags = _getAdditionalDataFlags(url); @@ -244,7 +275,7 @@ CF_INLINE void _setReserved ( struct __CFURL* url, void* reserved ) _CFURLAllocateExtraDataspace( url ); if ( url->_extra ) - __CFAssignWithWriteBarrier((void **)&url->_extra->_reserved, reserved); + *((void **)&url->_extra->_reserved) = reserved; } } @@ -285,7 +316,6 @@ CF_INLINE void _setAdditionalDataFlags(struct __CFURL* url, UInt32 additionalDat CF_INLINE void _setResourceInfo ( struct __CFURL* url, void* resourceInfo ) { // Must be atomic - // Never a GC object if ( url && OSAtomicCompareAndSwapPtrBarrier( NULL, resourceInfo, &url->_resourceInfo )) { CFRetain( resourceInfo ); } @@ -298,20 +328,20 @@ CF_INLINE UInt32 _getSchemeTypeFromFlags(UInt32 flags) CF_INLINE void _setSchemeTypeInFlags(UInt32 *flags, UInt32 schemeType) { - CFAssert((schemeType >= kHasUncommonScheme) && (schemeType < kMaxScheme), __kCFLogAssertion, "%s(): Received bad schemeType %d", __PRETTY_FUNCTION__, schemeType); + CFAssert2((schemeType >= kHasUncommonScheme) && (schemeType < kMaxScheme), __kCFLogAssertion, "%s(): Received bad schemeType %ud", __PRETTY_FUNCTION__, (unsigned int)schemeType); *flags = (*flags & ~SCHEME_TYPE_MASK) + (schemeType << SCHEME_SHIFT); } static Boolean _pathHasFileIDPrefix(CFStringRef path); -static CFStringRef _resolveFileSystemPaths(CFStringRef relativePath, CFStringRef basePath, Boolean baseIsDir, CFURLPathStyle fsType, CFAllocatorRef alloc); +static CFStringRef _resolveFileSystemPaths(CFStringRef relativePath, CFStringRef basePath, Boolean baseIsDir, CFURLPathStyle fsType, CFAllocatorRef alloc) CF_RETURNS_RETAINED; static void _parseComponents(CFAllocatorRef alloc, CFStringRef string, CFURLRef baseURL, UInt32 *theFlags, CFRange *packedRanges, uint8_t *numberOfRanges); static CFRange _rangeForComponent(UInt32 flags, const CFRange *ranges, UInt32 compFlag); static CFRange _netLocationRange(UInt32 flags, const CFRange *ranges); static UInt32 _firstResourceSpecifierFlag(UInt32 flags); static void computeSanitizedString(CFURLRef url); -static CFStringRef correctedComponent(CFStringRef component, UInt32 compFlag, CFStringEncoding enc); -static CFMutableStringRef resolveAbsoluteURLString(CFAllocatorRef alloc, CFStringRef relString, UInt32 relFlags, const CFRange *relRanges, CFStringRef baseString, UInt32 baseFlags, const CFRange *baseRanges); -static CFStringRef _resolvedPath(UniChar *pathStr, UniChar *end, UniChar pathDelimiter, Boolean stripLeadingDotDots, Boolean stripTrailingDelimiter, CFAllocatorRef alloc); +static CFStringRef correctedComponent(CFStringRef component, UInt32 compFlag, CFStringEncoding enc) CF_RETURNS_RETAINED; +static CFMutableStringRef resolveAbsoluteURLString(CFAllocatorRef alloc, CFStringRef relString, UInt32 relFlags, const CFRange *relRanges, CFStringRef baseString, UInt32 baseFlags, const CFRange *baseRanges) CF_RETURNS_RETAINED; +static CFStringRef _resolvedPath(UniChar *pathStr, UniChar *end, UniChar pathDelimiter, Boolean stripLeadingDotDots, Boolean stripTrailingDelimiter, CFAllocatorRef alloc) CF_RETURNS_RETAINED; enum { @@ -1577,7 +1607,7 @@ static void __CFURLDeallocate(CFTypeRef cf) { #if DEBUG_URL_MEMORY_USAGE numDealloced ++; #endif - if (url->_string) CFRelease(url->_string); // GC: 3879914 + if (url->_string) CFRelease(url->_string); if (url->_base) CFRelease(url->_base); CFStringRef sanitizedString = _getSanitizedString(url); if (sanitizedString) CFRelease(sanitizedString); @@ -1609,7 +1639,7 @@ CF_INLINE CFURLRef _CFURLFromNSURL(CFURLRef url) { } CFTypeID CFURLGetTypeID(void) { - static dispatch_once_t initOnce = 0; + static dispatch_once_t initOnce; dispatch_once(&initOnce, ^{ __kCFURLTypeID = _CFRuntimeRegisterClass(&__CFURLClass); }); return __kCFURLTypeID; } @@ -1785,7 +1815,7 @@ static void computeSanitizedString(CFURLRef url) { ((struct __CFURL *)url)->_flags |= ORIGINAL_AND_URL_STRINGS_MATCH; } } - if (sanitizedString && mark != string_length) { + if (sanitizedString && (mark < string_length)) { if (useCString) { __CFStringAppendBytes(sanitizedString, (char *)&(cstring[mark]), string_length - mark, kCFStringEncodingISOLatin1); } else { @@ -1954,57 +1984,6 @@ static Boolean _CFStringIsLegalURLString(CFStringRef string) { return ( result ); } -CF_SWIFT_EXPORT Boolean _CFURLInitWithURLString(CFURLRef url, CFStringRef string, Boolean checkForLegalCharacters, CFURLRef baseURL) { - struct __CFURL *result = (struct __CFURL *)url; - if ( checkForLegalCharacters && !_CFStringIsLegalURLString(string)) { - return false; - } - // determine if URL is absolute (i.e. it has a scheme and the scheme characters are valid - CFStringInlineBuffer stringBuffer; - CFIndex length = CFStringGetLength(string); - CFIndex idx = 0; - Boolean isAbsolute = false; - Boolean schemeCharsValid = true; - - CFStringInitInlineBuffer(string, &stringBuffer, CFRangeMake(0, length)); - // the first character of the scheme must be ALPHA - if ( (length > 0) && isALPHA(__CFStringGetCharacterFromInlineBufferQuick(&stringBuffer, 0)) ) { - // stop looking if we hit the end of the string, find a colon (isAbsolute), or find a non-scheme character (schemeCharsValid) - while (idx < length && schemeCharsValid && !isAbsolute) { - CFIndex rangeLength = (idx + __kCFStringInlineBufferLength <= length) ? __kCFStringInlineBufferLength : length - idx; - const UniChar *chPtr = CFStringGetCharactersPtrFromInlineBuffer(&stringBuffer, CFRangeMake(idx, rangeLength)); - for (CFIndex i = 0; i < rangeLength; ++i, ++chPtr) { - if ( *chPtr == ':' ) { - isAbsolute = true; - break; - } - if ( !scheme_valid(*chPtr) ) { - schemeCharsValid = false; - break; - } - } - if ( isAbsolute ) { - baseURL = NULL; - break; - } - idx += rangeLength; - } - } - - // get the range flags, ranges and range count from the parser - uint8_t numberOfRanges; - UInt32 flags = 0; - CFRange packedRanges[MAX_COMPONENTS]; - - _parseComponents(kCFAllocatorSystemDefault, string, baseURL, &flags, packedRanges, &numberOfRanges); - result->_flags = flags; - memcpy(result->_ranges, packedRanges, sizeof(CFRange) * numberOfRanges); - result->_string = CFStringCreateCopy(kCFAllocatorSystemDefault, string); - result->_base = baseURL ? CFURLCopyAbsoluteURL(baseURL) : NULL; - - return true; -} - /* initializes a URL object with a URL string */ static CFURLRef _CFURLCreateWithURLString(CFAllocatorRef allocator, CFStringRef string, Boolean checkForLegalCharacters, CFURLRef baseURL) { @@ -2082,122 +2061,24 @@ static CFURLRef _CFURLCreateWithURLString(CFAllocatorRef allocator, CFStringRef return ( result ); } -CF_SWIFT_EXPORT void _CFURLInitWithFileSystemPathRelativeToBase(CFURLRef url, CFStringRef fileSystemPath, CFURLPathStyle pathStyle, Boolean isDirectory, CFURLRef baseURL) { - struct __CFURL *result = (struct __CFURL *)url; - CFAssert(pathStyle == kCFURLPOSIXPathStyle || pathStyle == kCFURLWindowsPathStyle, __kCFLogAssertion, "%s(): encountered unknown path style %d", __PRETTY_FUNCTION__, pathStyle); - CFStringRef urlString = NULL; - Boolean isAbsolute; - Boolean isFileReferencePath = false; - Boolean posixAndUrlPathsMatch = false; - Boolean releaseBaseURL = false; - CFIndex len = CFStringGetLength(fileSystemPath); - const CFAllocatorRef allocator = kCFAllocatorSystemDefault; - - CFAssert(len > 0, __kCFLogAssertion, "%s(): fileSystemPath length must be non-empty", __PRETTY_FUNCTION__); - - // Determine if fileSystemPath is an absolute path. If kCFURLPOSIXPathStyle, determine if it is a file reference path. - // Then, convert the fileSystemPath to a urlString. The urlString returned will have a pathDelim at the end if isDirectory - // was true and no pathDelim if isDirectory was false (unless the urlPath is "/"). - // If isAbsolute, "file://" will be prepended to the urlString. - switch (pathStyle) { - case kCFURLPOSIXPathStyle: - isAbsolute = (len > 0 && CFStringGetCharacterAtIndex(fileSystemPath, 0) == '/'); - isFileReferencePath = _pathHasFileIDPrefix(fileSystemPath); - urlString = POSIXPathToURLPath(fileSystemPath, allocator, isDirectory, isAbsolute, &posixAndUrlPathsMatch); - break; - - - case kCFURLWindowsPathStyle: - { - // this is what _CFURLInitFSPath() did (with a small change to handle absolute paths that begin with a single backslash) - UniChar firstChar = 0 < len ? CFStringGetCharacterAtIndex(fileSystemPath, 0) : 0; - UniChar secondChar = 1 < len ? CFStringGetCharacterAtIndex(fileSystemPath, 1) : 0; - Boolean isDrive = isALPHA(firstChar) && (secondChar == ':' || secondChar == '|'); - - if ( isDrive) { - // A disk designator - isAbsolute = true; - urlString = WindowsPathToURLPath(fileSystemPath, allocator, isDirectory, isAbsolute); - } - else if ( firstChar == '\\' ) { - // Either a UNC name of any format (which always start with two backslash characters), or an absolute path which starts with a single backslash. - isAbsolute = true; - urlString = WindowsPathToURLPath(fileSystemPath, allocator, isDirectory, isAbsolute); - } - else if (firstChar == '/') { - // there's probably code that passes POSIX paths in but wrongly specifies kCFURLWindowsPathStyle. - pathStyle = kCFURLPOSIXPathStyle; - isAbsolute = true; - urlString = POSIXPathToURLPath(fileSystemPath, allocator, isDirectory, isAbsolute, &posixAndUrlPathsMatch); - } - else { - isAbsolute = false; - urlString = WindowsPathToURLPath(fileSystemPath, allocator, isDirectory, isAbsolute); - } - } - break; - } - - CFAssert(urlString != NULL, __kCFLogAssertion, "%s(): Encountered malformed file system URL %@", __PRETTY_FUNCTION__, urlString); - - if ( urlString ) { - if ( isAbsolute ) { - // if fileSystemPath is an absolute path, ignore baseURL (if provided) - baseURL = NULL; - } - else if ( baseURL == NULL ) { - // if fileSystemPath is a relative path and no baseURL is provided, use the current working directory - baseURL = _CFURLCreateCurrentDirectoryURL(allocator); - releaseBaseURL = true; - } - - // override isDirectory if the path is to root - if ( !isDirectory && (len == 1) && (CFStringGetCharacterAtIndex(urlString, 0) == '/') ) { - // Override isDirectory - isDirectory = true; - } - - result->_string = CFStringCreateCopy(allocator, urlString); - result->_base = baseURL ? CFURLCopyAbsoluteURL(baseURL) : NULL; - - // hard coded parse - if ( isAbsolute ) { - UInt32 flags = IS_DECOMPOSABLE | HAS_SCHEME | HAS_PATH | ORIGINAL_AND_URL_STRINGS_MATCH; - flags |= (isDirectory ? IS_DIRECTORY : 0); - if ( isFileReferencePath ) { - // if the URL is a file reference URL, don't set IS_CANONICAL_FILE_URL or POSIX_AND_URL_PATHS_MATCH - flags |= PATH_HAS_FILE_ID; - } - else { - // only posix style paths can be canonical because POSIXPathToURLPath() converts the string to file system representation - flags |= ((pathStyle == kCFURLPOSIXPathStyle) ? IS_CANONICAL_FILE_URL : 0); - flags |= (posixAndUrlPathsMatch ? POSIX_AND_URL_PATHS_MATCH : 0); - } - _setSchemeTypeInFlags(&flags, kHasFileScheme); - - if ( AddAuthorityToFileURL() ) { - result->_flags = flags | HAS_HOST; - result->_ranges[0] = CFRangeMake(0, 4); // scheme "file" - result->_ranges[1] = CFRangeMake(7, 9); // host "localhost" - result->_ranges[2] = CFRangeMake(16, CFStringGetLength(urlString)- 16); - } - else { - result->_flags = flags; - result->_ranges[0] = CFRangeMake(0, 4); // scheme "file" - result->_ranges[1] = CFRangeMake(7, CFStringGetLength(urlString)- 7); - } - } else { - result->_flags = (isDirectory ? IS_DIRECTORY : 0) | IS_DECOMPOSABLE | HAS_PATH | ORIGINAL_AND_URL_STRINGS_MATCH; - result->_ranges[0] = CFRangeMake(0, CFStringGetLength(result->_string)); - } - - if ( releaseBaseURL && baseURL ) { - CFRelease(baseURL); - } - - CFRelease(urlString); +Boolean _CFURLInitWithURLString(CFURLRef url, CFStringRef string, Boolean checkForLegalCharacters, _Nullable CFURLRef baseURL) { + CFAllocatorRef allocator = kCFAllocatorSystemDefault; + struct __CFURL *result = (struct __CFURL *)_CFURLCreateWithURLString(allocator, string, checkForLegalCharacters, baseURL); + if (result == NULL) return false; + struct __CFURL *container = (struct __CFURL *)url; + container->_flags = result->_flags; + container->_encoding = result->_encoding; + container->_string = result->_string; + container->_extra = result->_extra; + container->_resourceInfo = result->_resourceInfo; + container->_base = result->_base; + uint8_t numberOfRanges = _countRanges(result); + if (numberOfRanges > 0) { + memcpy(container->_ranges, result->_ranges, sizeof(CFRange) * numberOfRanges); } + CFAllocatorDeallocate(allocator, result); + return true; } /* initializes a URL object with a file system path */ @@ -2209,10 +2090,10 @@ static CFURLRef _CFURLCreateWithFileSystemPath(CFAllocatorRef allocator, CFStrin Boolean input_isDirectory = isDirectory; CFURLRef input_baseURL = baseURL ? CFRetain(baseURL) : NULL; #endif - CFAssert(fileSystemPath != NULL, __kCFLogAssertion, "%s(): NULL path string not permitted", __PRETTY_FUNCTION__); + CFAssert1(fileSystemPath != NULL, __kCFLogAssertion, "%s(): NULL path string not permitted", __PRETTY_FUNCTION__); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated" - CFAssert(pathStyle == kCFURLPOSIXPathStyle || pathStyle == kCFURLHFSPathStyle || pathStyle == kCFURLWindowsPathStyle, __kCFLogAssertion, "%s(): encountered unknown path style %d", __PRETTY_FUNCTION__, pathStyle); + CFAssert2(pathStyle == kCFURLPOSIXPathStyle || pathStyle == kCFURLHFSPathStyle || pathStyle == kCFURLWindowsPathStyle, __kCFLogAssertion, "%s(): encountered unknown path style %ld", __PRETTY_FUNCTION__, pathStyle); #pragma GCC diagnostic pop struct __CFURL *result = NULL; @@ -2267,7 +2148,7 @@ static CFURLRef _CFURLCreateWithFileSystemPath(CFAllocatorRef allocator, CFStrin break; } - CFAssert(urlString != NULL, __kCFLogAssertion, "%s(): Encountered malformed file system URL %@", __PRETTY_FUNCTION__, urlString); + CFAssert2(urlString != NULL, __kCFLogAssertion, "%s(): Encountered malformed file system URL %@", __PRETTY_FUNCTION__, urlString); if ( urlString ) { if ( isAbsolute ) { @@ -2436,6 +2317,53 @@ static CFURLRef _CFURLCreateWithFileSystemRepresentation(CFAllocatorRef allocato return ( result ); } +CFURLRef _CFURLCopyFileURL(CFURLRef url) +{ + struct __CFURL *result = NULL; + +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + // make sure we have a CFURL since this might be a subclassed NSURL + url = _CFURLFromNSURL(url); + __CFGenericValidateType(url, CFURLGetTypeID()); + + // fail if this has a baseURL or if it isn't a file URL + if ( (url->_base == NULL) && _CFURLHasFileURLScheme(url, NULL) ) { + CFAllocatorRef allocator = CFGetAllocator(url); + // get just the component flag bits + UInt32 flags = url->_flags & ALL_COMPONENTS_MASK; + // get the rangeCount -- the number of component flag bits set + CFIndex rangeCount = 0; + while ( flags != 0 ) { + if ( flags & 1 ) { + ++rangeCount; + } + flags >>= 1; + } + result = _CFURLAlloc(allocator, rangeCount); + if ( result ) { + // copy the URL fields from _flags to _ranges + result->_flags = url->_flags; + result->_encoding = url->_encoding; + result->_string = CFRetain(url->_string); // retain the _string + result->_base = NULL; // no _base to retain + result->_extra = NULL; // no _extra (unless setting the sanitizedString adds it) + if ( !(result->_flags & ORIGINAL_AND_URL_STRINGS_MATCH) ) { + // see if we need to set the sanitizedString and additionalDataFlags + CFStringRef sanitizedString = _getSanitizedString(url); + if ( sanitizedString ) { + _setSanitizedString(result, (CFMutableStringRef)sanitizedString); + _setAdditionalDataFlags(result, _getAdditionalDataFlags(url)); + } + } + // copy the ranges + memcpy(result->_ranges, url->_ranges, rangeCount * sizeof(CFRange)); + } + } +#endif + + return ( result ); +} + // encoding will be used both to interpret the bytes of URLBytes, and to interpret any percent-escapes within the bytes. CFURLRef CFURLCreateWithBytes(CFAllocatorRef allocator, const uint8_t *URLBytes, CFIndex length, CFStringEncoding encoding, CFURLRef baseURL) { CFStringRef urlString = CFStringCreateWithBytes(allocator, URLBytes, length, encoding, false); @@ -2483,89 +2411,23 @@ static CFURLRef _CFURLCreateWithArbitraryString(CFAllocatorRef allocator, CFStri return ( url ); } -CF_SWIFT_EXPORT Boolean _CFURLInitAbsoluteURLWithBytes(CFURLRef url, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, CFURLRef baseURL) { - struct __CFURL *result = (struct __CFURL *)url; - UInt32 absFlags = 0; - CFRange absRanges[MAX_COMPONENTS]; - uint8_t numberOfRanges; - CFStringRef absString = NULL; - Boolean absStringIsMutable = false; - CFStringRef relativeString; - const CFAllocatorRef alloc = kCFAllocatorSystemDefault; - - relativeString = CFStringCreateWithBytes(alloc, relativeURLBytes, length, encoding, false); - if ( relativeString != NULL ) { - if (!baseURL) { - absString = relativeString; - } else { - UniChar ch = 0; - if ( CFStringGetLength(relativeString) > 0 ) { - ch = CFStringGetCharacterAtIndex(relativeString, 0); - } - if (ch == '?' || ch == ';' || ch == '#') { - // Nothing but parameter + query + fragment; append to the baseURL string - CFStringRef baseString = baseURL->_string; - absString = CFStringCreateMutable(alloc, CFStringGetLength(baseString) + CFStringGetLength(relativeString)); - CFStringAppend((CFMutableStringRef)absString, baseString); - CFStringAppend((CFMutableStringRef)absString, relativeString); - absStringIsMutable = true; - } else { - UInt32 relFlags = 0; - CFRange relRanges[MAX_COMPONENTS]; - CFStringRef relString = NULL; - _parseComponents(alloc, relativeString, baseURL, &relFlags, relRanges, &numberOfRanges); - if (relFlags & HAS_SCHEME) { - CFStringRef baseScheme = CFURLCopyScheme(baseURL); - CFRange relSchemeRange = _rangeForComponent(relFlags, relRanges, HAS_SCHEME); - if (baseScheme && CFStringGetLength(baseScheme) == relSchemeRange.length && CFStringHasPrefix(relativeString, baseScheme)) { - relString = CFStringCreateWithSubstring(alloc, relativeString, CFRangeMake(relSchemeRange.length+1, CFStringGetLength(relativeString) - relSchemeRange.length - 1)); - relFlags = 0; - _parseComponents(alloc, relString, baseURL, &relFlags, relRanges, &numberOfRanges); - } else { - // Discard the base string; the relative string is absolute and we're not in the funky edge case where the schemes match - CFRetain(relativeString); - absString = relativeString; - } - if (baseScheme) CFRelease(baseScheme); - } else { - CFRetain(relativeString); - relString = relativeString; - } - if (!absString) { - absString = resolveAbsoluteURLString(alloc, relString, relFlags, relRanges, baseURL->_string, baseURL->_flags, baseURL->_ranges); - } - if (relString) CFRelease(relString); - } - CFRelease(relativeString); - } - } - Boolean success = false; - if ( absString ) { - _parseComponents(alloc, absString, NULL, &absFlags, absRanges, &numberOfRanges); - if (absFlags & HAS_PATH) { - CFRange pathRg = _rangeForComponent(absFlags, absRanges, HAS_PATH); - // This is expensive, but it allows us to reuse _resolvedPath. It should be cleaned up to get this allocation removed at some point. - REW - UniChar *buf = (UniChar *)CFAllocatorAllocate(alloc, sizeof(UniChar) * (pathRg.length + 1), 0); - CFStringRef newPath; - CFStringGetCharacters(absString, pathRg, buf); - buf[pathRg.length] = '\0'; - newPath = _resolvedPath(buf, buf + pathRg.length, '/', true, false, alloc); - if (CFStringGetLength(newPath) != pathRg.length) { - if (!absStringIsMutable) { - CFStringRef tmp = CFStringCreateMutableCopy(alloc, CFStringGetLength(absString), absString); - CFRelease(absString); - absString = tmp; - } - CFStringReplace((CFMutableStringRef)absString, pathRg, newPath); - } - CFRelease(newPath); - // Do not deallocate buf; newPath took ownership of it. - } - success = _CFURLInitWithURLString(result, absString, false, NULL); - CFRelease(absString); - result->_encoding = encoding; - } - return success; +Boolean _CFURLInitAbsoluteURLWithBytes(CFURLRef url, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, _Nullable CFURLRef baseURL) { + CFAllocatorRef allocator = kCFAllocatorSystemDefault; + struct __CFURL *result = (struct __CFURL *)CFURLCreateAbsoluteURLWithBytes(allocator, relativeURLBytes, length, encoding, baseURL, false); + if (result == NULL) return false; + struct __CFURL *container = (struct __CFURL *)url; + container->_flags = result->_flags; + container->_encoding = result->_encoding; + container->_string = result->_string; + container->_extra = result->_extra; + container->_resourceInfo = result->_resourceInfo; + container->_base = result->_base; + uint8_t numberOfRanges = _countRanges(result); + if (numberOfRanges > 0) { + memcpy(container->_ranges, result->_ranges, sizeof(CFRange) * numberOfRanges); + } + CFAllocatorDeallocate(allocator, result); + return true; } CFURLRef CFURLCreateAbsoluteURLWithBytes(CFAllocatorRef alloc, const UInt8 *relativeURLBytes, CFIndex length, CFStringEncoding encoding, CFURLRef baseURL, Boolean useCompatibilityMode) { @@ -2956,7 +2818,7 @@ CFURLRef CFURLCopyAbsoluteURL(CFURLRef relativeURL) { Boolean filePathURLCreated = false; #endif - CFAssert(relativeURL != NULL, __kCFLogAssertion, "%s(): Cannot create an absolute URL from a NULL relative URL", __PRETTY_FUNCTION__); + CFAssert1(relativeURL != NULL, __kCFLogAssertion, "%s(): Cannot create an absolute URL from a NULL relative URL", __PRETTY_FUNCTION__); if (CF_IS_OBJC(CFURLGetTypeID(), relativeURL)) { anURL = (CFURLRef) CF_OBJC_CALLV((NSURL *)relativeURL, absoluteURL); if (anURL) CFRetain(anURL); @@ -3723,7 +3585,7 @@ static CFRange _getCharRangeInNonDecomposableURL(CFURLRef url, CFURLComponentTyp CFRange CFURLGetByteRangeForComponent(CFURLRef url, CFURLComponentType component, CFRange *rangeIncludingSeparators) { CFRange charRange, charRangeWithSeparators; CFRange byteRange; - CFAssert(component > 0 && component < 13, __kCFLogAssertion, "%s(): passed invalid component %d", __PRETTY_FUNCTION__, component); + CFAssert2(component > 0 && component < 13, __kCFLogAssertion, "%s(): passed invalid component %ld", __PRETTY_FUNCTION__, component); url = _CFURLFromNSURL(url); if (!(url->_flags & IS_DECOMPOSABLE)) { @@ -4418,6 +4280,24 @@ CF_EXPORT CFURLRef CFURLCreateWithFileSystemPathRelativeToBase(CFAllocatorRef al return ( result ); } +void _CFURLInitWithFileSystemPathRelativeToBase(CFURLRef url, CFStringRef fileSystemPath, CFURLPathStyle pathStyle, Boolean isDirectory, _Nullable CFURLRef baseURL) { + CFAllocatorRef allocator = kCFAllocatorSystemDefault; + struct __CFURL *result = (struct __CFURL *)CFURLCreateWithFileSystemPathRelativeToBase(allocator, fileSystemPath, pathStyle, isDirectory, baseURL); + if (result == NULL) return; + struct __CFURL *container = (struct __CFURL *)url; + container->_flags = result->_flags; + container->_encoding = result->_encoding; + container->_string = result->_string; + container->_extra = result->_extra; + container->_resourceInfo = result->_resourceInfo; + container->_base = result->_base; + uint8_t numberOfRanges = _countRanges(result); + if (numberOfRanges > 0) { + memcpy(container->_ranges, result->_ranges, sizeof(CFRange) * numberOfRanges); + } + CFAllocatorDeallocate(allocator, result); +} + static Boolean _pathHasFileIDPrefix( CFStringRef path ) { // path is not NULL, path has prefix "/.file/" and has at least one character following the prefix. @@ -4432,7 +4312,7 @@ static Boolean _pathHasFileIDPrefix( CFStringRef path ) CF_EXPORT CFStringRef CFURLCopyFileSystemPath(CFURLRef anURL, CFURLPathStyle pathStyle) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated" - CFAssert(pathStyle == kCFURLPOSIXPathStyle || pathStyle == kCFURLHFSPathStyle || pathStyle == kCFURLWindowsPathStyle, __kCFLogAssertion, "%s(): Encountered unknown path style %d", __PRETTY_FUNCTION__, pathStyle); + CFAssert2(pathStyle == kCFURLPOSIXPathStyle || pathStyle == kCFURLHFSPathStyle || pathStyle == kCFURLWindowsPathStyle, __kCFLogAssertion, "%s(): Encountered unknown path style %ld", __PRETTY_FUNCTION__, pathStyle); #pragma GCC diagnostic pop CFStringRef result = NULL; @@ -4497,7 +4377,7 @@ CFStringRef CFURLCreateStringWithFileSystemPath(CFAllocatorRef allocator, CFURLR relPath = URLPathToWindowsPath(urlPath, allocator, enc); break; default: - CFAssert(true, __kCFLogAssertion, "%s(): Received unknown path type %d", __PRETTY_FUNCTION__, fsType); + CFAssert2(true, __kCFLogAssertion, "%s(): Received unknown path type %ld", __PRETTY_FUNCTION__, fsType); } CFRelease(urlPath); } @@ -4736,16 +4616,22 @@ CFStringRef CFURLCopyPathExtension(CFURLRef url) { CFStringRef ext = NULL; if (lastPathComp) { - CFRange rg = CFStringFind(lastPathComp, CFSTR("."), kCFCompareBackwards); - if (rg.location != kCFNotFound) { - rg.location ++; - rg.length = CFStringGetLength(lastPathComp) - rg.location; - if (rg.length > 0) { - ext = CFStringCreateWithSubstring(CFGetAllocator(url), lastPathComp, rg); - } else { + CFRange rg; + _CFGetPathExtensionRangesFromPathComponent(lastPathComp, &rg, NULL); + if ( rg.location != kCFNotFound ) { + // return the extension + ext = CFStringCreateWithSubstring(CFGetAllocator(url), lastPathComp, rg); + } +#if 0 + // NOTE: The implementation before we switched to _CFGetPathExtensionRangesFromPathComponent + // returned an empty string if the last character is a period. That is not a valid extension. + else { + CFIndex lastPathCompLen = CFStringGetLength(lastPathComp); + if ( lastPathCompLen && CFStringGetCharacterAtIndex(lastPathComp, lastPathCompLen - 1) == '.' ) { ext = (CFStringRef)CFRetain(CFSTR("")); } } +#endif CFRelease(lastPathComp); } return ext; @@ -4755,7 +4641,7 @@ CFURLRef CFURLCreateCopyAppendingPathComponent(CFAllocatorRef allocator, CFURLRe CFURLRef result = NULL; url = _CFURLFromNSURL(url); __CFGenericValidateType(url, CFURLGetTypeID()); - CFAssert(pathComponent != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL component to append", __PRETTY_FUNCTION__); + CFAssert1(pathComponent != NULL, __kCFLogAssertion, "%s(): Cannot be called with a NULL component to append", __PRETTY_FUNCTION__); Boolean filePathURLCreated = false; #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED @@ -4811,7 +4697,7 @@ CFURLRef CFURLCreateCopyDeletingLastPathComponent(CFAllocatorRef allocator, CFUR Boolean appendDotDot = false; url = _CFURLFromNSURL(url); - CFAssert(url != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); + CFAssert1(url != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); __CFGenericValidateType(url, CFURLGetTypeID()); Boolean filePathURLCreated = false; @@ -4882,54 +4768,61 @@ CFURLRef CFURLCreateCopyDeletingLastPathComponent(CFAllocatorRef allocator, CFUR } CFURLRef CFURLCreateCopyAppendingPathExtension(CFAllocatorRef allocator, CFURLRef url, CFStringRef extension) { - CFMutableStringRef newString; CFURLRef result = NULL; - CFRange rg; - - CFAssert(url != NULL && extension != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); - url = _CFURLFromNSURL(url); - __CFGenericValidateType(url, CFURLGetTypeID()); - __CFGenericValidateType(extension, CFStringGetTypeID()); - - Boolean filePathURLCreated = false; -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED - if ( CFURLIsFileReferenceURL(url) ) { - // use a file path URL or fail - CFURLRef filePathURL = CFURLCreateFilePathURL(allocator, url, NULL); - if ( filePathURL ) { - filePathURLCreated = TRUE; - url = filePathURL; - } - else { - return NULL; - } + if ( CFStringGetLength(extension) == 0 ) { + result = CFRetain(url); } + else { + CFMutableStringRef newString; + CFRange rg; + // NOTE: The implementation before we switched to _CFGetPathExtensionRangesFromPathComponent allowed any string to be appended as an extension. The _CFExtensionIsValidToAppend check only allows valid extensions to be appeneded. + if ( _CFExtensionIsValidToAppend(extension) ) { + CFAssert1(url != NULL && extension != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); + url = _CFURLFromNSURL(url); + __CFGenericValidateType(url, CFURLGetTypeID()); + __CFGenericValidateType(extension, CFStringGetTypeID()); + + Boolean filePathURLCreated = false; +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + if ( CFURLIsFileReferenceURL(url) ) { + // use a file path URL or fail + CFURLRef filePathURL = CFURLCreateFilePathURL(allocator, url, NULL); + if ( filePathURL ) { + filePathURLCreated = TRUE; + url = filePathURL; + } + else { + return NULL; + } + } #endif - - rg = _rangeOfLastPathComponent(url); - if (rg.location < 0) { - if ( filePathURLCreated ) { - CFRelease(url); - } - return NULL; // No path - } - - newString = CFStringCreateMutableCopy(allocator, 0, url->_string); - if ( newString ) { - CFStringInsert(newString, rg.location + rg.length, CFSTR(".")); + + rg = _rangeOfLastPathComponent(url); + if (rg.location == kCFNotFound) { + if ( filePathURLCreated ) { + CFRelease(url); + } + return NULL; // No path + } + + newString = CFStringCreateMutableCopy(allocator, 0, url->_string); + if ( newString ) { + CFStringInsert(newString, rg.location + rg.length, CFSTR(".")); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" - CFStringRef newExt = CFURLCreateStringByAddingPercentEscapes(allocator, extension, NULL, CFSTR(";?/"), url->_encoding); + CFStringRef newExt = CFURLCreateStringByAddingPercentEscapes(allocator, extension, NULL, CFSTR(";?/"), url->_encoding); #pragma GCC diagnostic pop - if ( newExt ) { - CFStringInsert(newString, rg.location + rg.length + 1, newExt); - CFRelease(newExt); - result = _CFURLCreateWithArbitraryString(allocator, newString, url->_base); + if ( newExt ) { + CFStringInsert(newString, rg.location + rg.length + 1, newExt); + CFRelease(newExt); + result = _CFURLCreateWithArbitraryString(allocator, newString, url->_base); + } + CFRelease(newString); + } + if ( filePathURLCreated ) { + CFRelease(url); + } } - CFRelease(newString); - } - if ( filePathURLCreated ) { - CFRelease(url); } return result; } @@ -4938,7 +4831,7 @@ CFURLRef CFURLCreateCopyDeletingPathExtension(CFAllocatorRef allocator, CFURLRef CFRange rg, dotRg; CFURLRef result; - CFAssert(url != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); + CFAssert1(url != NULL, __kCFLogAssertion, "%s(): NULL argument not allowed", __PRETTY_FUNCTION__); url = _CFURLFromNSURL(url); __CFGenericValidateType(url, CFURLGetTypeID()); @@ -4957,17 +4850,29 @@ CFURLRef CFURLCreateCopyDeletingPathExtension(CFAllocatorRef allocator, CFURLRef } #endif + CFStringRef lastPathComponent = NULL; rg = _rangeOfLastPathComponent(url); - if (rg.location < 0) { + if ( (rg.location == kCFNotFound) || ((lastPathComponent = CFStringCreateWithSubstring(allocator, url->_string, rg)) == NULL) ) { + // no last path component result = NULL; - } else if (rg.length && CFStringFindWithOptions(url->_string, CFSTR("."), rg, kCFCompareBackwards, &dotRg)) { - CFMutableStringRef newString = CFStringCreateMutableCopy(allocator, 0, url->_string); - dotRg.length = rg.location + rg.length - dotRg.location; - CFStringDelete(newString, dotRg); - result = _CFURLCreateWithArbitraryString(allocator, newString, url->_base); - CFRelease(newString); - } else { - result = (CFURLRef)CFRetain(url); + } + else { + // NOTE: The implementation before we switched to _CFGetPathExtensionRangesFromPathComponent deleted invalid extensions. + CFRange primaryExtRange; + _CFGetPathExtensionRangesFromPathComponent(lastPathComponent, &primaryExtRange, NULL); + if ( primaryExtRange.location != kCFNotFound ) { + CFMutableStringRef newString = CFStringCreateMutableCopy(allocator, 0, url->_string); + dotRg.location = rg.location + primaryExtRange.location - 1; + dotRg.length = primaryExtRange.length + 1; + CFStringDelete(newString, dotRg); + result = _CFURLCreateWithArbitraryString(allocator, newString, url->_base); + CFRelease(newString); + } + else { + // there is no extension to delete + result = (CFURLRef)CFRetain(url); + } + CFRelease(lastPathComponent); } if ( filePathURLCreated ) { CFRelease(url); @@ -5219,7 +5124,6 @@ CFURLRef CFURLCreateFilePathURL(CFAllocatorRef alloc, CFURLRef url, CFErrorRef * } return result; } - #endif diff --git a/CoreFoundation/URL.subproj/CFURL.h b/CoreFoundation/URL.subproj/CFURL.h index 676a11e107..d473136a7c 100644 --- a/CoreFoundation/URL.subproj/CFURL.h +++ b/CoreFoundation/URL.subproj/CFURL.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURL.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors */ #if !defined(__COREFOUNDATION_CFURL__) @@ -28,7 +23,7 @@ typedef CF_ENUM(CFIndex, CFURLPathStyle) { kCFURLHFSPathStyle CF_ENUM_DEPRECATED(10_0, 10_9, 2_0, 7_0), /* The use of kCFURLHFSPathStyle is deprecated. The Carbon File Manager, which uses HFS style paths, is deprecated. HFS style paths are unreliable because they can arbitrarily refer to multiple volumes if those volumes have identical volume names. You should instead use kCFURLPOSIXPathStyle wherever possible. */ kCFURLWindowsPathStyle }; - + typedef const struct CF_BRIDGED_TYPE(NSURL) __CFURL * CFURLRef; /* CFURLs are composed of two fundamental pieces - their string, and a */ @@ -65,7 +60,7 @@ CFURLRef CFURLCreateWithBytes(CFAllocatorRef allocator, const UInt8 *URLBytes, C CF_EXPORT CFDataRef CFURLCreateData(CFAllocatorRef allocator, CFURLRef url, CFStringEncoding encoding, Boolean escapeWhitespace); -/* Any escape sequences in URLString will be interpreted via UTF-8. */ +/* Any percent-escape sequences in URLString will be interpreted via UTF-8. URLString must be a valid URL string. */ CF_EXPORT CFURLRef CFURLCreateWithString(CFAllocatorRef allocator, CFStringRef URLString, CFURLRef baseURL); @@ -107,11 +102,11 @@ CFURLRef CFURLCreateFromFileSystemRepresentation(CFAllocatorRef allocator, const /* like a drive letter and colon for kCFURLWindowsPathStyle ) then the baseURL */ /* is ignored. */ CF_EXPORT -CFURLRef CFURLCreateWithFileSystemPathRelativeToBase(CFAllocatorRef allocator, CFStringRef filePath, CFURLPathStyle pathStyle, Boolean isDirectory, CFURLRef baseURL); +CFURLRef CFURLCreateWithFileSystemPathRelativeToBase(CFAllocatorRef allocator, CFStringRef filePath, CFURLPathStyle pathStyle, Boolean isDirectory, CFURLRef baseURL); CF_EXPORT CFURLRef CFURLCreateFromFileSystemRepresentationRelativeToBase(CFAllocatorRef allocator, const UInt8 *buffer, CFIndex bufLen, Boolean isDirectory, CFURLRef baseURL); - + /* Fills buffer with the file system's native representation of */ /* url's path. No more than maxBufLen bytes are written to buffer. */ /* The buffer should be at least the maximum path length for */ @@ -126,7 +121,7 @@ Boolean CFURLGetFileSystemRepresentation(CFURLRef url, Boolean resolveAgainstBas CF_EXPORT CFURLRef CFURLCopyAbsoluteURL(CFURLRef relativeURL); -/* Returns the URL's string. */ +/* Returns the URL's string. Percent-escape sequences are not removed. */ CF_EXPORT CFStringRef CFURLGetString(CFURLRef anURL); @@ -135,76 +130,74 @@ CF_EXPORT CFURLRef CFURLGetBaseURL(CFURLRef anURL); /* - All URLs can be broken into two pieces - the scheme (preceding the - first colon) and the resource specifier (following the first colon). - Most URLs are also "standard" URLs conforming to RFC 1808 (available - from www.w3c.org). This category includes URLs of the file, http, - https, and ftp schemes, to name a few. Standard URLs start the - resource specifier with two slashes ("//"), and can be broken into - four distinct pieces - the scheme, the net location, the path, and - further resource specifiers (typically an optional parameter, query, - and/or fragment). The net location appears immediately following - the two slashes and goes up to the next slash; it's format is - scheme-specific, but is usually composed of some or all of a username, - password, host name, and port. The path is a series of path components - separated by slashes; if the net location is present, the path always - begins with a slash. Standard URLs can be relative to another URL, - in which case at least the scheme and possibly other pieces as well - come from the base URL (see RFC 1808 for precise details when resolving - a relative URL against its base). The full URL is therefore - - "://" - - If a given CFURL can be decomposed (that is, conforms to RFC 1808), you - can ask for each of the four basic pieces (scheme, net location, path, - and resource specifer) separately, as well as for its base URL. The - basic pieces are returned with any percent escape sequences still in - place (although note that the scheme may not legally include any - percent escapes); this is to allow the caller to distinguish between - percent sequences that may have syntactic meaning if replaced by the - character being escaped (for instance, a '/' in a path component). - Since only the individual schemes know which characters are - syntactically significant, CFURL cannot safely replace any percent - escape sequences. However, you can use - CFURLCreateStringByReplacingPercentEscapes() to create a new string with - the percent escapes removed; see below. - - If a given CFURL can not be decomposed, you can ask for its scheme and its - resource specifier; asking it for its net location or path will return NULL. - - To get more refined information about the components of a decomposable - CFURL, you may ask for more specific pieces of the URL, expressed with - the percent escapes removed. The available functions are CFURLCopyHostName(), - CFURLGetPortNumber() (returns an Int32), CFURLCopyUserName(), - CFURLCopyPassword(), CFURLCopyQuery(), CFURLCopyParameters(), and - CFURLCopyFragment(). Because the parameters, query, and fragment of an - URL may contain scheme-specific syntaxes, these methods take a second - argument, giving a list of characters which should NOT be replaced if - percent escaped. For instance, the ftp parameter syntax gives simple - key-value pairs as "=;" Clearly if a key or value includes - either '=' or ';', it must be escaped to avoid corrupting the meaning of - the parameters, so the caller may request the parameter string as - - CFStringRef myParams = CFURLCopyParameters(ftpURL, CFSTR("=;%")); - - requesting that all percent escape sequences be replaced by the represented - characters, except for escaped '=', '%' or ';' characters. Pass the empty - string (CFSTR("")) to request that all percent escapes be replaced, or NULL - to request that none be. - */ +All URLs can be broken into two pieces - the scheme (preceding the +first colon) and the resource specifier (following the first colon). +Most URLs are also "standard" URLs conforming to RFC 1808 (available +from www.w3c.org). This category includes URLs of the file, http, +https, and ftp schemes, to name a few. Standard URLs start the +resource specifier with two slashes ("//"), and can be broken into +four distinct pieces - the scheme, the net location, the path, and +further resource specifiers (typically an optional parameter, query, +and/or fragment). The net location appears immediately following +the two slashes and goes up to the next slash; it's format is +scheme-specific, but is usually composed of some or all of a username, +password, host name, and port. The path is a series of path components +separated by slashes; if the net location is present, the path always +begins with a slash. Standard URLs can be relative to another URL, +in which case at least the scheme and possibly other pieces as well +come from the base URL (see RFC 1808 for precise details when resolving +a relative URL against its base). The full URL is therefore + + "://" + +If a given CFURL can be decomposed (that is, conforms to RFC 1808), you +can ask for each of the four basic pieces (scheme, net location, path, +and resource specifer) separately, as well as for its base URL. The +basic pieces are returned with any percent-escape sequences still in +place (although note that the scheme may not legally include any +percent-escapes); this is to allow the caller to distinguish between +percent-escape sequences that may have syntactic meaning if replaced by the +character being escaped (for instance, a '/' in a path component). +Since only the individual schemes know which characters are +syntactically significant, CFURL cannot safely replace any percent- +escape sequences. However, you can use +CFURLCreateStringByReplacingPercentEscapes() to create a new string with +the percent-escapes removed; see below. + +If a given CFURL can not be decomposed, you can ask for its scheme and its +resource specifier; asking it for its net location or path will return NULL. + +To get more refined information about the components of a decomposable +CFURL, you may ask for more specific pieces of the URL, expressed with +the percent-escapes removed. The available functions are CFURLCopyHostName(), +CFURLGetPortNumber() (returns an Int32), CFURLCopyUserName(), +CFURLCopyPassword(), CFURLCopyQuery(), CFURLCopyParameters(), and +CFURLCopyFragment(). Because the parameters, query, and fragment of an +URL may contain scheme-specific syntaxes, these methods take a second +argument, giving a list of characters which should NOT be replaced if +percent-escaped. For instance, the ftp parameter syntax gives simple +key-value pairs as "=;" Clearly if a key or value includes +either '=' or ';', it must be escaped to avoid corrupting the meaning of +the parameters, so the caller may request the parameter string as + +CFStringRef myParams = CFURLCopyParameters(ftpURL, CFSTR("=;%")); + +requesting that all percent-escape sequences be replaced by the represented +characters, except for escaped '=', '%' or ';' characters. Pass the empty +string (CFSTR("")) to request that all percent-escapes be replaced, or NULL +to request that none be. +*/ /* Returns true if anURL conforms to RFC 1808 */ CF_EXPORT -Boolean CFURLCanBeDecomposed(CFURLRef anURL); - -/* The next several methods leave any percent escape sequences intact */ +Boolean CFURLCanBeDecomposed(CFURLRef anURL); CF_EXPORT CFStringRef CFURLCopyScheme(CFURLRef anURL); -/* NULL if CFURLCanBeDecomposed(anURL) is false */ +/* Percent-escape sequences are not removed. NULL if CFURLCanBeDecomposed(anURL) is false */ CF_EXPORT -CFStringRef CFURLCopyNetLocation(CFURLRef anURL); +CFStringRef CFURLCopyNetLocation(CFURLRef anURL); /* NULL if CFURLCanBeDecomposed(anURL) is false; also does not resolve the URL */ /* against its base. See also CFURLCopyAbsoluteURL(). Note that, strictly */ @@ -214,15 +207,17 @@ CFStringRef CFURLCopyNetLocation(CFURLRef anURL); /* the normal POSIX appearance); CFURLCopyStrictPath()'s return value omits any */ /* leading slash, and uses isAbsolute to report whether the URL's path is absolute. */ -/* CFURLCopyFileSystemPath() returns the URL's path as a file system path for the */ -/* given path style. All percent escape sequences are replaced. The URL is not */ -/* resolved against its base before computing the path. */ +/* Percent-escape sequences are not removed. */ CF_EXPORT CFStringRef CFURLCopyPath(CFURLRef anURL); +/* Percent-escape sequences are not removed. */ CF_EXPORT CFStringRef CFURLCopyStrictPath(CFURLRef anURL, Boolean *isAbsolute); +/* CFURLCopyFileSystemPath() returns the URL's path as a file system path for the */ +/* given path style. All percent-escape sequences are removed. The URL is not */ +/* resolved against its base before computing the path. */ CF_EXPORT CFStringRef CFURLCopyFileSystemPath(CFURLRef anURL, CFURLPathStyle pathStyle); @@ -233,24 +228,29 @@ Boolean CFURLHasDirectoryPath(CFURLRef anURL); /* Any additional resource specifiers after the path. For URLs */ /* that cannot be decomposed, this is everything except the scheme itself. */ +/* Percent-escape sequences are not removed. */ CF_EXPORT -CFStringRef CFURLCopyResourceSpecifier(CFURLRef anURL); +CFStringRef CFURLCopyResourceSpecifier(CFURLRef anURL); +/* Percent-escape sequences are removed. */ CF_EXPORT CFStringRef CFURLCopyHostName(CFURLRef anURL); CF_EXPORT SInt32 CFURLGetPortNumber(CFURLRef anURL); /* Returns -1 if no port number is specified */ +/* Percent-escape sequences are removed. */ CF_EXPORT CFStringRef CFURLCopyUserName(CFURLRef anURL); +/* Percent-escape sequences are removed. */ CF_EXPORT CFStringRef CFURLCopyPassword(CFURLRef anURL); -/* These remove all percent escape sequences except those for */ +/* CFURLCopyParameterString, CFURLCopyQueryString, and CFURLCopyFragment */ +/* remove all percent-escape sequences except those for */ /* characters in charactersToLeaveEscaped. If charactersToLeaveEscaped */ -/* is empty (""), all percent escape sequences are replaced by their */ +/* is empty (""), all percent-escape sequences are replaced by their */ /* corresponding characters. If charactersToLeaveEscaped is NULL, */ /* then no escape sequences are removed at all */ CF_EXPORT @@ -262,16 +262,14 @@ CFStringRef CFURLCopyQueryString(CFURLRef anURL, CFStringRef charactersToLeaveEs CF_EXPORT CFStringRef CFURLCopyFragment(CFURLRef anURL, CFStringRef charactersToLeaveEscaped); +/* Percent-escape sequences are removed. */ CF_EXPORT CFStringRef CFURLCopyLastPathComponent(CFURLRef url); +/* Percent-escape sequences are removed. */ CF_EXPORT CFStringRef CFURLCopyPathExtension(CFURLRef url); -/* These functions all treat the base URL of the supplied url as */ -/* invariant. In other words, the URL returned will always have */ -/* the same base as the URL supplied as an argument. */ - CF_EXPORT CFURLRef CFURLCreateCopyAppendingPathComponent(CFAllocatorRef allocator, CFURLRef url, CFStringRef pathComponent, Boolean isDirectory); @@ -287,111 +285,111 @@ CFURLRef CFURLCreateCopyDeletingPathExtension(CFAllocatorRef allocator, CFURLRef /* Fills buffer with the bytes for url, returning the number of bytes */ /* filled. If buffer is of insufficient size, returns -1 and no bytes */ /* are placed in buffer. If buffer is NULL, the needed length is */ -/* computed and returned. The returned bytes are the original bytes */ +/* computed and returned. The returned bytes are the original bytes */ /* from which the URL was created; if the URL was created from a */ /* string, the bytes will be the bytes of the string encoded via UTF-8 */ CF_EXPORT CFIndex CFURLGetBytes(CFURLRef url, UInt8 *buffer, CFIndex bufferLength); typedef CF_ENUM(CFIndex, CFURLComponentType) { - kCFURLComponentScheme = 1, - kCFURLComponentNetLocation = 2, - kCFURLComponentPath = 3, - kCFURLComponentResourceSpecifier = 4, - - kCFURLComponentUser = 5, - kCFURLComponentPassword = 6, - kCFURLComponentUserInfo = 7, - kCFURLComponentHost = 8, - kCFURLComponentPort = 9, - kCFURLComponentParameterString = 10, - kCFURLComponentQuery = 11, - kCFURLComponentFragment = 12 + kCFURLComponentScheme = 1, + kCFURLComponentNetLocation = 2, + kCFURLComponentPath = 3, + kCFURLComponentResourceSpecifier = 4, + + kCFURLComponentUser = 5, + kCFURLComponentPassword = 6, + kCFURLComponentUserInfo = 7, + kCFURLComponentHost = 8, + kCFURLComponentPort = 9, + kCFURLComponentParameterString = 10, + kCFURLComponentQuery = 11, + kCFURLComponentFragment = 12 }; - -/* - Gets the range of the requested component in the bytes of url, as - returned by CFURLGetBytes(). This range is only good for use in the - bytes returned by CFURLGetBytes! - - If non-NULL, rangeIncludingSeparators gives the range of component - including the sequences that separate component from the previous and - next components. If there is no previous or next component, that end of - rangeIncludingSeparators will match the range of the component itself. - If url does not contain the given component type, (kCFNotFound, 0) is - returned, and rangeIncludingSeparators is set to the location where the - component would be inserted. Some examples - - - For the URL http://www.apple.com/hotnews/ - - Component returned range rangeIncludingSeparators - scheme (0, 4) (0, 7) - net location (7, 13) (4, 16) - path (20, 9) (20, 9) - resource specifier (kCFNotFound, 0) (29, 0) - user (kCFNotFound, 0) (7, 0) - password (kCFNotFound, 0) (7, 0) - user info (kCFNotFound, 0) (7, 0) - host (7, 13) (4, 16) - port (kCFNotFound, 0) (20, 0) - parameter (kCFNotFound, 0) (29, 0) - query (kCFNotFound, 0) (29, 0) - fragment (kCFNotFound, 0) (29, 0) - - - For the URL ./relPath/file.html#fragment - - Component returned range rangeIncludingSeparators - scheme (kCFNotFound, 0) (0, 0) - net location (kCFNotFound, 0) (0, 0) - path (0, 19) (0, 20) - resource specifier (20, 8) (19, 9) - user (kCFNotFound, 0) (0, 0) - password (kCFNotFound, 0) (0, 0) - user info (kCFNotFound, 0) (0, 0) - host (kCFNotFound, 0) (0, 0) - port (kCFNotFound, 0) (0, 0) - parameter (kCFNotFound, 0) (19, 0) - query (kCFNotFound, 0) (19, 0) - fragment (20, 8) (19, 9) - - For the URL scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - - Component returned range rangeIncludingSeparators - scheme (0, 6) (0, 9) - net location (9, 16) (6, 19) - path (25, 21) (25, 22) - resource specifier (47, 21) (46, 22) - user (9, 4) (6, 8) - password (14, 4) (13, 6) - user info (9, 9) (6, 13) - host (19, 4) (18, 6) - port (24, 1) (23, 2) - parameter (47, 6) (46, 8) - query (54, 5) (53, 7) - fragment (60, 8) (59, 9) - */ +/* +Gets the range of the requested component in the bytes of url, as +returned by CFURLGetBytes(). This range is only good for use in the +bytes returned by CFURLGetBytes! + +If non-NULL, rangeIncludingSeparators gives the range of component +including the sequences that separate component from the previous and +next components. If there is no previous or next component, that end of +rangeIncludingSeparators will match the range of the component itself. +If url does not contain the given component type, (kCFNotFound, 0) is +returned, and rangeIncludingSeparators is set to the location where the +component would be inserted. Some examples - + +For the URL http://www.apple.com/hotnews/ + +Component returned range rangeIncludingSeparators +scheme (0, 4) (0, 7) +net location (7, 13) (4, 16) +path (20, 9) (20, 9) +resource specifier (kCFNotFound, 0) (29, 0) +user (kCFNotFound, 0) (7, 0) +password (kCFNotFound, 0) (7, 0) +user info (kCFNotFound, 0) (7, 0) +host (7, 13) (4, 16) +port (kCFNotFound, 0) (20, 0) +parameter (kCFNotFound, 0) (29, 0) +query (kCFNotFound, 0) (29, 0) +fragment (kCFNotFound, 0) (29, 0) + + +For the URL ./relPath/file.html#fragment + +Component returned range rangeIncludingSeparators +scheme (kCFNotFound, 0) (0, 0) +net location (kCFNotFound, 0) (0, 0) +path (0, 19) (0, 20) +resource specifier (20, 8) (19, 9) +user (kCFNotFound, 0) (0, 0) +password (kCFNotFound, 0) (0, 0) +user info (kCFNotFound, 0) (0, 0) +host (kCFNotFound, 0) (0, 0) +port (kCFNotFound, 0) (0, 0) +parameter (kCFNotFound, 0) (19, 0) +query (kCFNotFound, 0) (19, 0) +fragment (20, 8) (19, 9) + + +For the URL scheme://user:pass@host:1/path/path2/file.html;params?query#fragment + +Component returned range rangeIncludingSeparators +scheme (0, 6) (0, 9) +net location (9, 16) (6, 19) +path (25, 21) (25, 22) +resource specifier (47, 21) (46, 22) +user (9, 4) (6, 8) +password (14, 4) (13, 6) +user info (9, 9) (6, 13) +host (19, 4) (18, 6) +port (24, 1) (23, 2) +parameter (47, 6) (46, 8) +query (54, 5) (53, 7) +fragment (60, 8) (59, 9) +*/ CF_EXPORT CFRange CFURLGetByteRangeForComponent(CFURLRef url, CFURLComponentType component, CFRange *rangeIncludingSeparators); -/* Returns a string with any percent escape sequences that do NOT */ +/* Returns a string with any percent-escape sequences that do NOT */ /* correspond to characters in charactersToLeaveEscaped with their */ -/* equivalent. Returns NULL on failure (if an invalid percent sequence */ +/* equivalent. Returns NULL on failure (if an invalid percent-escape sequence */ /* is encountered), or the original string (retained) if no characters */ -/* need to be replaced. Pass NULL to request that no percent escapes be */ -/* replaced, or the empty string (CFSTR("")) to request that all percent */ -/* escapes be replaced. Uses UTF8 to interpret percent escapes. */ +/* need to be replaced. Pass NULL to request that no percent-escapes be */ +/* replaced, or the empty string (CFSTR("")) to request that all percent- */ +/* escapes be replaced. Uses UTF8 to interpret percent-escapes. */ CF_EXPORT CFStringRef CFURLCreateStringByReplacingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveEscaped); -/* As above, but allows you to specify the encoding to use when interpreting percent escapes */ +/* As above, but allows you to specify the encoding to use when interpreting percent-escapes */ CF_EXPORT CFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding(CFAllocatorRef allocator, CFStringRef origString, CFStringRef charsToLeaveEscaped, CFStringEncoding encoding) CF_DEPRECATED(10_0, 10_11, 2_0, 9_0, "Use [NSString stringByRemovingPercentEncoding] or CFURLCreateStringByReplacingPercentEscapes() instead, which always uses the recommended UTF-8 encoding."); /* Creates a copy or originalString, replacing certain characters with */ -/* the equivalent percent escape sequence based on the encoding specified. */ -/* If the originalString does not need to be modified (no percent escape */ +/* the equivalent percent-escape sequence based on the encoding specified. */ +/* If the originalString does not need to be modified (no percent-escape */ /* sequences are missing), may retain and return originalString. */ /* If you are uncertain of the correct encoding, you should use UTF-8, */ /* which is the encoding designated by RFC 2396 as the correct encoding */ @@ -409,43 +407,44 @@ CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CF CF_IMPLICIT_BRIDGING_DISABLED /* - CFURLIsFileReferenceURL - - Returns whether the URL is a file reference URL. - - Parameters - url - The URL specifying the resource. + CFURLIsFileReferenceURL + + Returns whether the URL is a file reference URL. + + Parameters + url + The URL specifying the resource. */ CF_EXPORT Boolean CFURLIsFileReferenceURL(CFURLRef url) CF_AVAILABLE(10_9, 7_0); /* - CFURLCreateFileReferenceURL - - Returns a new file reference URL that refers to the same resource as a specified URL. - - Parameters - allocator - The memory allocator for creating the new URL. - url - The file URL specifying the resource. - error - On output when the result is NULL, the error that occurred. This parameter is optional; if you do not wish the error returned, pass NULL here. The caller is responsible for releasing a valid output error. - - Return Value - The new file reference URL, or NULL if an error occurs. - - Discussion - File reference URLs use a URL path syntax that identifies a file system object by reference, not by path. This form of file URL remains valid when the file system path of the URL’s underlying resource changes. An error will occur if the url parameter is not a file URL. File reference URLs cannot be created to file system objects which do not exist or are not reachable. In some areas of the file system hierarchy, file reference URLs cannot be generated to the leaf node of the URL path. A file reference URL's path should never be persistently stored because is not valid across system restarts, and across remounts of volumes -- if you want to create a persistent reference to a file system object, use a bookmark (see CFURLCreateBookmarkData). If this function returns NULL, the optional error is populated. This function is currently applicable only to URLs for file system resources. - Symbol is present in iOS 4, but performs no operation. + CFURLCreateFileReferenceURL + + Returns a new file reference URL that refers to the same resource as a specified URL. + + Parameters + allocator + The memory allocator for creating the new URL. + url + The file URL specifying the resource. + error + On output when the result is NULL, the error that occurred. This parameter is optional; if you do not wish the error returned, pass NULL here. The caller is responsible for releasing a valid output error. + + Return Value + The new file reference URL, or NULL if an error occurs. + + Discussion + File reference URLs use a URL path syntax that identifies a file system object by reference, not by path. This form of file URL remains valid when the file system path of the URL’s underlying resource changes. An error will occur if the url parameter is not a file URL. File reference URLs cannot be created to file system objects which do not exist or are not reachable. In some areas of the file system hierarchy, file reference URLs cannot be generated to the leaf node of the URL path. A file reference URL's path should never be persistently stored because is not valid across system restarts, and across remounts of volumes -- if you want to create a persistent reference to a file system object, use a bookmark (see CFURLCreateBookmarkData). If this function returns NULL, the optional error is populated. This function is currently applicable only to URLs for file system resources. + Symbol is present in iOS 4, but performs no operation. */ CF_EXPORT CFURLRef CFURLCreateFileReferenceURL(CFAllocatorRef allocator, CFURLRef url, CFErrorRef *error) CF_AVAILABLE(10_6, 4_0); + /* CFURLCreateFilePathURL - + Returns a new file path URL that refers to the same resource as a specified URL. Parameters @@ -738,7 +737,7 @@ const CFStringRef kCFURLContentModificationDateKey CF_AVAILABLE(10_6, 4_0); CF_EXPORT const CFStringRef kCFURLAttributeModificationDateKey CF_AVAILABLE(10_6, 4_0); - /* The time the resource's attributes were last modified (Read-write, value type CFDate) */ + /* The time the resource's attributes were last modified (Read-only, value type CFDate) */ CF_EXPORT const CFStringRef kCFURLLinkCountKey CF_AVAILABLE(10_6, 4_0); @@ -765,20 +764,20 @@ const CFStringRef kCFURLLabelNumberKey CF_AVAILABLE(10_6, 4_0); /* The label number assigned to the resource (Read-write, value type CFNumber) */ CF_EXPORT -const CFStringRef kCFURLLabelColorKey CF_AVAILABLE(10_6, 4_0); - /* The color of the assigned label (Currently not implemented, value type CGColorRef, must link with Application Services) */ +const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0)); + /* not implemented */ CF_EXPORT const CFStringRef kCFURLLocalizedLabelKey CF_AVAILABLE(10_6, 4_0); /* The user-visible label text (Read-only, value type CFString) */ CF_EXPORT -const CFStringRef kCFURLEffectiveIconKey CF_AVAILABLE(10_6, 4_0); - /* The icon normally displayed for the resource (Read-only, value type CGImageRef, must link with Application Services) */ +const CFStringRef kCFURLEffectiveIconKey API_DEPRECATED("Use NSURLEffectiveIconKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0)); + /* not implemented */ CF_EXPORT -const CFStringRef kCFURLCustomIconKey CF_AVAILABLE(10_6, 4_0); - /* The custom icon assigned to the resource, if any (Currently not implemented, value type CGImageRef, must link with Application Services) */ +const CFStringRef kCFURLCustomIconKey API_DEPRECATED("Use NSURLCustomIconKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0)); + /* not implemented */ CF_EXPORT const CFStringRef kCFURLFileResourceIdentifierKey CF_AVAILABLE(10_7, 5_0); @@ -820,6 +819,10 @@ CF_EXPORT const CFStringRef kCFURLPathKey CF_AVAILABLE(10_8, 6_0); /* the URL's path as a file system path (Read-only, value type CFString) */ +CF_EXPORT +const CFStringRef kCFURLCanonicalPathKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* the URL's path as a canonical absolute file system path (Read-only, value type CFString) */ + CF_EXPORT const CFStringRef kCFURLIsMountTriggerKey CF_AVAILABLE(10_7, 4_0); /* true if this URL is a file system trigger directory. Traversing or opening a file system trigger will cause an attempt to mount a file system on the trigger directory. (Read-only, value type CFBoolean) */ @@ -1029,6 +1032,30 @@ CF_EXPORT const CFStringRef kCFURLVolumeLocalizedNameKey CF_AVAILABLE(10_7, 5_0); /* The user-presentable name of the volume (Read-only, value type CFString) */ +CF_EXPORT +const CFStringRef kCFURLVolumeIsEncryptedKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume is encrypted. (Read-only, value type CFBoolean) */ + +CF_EXPORT +const CFStringRef kCFURLVolumeIsRootFileSystemKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume is the root filesystem. (Read-only, value type CFBoolean) */ + +CF_EXPORT +const CFStringRef kCFURLVolumeSupportsCompressionKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume supports transparent decompression of compressed files using decmpfs. (Read-only, value type CFBoolean) */ + +CF_EXPORT +const CFStringRef kCFURLVolumeSupportsFileCloningKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume supports clonefile(2) (Read-only, value type CFBoolean) */ + +CF_EXPORT +const CFStringRef kCFURLVolumeSupportsSwapRenamingKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume supports renamex_np(2)'s RENAME_SWAP option (Read-only, value type CFBoolean) */ + +CF_EXPORT +const CFStringRef kCFURLVolumeSupportsExclusiveRenamingKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* true if the volume supports renamex_np(2)'s RENAME_EXCL option (Read-only, value type CFBoolean) */ + /* UbiquitousItem Properties */ CF_EXPORT diff --git a/CoreFoundation/URL.subproj/CFURL.inc.h b/CoreFoundation/URL.subproj/CFURL.inc.h index 6bcd7d8b09..870a22faf8 100644 --- a/CoreFoundation/URL.subproj/CFURL.inc.h +++ b/CoreFoundation/URL.subproj/CFURL.inc.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURL.inc.h - Copyright (c) 2012 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2012-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Jim Luther/Chris Linn */ @@ -97,7 +92,7 @@ } } // optimization for https urls - else if (idx == 5 && characterArray[0] == 'h' && characterArray[1] == 't' && characterArray[2] == 't' && characterArray[3] == 'p' && characterArray[3] == 's') { + else if (idx == 5 && characterArray[0] == 'h' && characterArray[1] == 't' && characterArray[2] == 't' && characterArray[3] == 'p' && characterArray[4] == 's') { _setSchemeTypeInFlags(&flags, kHasHttpsScheme); } break; @@ -352,10 +347,11 @@ UniChar surrogatePair[2]; surrogatePair[0] = ch; surrogatePair[1] = characterArray[idx + 1]; - _appendPercentEscapesForCharacter(surrogatePair, true, encoding, *escapedString); - // we consumed 2 chararacters instead of 1 - *mark = idx + 2; - ++idx; + if ( _appendPercentEscapesForCharacter(surrogatePair, true, encoding, *escapedString) ) { + // we consumed 2 chararacters instead of 1 + *mark = idx + 2; + ++idx; + } } } } diff --git a/CoreFoundation/URL.subproj/CFURLAccess.c b/CoreFoundation/URL.subproj/CFURLAccess.c index eb8df01ce1..d78df24c85 100644 --- a/CoreFoundation/URL.subproj/CFURLAccess.c +++ b/CoreFoundation/URL.subproj/CFURLAccess.c @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURLAccess.c - Copyright (c) 1999 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1999-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Jim Luther/Chris Linn */ diff --git a/CoreFoundation/URL.subproj/CFURLAccess.h b/CoreFoundation/URL.subproj/CFURLAccess.h index ca8db54fa6..ce7c6db1fd 100644 --- a/CoreFoundation/URL.subproj/CFURLAccess.h +++ b/CoreFoundation/URL.subproj/CFURLAccess.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURLAccess.h - Copyright (c) 1998 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 1998-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors CFURLAccess is deprecated as of Mac OS X 10.9 and iOS 7.0. The suggested replacement for URLs with network schemes (http, https, ftp, data) are the NSURLSession or NSURLConnection classes. The suggested replacement for URLs with the file scheme are the foundation classes NSFileManager, NSFileHandle and NSURL, or the CoreFoundation classes CFStream and CFURL. */ diff --git a/CoreFoundation/URL.subproj/CFURLPriv.h b/CoreFoundation/URL.subproj/CFURLPriv.h index 44ae904f56..23a580e37f 100644 --- a/CoreFoundation/URL.subproj/CFURLPriv.h +++ b/CoreFoundation/URL.subproj/CFURLPriv.h @@ -1,15 +1,10 @@ -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See http://swift.org/LICENSE.txt for license information -// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// - - /* CFURLPriv.h - Copyright (c) 2008 - 2015 Apple Inc. and the Swift project authors + Copyright (c) 2008-2016, Apple Inc. and the Swift project authors + + Portions Copyright (c) 2014-2016 Apple Inc. and the Swift project authors + Licensed under Apache License v2.0 with Runtime Library Exception + See http://swift.org/LICENSE.txt for license information + See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors Responsibility: Jim Luther/Chris Linn */ @@ -22,8 +17,6 @@ #include #include #include -#if TARGET_OS_MAC || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) -#endif #include #if TARGET_OS_MAC #include @@ -336,19 +329,21 @@ CF_EXPORT const CFStringRef kCFURLUbiquitousItemContainerDisplayNameKey CF_AVAIL CF_EXPORT const CFStringRef kCFURLUbiquitousItemIsSharedKey; // true if the ubiquitous item is shared. (Read-only, value type boolean NSNumber) -CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemRoleKey CF_AVAILABLE(10_11, 9_0); // returns the current user's role for this shared item, or nil if not shared. (Read-only, value type NSString). Possible values below. +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemCurrentUserRoleKey CF_AVAILABLE(10_11, 9_0); // Replaced by kCFURLUbiquitousSharedItemCurrentUserRoleKey. CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemRoleOwner CF_AVAILABLE(10_11, 9_0); // the current user is the owner of this shared item. CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemRoleParticipant CF_AVAILABLE(10_11, 9_0); // the current user is a participant of this shared item. -CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemOwnerNameKey CF_DEPRECATED(10_11, 10_11, 9_0, 9_0); // returns the name of the owner of a shared item, or nil if the current user. (Read-only, value type NSString) - CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemOwnerNameComponentsKey CF_AVAILABLE(10_11, 9_0); // returns a NSPersonNameComponents, or nil if the current user. (Read-only, value type NSPersonNameComponents) +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemMostRecentEditorNameComponentsKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); // returns a NSPersonNameComponents for the most recent editro fo the file, or nil if the current user. (Read-only, value type NSPersonNameComponents) -CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsKey CF_AVAILABLE(10_11, 9_0); // returns the permissions for a participant of this shared item, or nil if not shared. (Read-only, value type NSString). Possible values below. -CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsReadOnly CF_AVAILABLE(10_11, 9_0); // participants are only allowed to read this item -CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsReadWrite CF_AVAILABLE(10_11, 9_0); // participants are allowed to both read and write this item +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemCurrentUserPermissionsKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); // returns the permissions for a participant of this shared item, or nil if not shared. (Read-only, value type NSString). Possible values below. +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsReadOnly API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); // participants are only allowed to read this item +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsReadWrite API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); // participants are allowed to both read and write this item // Deprecated. Will be removed. +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemRoleKey CF_AVAILABLE(10_11, 9_0); // Replaced by kCFURLUbiquitousSharedItemCurrentUserRoleKey. +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemOwnerNameKey CF_DEPRECATED(10_11, 10_11, 9_0, 9_0); // Replaced by kCFURLUbiquitousSharedItemOwnerNameComponentsKey. +CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemPermissionsKey CF_AVAILABLE(10_11, 9_0); // returns the permissions for a participant of this shared item, or nil if not shared. (Read-only, value type NSString). Possible values below. CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemReadOnlyPermissions CF_AVAILABLE(10_11, 9_0); CF_EXPORT const CFStringRef kCFURLUbiquitousSharedItemReadWritePermissions CF_AVAILABLE(10_11, 9_0); @@ -359,6 +354,9 @@ CF_EXPORT const CFStringRef kCFURLThumbnailKey CF_AVAILABLE(10_10, 8_0); // The values of thumbnails in the dictionary returned by NSURLThumbnailDictionaryKey CF_EXPORT const CFStringRef kCFThumbnail1024x1024SizeKey CF_AVAILABLE(10_10, 8_0); +// This private key is only for the use of CFURLPromises and the URL cache code in CoreServicesInternal +CF_EXPORT const CFStringRef _kCFURLPromisePhysicalURLKey API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)); + /* Some common boolean properties can be accessed as a bitfield @@ -454,84 +452,94 @@ Boolean _CFURLCopyResourcePropertyValuesAndFlags( CFURLRef url, CFURLFilePropert Volume property flags */ typedef CF_OPTIONS(unsigned long long, CFURLVolumePropertyFlags) { - kCFURLVolumeIsLocal = 0x1LL, // Local device (vs. network device) - kCFURLVolumeIsAutomount = 0x2LL, // Mounted by the automounter - kCFURLVolumeDontBrowse = 0x4LL, // Hidden from user browsing - kCFURLVolumeIsReadOnly = 0x8LL, // Mounted read-only - kCFURLVolumeIsQuarantined = 0x10LL, // Mounted with quarantine bit - kCFURLVolumeIsEjectable = 0x20LL, - kCFURLVolumeIsRemovable = 0x40LL, - kCFURLVolumeIsInternal = 0x80LL, - kCFURLVolumeIsExternal = 0x100LL, - kCFURLVolumeIsDiskImage = 0x200LL, - kCFURLVolumeIsFileVault = 0x400LL, - kCFURLVolumeIsLocaliDiskMirror CF_ENUM_DEPRECATED(10_6, 10_9, 4_0, 7_0) + kCFURLVolumeIsLocal = 0x1LL, // Local device (vs. network device) + kCFURLVolumeIsAutomount = 0x2LL, // Mounted by the automounter + kCFURLVolumeDontBrowse = 0x4LL, // Hidden from user browsing + kCFURLVolumeIsReadOnly = 0x8LL, // Mounted read-only + kCFURLVolumeIsQuarantined = 0x10LL, // Mounted with quarantine bit + kCFURLVolumeIsEjectable = 0x20LL, + kCFURLVolumeIsRemovable = 0x40LL, + kCFURLVolumeIsInternal = 0x80LL, + kCFURLVolumeIsExternal = 0x100LL, + kCFURLVolumeIsDiskImage = 0x200LL, + kCFURLVolumeIsFileVault = 0x400LL, + kCFURLVolumeIsLocaliDiskMirror CF_ENUM_DEPRECATED(10_6, 10_9, 4_0, 7_0) = 0x800LL, // Deprecated and scheduled for removal in 10.10/8.0 - there are no more iDisks - kCFURLVolumeIsiPod = 0x1000LL, - kCFURLVolumeIsiDisk CF_ENUM_DEPRECATED(10_6, 10_9, 4_0, 7_0) + kCFURLVolumeIsiPod = 0x1000LL, + kCFURLVolumeIsiDisk CF_ENUM_DEPRECATED(10_6, 10_9, 4_0, 7_0) = 0x2000LL, // Deprecated and scheduled for removal in 10.10/8.0 - there are no more iDisks - kCFURLVolumeIsCD = 0x4000LL, - kCFURLVolumeIsDVD = 0x8000LL, - kCFURLVolumeIsDeviceFileSystem = 0x10000LL, - kCFURLVolumeIsTimeMachine CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsCD = 0x4000LL, + kCFURLVolumeIsDVD = 0x8000LL, + kCFURLVolumeIsDeviceFileSystem = 0x10000LL, + kCFURLVolumeIsTimeMachine CF_ENUM_AVAILABLE_MAC(10_9) = 0x20000LL, - kCFURLVolumeIsAirport CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsAirport CF_ENUM_AVAILABLE_MAC(10_9) = 0x40000LL, - kCFURLVolumeIsVideoDisk CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsVideoDisk CF_ENUM_AVAILABLE_MAC(10_9) = 0x80000LL, - kCFURLVolumeIsDVDVideo CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsDVDVideo CF_ENUM_AVAILABLE_MAC(10_9) = 0x100000LL, - kCFURLVolumeIsBDVideo CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsBDVideo CF_ENUM_AVAILABLE_MAC(10_9) = 0x200000LL, - kCFURLVolumeIsMobileTimeMachine CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsMobileTimeMachine CF_ENUM_AVAILABLE_MAC(10_9) = 0x400000LL, - kCFURLVolumeIsNetworkOptical CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsNetworkOptical CF_ENUM_AVAILABLE_MAC(10_9) = 0x800000LL, - kCFURLVolumeIsBeingRepaired CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsBeingRepaired CF_ENUM_AVAILABLE_MAC(10_9) = 0x1000000LL, - kCFURLVolumeIsBeingUnmounted CF_ENUM_AVAILABLE_MAC(10_9) + kCFURLVolumeIsBeingUnmounted CF_ENUM_AVAILABLE_MAC(10_9) = 0x2000000LL, + kCFURLVolumeIsRootFileSystem CF_ENUM_AVAILABLE_MAC(10_11) + = 0x4000000LL, + kCFURLVolumeIsEncrypted CF_ENUM_AVAILABLE_MAC(10_11) + = 0x8000000LL, -// IMPORTANT: The values of the following flags must stay in sync with the -// VolumeCapabilities flags in CarbonCore (FileIDTreeStorage.h) - kCFURLVolumeSupportsPersistentIDs = 0x100000000LL, - kCFURLVolumeSupportsSearchFS = 0x200000000LL, - kCFURLVolumeSupportsExchange = 0x400000000LL, - // reserved 0x800000000LL, - kCFURLVolumeSupportsSymbolicLinks = 0x1000000000LL, - kCFURLVolumeSupportsDenyModes = 0x2000000000LL, - kCFURLVolumeSupportsCopyFile = 0x4000000000LL, - kCFURLVolumeSupportsReadDirAttr = 0x8000000000LL, - kCFURLVolumeSupportsJournaling = 0x10000000000LL, - kCFURLVolumeSupportsRename = 0x20000000000LL, - kCFURLVolumeSupportsFastStatFS = 0x40000000000LL, - kCFURLVolumeSupportsCaseSensitiveNames = 0x80000000000LL, - kCFURLVolumeSupportsCasePreservedNames = 0x100000000000LL, - kCFURLVolumeSupportsFLock = 0x200000000000LL, - kCFURLVolumeHasNoRootDirectoryTimes = 0x400000000000LL, - kCFURLVolumeSupportsExtendedSecurity = 0x800000000000LL, - kCFURLVolumeSupports2TBFileSize = 0x1000000000000LL, - kCFURLVolumeSupportsHardLinks = 0x2000000000000LL, - kCFURLVolumeSupportsMandatoryByteRangeLocks = 0x4000000000000LL, - kCFURLVolumeSupportsPathFromID = 0x8000000000000LL, - // reserved 0x10000000000000LL, - kCFURLVolumeIsJournaling = 0x20000000000000LL, - kCFURLVolumeSupportsSparseFiles = 0x40000000000000LL, - kCFURLVolumeSupportsZeroRuns = 0x80000000000000LL, - kCFURLVolumeSupportsVolumeSizes = 0x100000000000000LL, - kCFURLVolumeSupportsRemoteEvents = 0x200000000000000LL, - kCFURLVolumeSupportsHiddenFiles = 0x400000000000000LL, - kCFURLVolumeSupportsDecmpFSCompression = 0x800000000000000LL, - kCFURLVolumeHas64BitObjectIDs = 0x1000000000000000LL, - kCFURLVolumePropertyFlagsAll = 0xffffffffffffffffLL + // IMPORTANT: The values of the following flags must stay in sync with the + // VolumeCapabilities flags in CarbonCore (FileIDTreeStorage.h) + kCFURLVolumeSupportsPersistentIDs = 0x100000000LL, + kCFURLVolumeSupportsSearchFS = 0x200000000LL, + kCFURLVolumeSupportsExchange = 0x400000000LL, + // reserved 0x800000000LL, + kCFURLVolumeSupportsSymbolicLinks = 0x1000000000LL, + kCFURLVolumeSupportsDenyModes = 0x2000000000LL, + kCFURLVolumeSupportsCopyFile = 0x4000000000LL, + kCFURLVolumeSupportsReadDirAttr = 0x8000000000LL, + kCFURLVolumeSupportsJournaling = 0x10000000000LL, + kCFURLVolumeSupportsRename = 0x20000000000LL, + kCFURLVolumeSupportsFastStatFS = 0x40000000000LL, + kCFURLVolumeSupportsCaseSensitiveNames = 0x80000000000LL, + kCFURLVolumeSupportsCasePreservedNames = 0x100000000000LL, + kCFURLVolumeSupportsFLock = 0x200000000000LL, + kCFURLVolumeHasNoRootDirectoryTimes = 0x400000000000LL, + kCFURLVolumeSupportsExtendedSecurity = 0x800000000000LL, + kCFURLVolumeSupports2TBFileSize = 0x1000000000000LL, + kCFURLVolumeSupportsHardLinks = 0x2000000000000LL, + kCFURLVolumeSupportsMandatoryByteRangeLocks = 0x4000000000000LL, + kCFURLVolumeSupportsPathFromID = 0x8000000000000LL, + // reserved 0x10000000000000LL, + kCFURLVolumeIsJournaling = 0x20000000000000LL, + kCFURLVolumeSupportsSparseFiles = 0x40000000000000LL, + kCFURLVolumeSupportsZeroRuns = 0x80000000000000LL, + kCFURLVolumeSupportsVolumeSizes = 0x100000000000000LL, + kCFURLVolumeSupportsRemoteEvents = 0x200000000000000LL, + kCFURLVolumeSupportsHiddenFiles = 0x400000000000000LL, + kCFURLVolumeSupportsDecmpFSCompression = 0x800000000000000LL, + kCFURLVolumeHas64BitObjectIDs = 0x1000000000000000LL, + kCFURLVolumeSupportsFileCloning API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) + = 0x2000000000000000LL, + kCFURLVolumeSupportsSwapRenaming API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) + = 0x4000000000000000LL, + kCFURLVolumeSupportsExclusiveRenaming API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) + = 0x8000000000000000LL, + kCFURLVolumePropertyFlagsAll = 0xffffffffffffffffLL }; /* _CFURLGetVolumePropertyFlags - Returns a bit array of volume properties. - Only flags whose corresponding bits are set in the "mask" parameter are valid + Only flags whose corresponding bits are set in the "mask" parameter are valid in the output bit array. Returns true on success, false if an error occurs. - Optional output error: the error is set to a valid CFErrorRef if and only if the function + Optional output error: the error is set to a valid CFErrorRef if and only if the function returns false. A valid output error must be released by the caller. */ CF_EXPORT @@ -672,17 +680,19 @@ CFDataRef _CFURLCopySecurityScopeFromFileURL(CFURLRef url) CF_AVAILABLE(10_10, 8 CF_EXPORT void _CFURLSetPermanentResourcePropertyForKey(CFURLRef url, CFStringRef key, CFTypeRef propertyValue) CF_AVAILABLE(10_10, 8_0); -#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED + // Returns a string describing the bookmark data. For debugging purposes only. CF_EXPORT CFStringRef _CFURLBookmarkCopyDescription(CFDataRef bookmarkRef) CF_AVAILABLE(10_10, 8_0); +#if TARGET_OS_MAC || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) // private CFURLBookmarkCreationOptions enum { kCFURLBookmarkCreationWithFileProvider CF_ENUM_AVAILABLE(10_10, 8_0) = ( 1UL << 26 ), // private option to create bookmarks with file provider string. The file provider string overrides the rest of the bookmark data at resolution time. kCFURLBookmarkOperatingInsideScopedBookmarksAgent = (1UL << 27), // private option used internally by ScopedBookmarkAgent to prevent recursion between the agent and the framework code. Available 10_7, NA kCFURLBookmarkCreationAllowCreationIfResourceDoesNotExistMask = ( 1UL << 28 ), // allow creation of a bookmark to a file: scheme with a CFURLRef of item which may not exist. If the filesystem item does not exist, the created bookmark contains essentially no properties beyond the url string. Available 10_7, 5_0. kCFURLBookmarkCreationDoNotIncludeSandboxExtensionsMask = ( 1UL << 29 ), // If set, sandbox extensions are not included in created bookmarks. Ordinarily, bookmarks (except those created suitable for putting into a bookmark file) will have a sandbox extension added for the item. Available 10_7, NA. + kCFURLBookmarkCreationAllowOnlyReadAccess API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = ( 1UL << 30 ), // at resolution time only read access to the resource will be granted (works with regular non-security scoped bookmarks) kCFURLBookmarkCreationSuitableForOdocAppleEvent CF_ENUM_DEPRECATED(10_6, 10_11, NA, NA, "kCFURLBookmarkCreationSuitableForOdocAppleEvent does nothing and has no effect on bookmark resolution" ) = ( 1UL << 31 ), // add properties we guarantee will be in an odoc AppleEvent. Available 10_10, NA (but supported back to 10.6). }; @@ -697,6 +707,8 @@ enum { // private CFURLBookmarkResolutionOptions enum { kCFBookmarkResolutionPerformRelativeResolutionFirstMask CF_ENUM_AVAILABLE(10_8, 6_0) = ( 1UL << 11 ), // perform relative resolution before absolute resolution. If this bit is set, for this to be useful a relative URL must also have been passed in and the bookmark when created must have been created relative to another url. + kCFURLBookmarkResolutionAllowingPromisedItem API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = ( 1UL << 12 ), // If kCFURLBookmarkResolutionAllowingPromisedItem is set, resolving a bookmark may return promise item URL if the target has been evicted to the cloud (instead of downloading the evicted document during bookmark resolution). Clients must use NSPromisedItems and NSFileCoordinator API to access promised item URLs. kCFURLBookmarkResolutionAllowingPromisedItem is ignored when resolving security-scoped bookmarks. + kCFBookmarkResolutionQuarantineMountedNetworkVolumesMask API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = ( 1UL << 13 ), // quarantine any network volume mounted during resolution }; typedef CF_ENUM(CFIndex, CFURLBookmarkMatchResult) { diff --git a/CoreFoundation/build.py b/CoreFoundation/build.py index 92eccebf57..325656747a 100644 --- a/CoreFoundation/build.py +++ b/CoreFoundation/build.py @@ -88,6 +88,7 @@ 'NumberDate.subproj/CFNumber.h', 'Collections.subproj/CFData.h', 'String.subproj/CFAttributedString.h', + 'AppServices.subproj/CFNotificationCenter.h', ], private = [ 'Base.subproj/CFAsmMacros.h', diff --git a/Foundation.xcodeproj/project.pbxproj b/Foundation.xcodeproj/project.pbxproj index c73b39d4c6..be82334183 100644 --- a/Foundation.xcodeproj/project.pbxproj +++ b/Foundation.xcodeproj/project.pbxproj @@ -99,6 +99,8 @@ 5B6228BD1C179049009587FE /* CFRunArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6228BC1C179049009587FE /* CFRunArray.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5B6228BF1C179052009587FE /* CFAttributedString.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B6228BE1C179052009587FE /* CFAttributedString.c */; }; 5B6228C11C17905B009587FE /* CFAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6228C01C17905B009587FE /* CFAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B6E11A71DA451E7009B48A3 /* CFLocale_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6E11A61DA451E7009B48A3 /* CFLocale_Private.h */; }; + 5B6E11A91DA45EB5009B48A3 /* CFDateFormatter_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6E11A81DA45EB5009B48A3 /* CFDateFormatter_Private.h */; }; 5B78185B1D6CB5D2004A01F2 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B7818591D6CB5CD004A01F2 /* CGFloat.swift */; }; 5B7C8A721BEA7FCE00C5B690 /* CFBase.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B5D895D1BBDABBF00234F36 /* CFBase.c */; }; 5B7C8A731BEA7FCE00C5B690 /* CFFileUtilities.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B5D89851BBDB18D00234F36 /* CFFileUtilities.c */; }; @@ -655,6 +657,8 @@ 5B6228BE1C179052009587FE /* CFAttributedString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = CFAttributedString.c; sourceTree = ""; }; 5B6228C01C17905B009587FE /* CFAttributedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFAttributedString.h; sourceTree = ""; }; 5B628EDE1D1C995C00CA9570 /* NSMeasurementFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSMeasurementFormatter.swift; sourceTree = ""; }; + 5B6E11A61DA451E7009B48A3 /* CFLocale_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFLocale_Private.h; sourceTree = ""; }; + 5B6E11A81DA45EB5009B48A3 /* CFDateFormatter_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFDateFormatter_Private.h; sourceTree = ""; }; 5B6F17921C48631C00935030 /* TestNSNull.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSNull.swift; sourceTree = ""; }; 5B6F17931C48631C00935030 /* TestNSNumberFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSNumberFormatter.swift; sourceTree = ""; }; 5B6F17941C48631C00935030 /* TestProcess.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = TestProcess.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; @@ -1093,6 +1097,7 @@ 5B5D891B1BBDA50800234F36 /* CFCalendar.h */, 5B5D890B1BBC9BEF00234F36 /* CFDateFormatter.c */, 5B5D89091BBC9BEF00234F36 /* CFDateFormatter.h */, + 5B6E11A81DA45EB5009B48A3 /* CFDateFormatter_Private.h */, 5B5D88AC1BBC974700234F36 /* CFLocale.c */, 5B5D88AB1BBC974700234F36 /* CFLocale.h */, 5B5D88AD1BBC974700234F36 /* CFLocaleIdentifier.c */, @@ -1101,6 +1106,7 @@ 5B5D89111BBC9C3400234F36 /* CFNumberFormatter.h */, 5B5D89A91BBDC11100234F36 /* CFLocaleKeys.c */, 5BDC3F191BCC440100ED97BB /* CFICULogging.h */, + 5B6E11A61DA451E7009B48A3 /* CFLocale_Private.h */, ); name = Locale; path = CoreFoundation/Locale.subproj; @@ -1750,6 +1756,7 @@ 5B7C8AF11BEA81AC00C5B690 /* CFStreamAbstract.h in Headers */, 5B7C8AFE1BEA81AC00C5B690 /* CFURLComponents.h in Headers */, 5B7C8ABC1BEA805C00C5B690 /* CFAvailability.h in Headers */, + 5B6E11A91DA45EB5009B48A3 /* CFDateFormatter_Private.h in Headers */, 5B7C8AF51BEA81AC00C5B690 /* CFStringDefaultEncoding.h in Headers */, 5B7C8AD21BEA80FC00C5B690 /* CFPropertyList.h in Headers */, 5B7C8AE51BEA81AC00C5B690 /* ForFoundationOnly.h in Headers */, @@ -1773,6 +1780,7 @@ 5B7C8AF31BEA81AC00C5B690 /* CFStreamPriv.h in Headers */, 5B7C8AF21BEA81AC00C5B690 /* CFStreamInternal.h in Headers */, 5B7C8AEB1BEA81AC00C5B690 /* CFBigNumber.h in Headers */, + 5B6E11A71DA451E7009B48A3 /* CFLocale_Private.h in Headers */, EA66F6671BF2F2F100136161 /* CoreFoundation.h in Headers */, 5B7C8AFF1BEA81AC00C5B690 /* CFURLPriv.h in Headers */, 5B7C8AEE1BEA81AC00C5B690 /* CFBundle_Internal.h in Headers */, @@ -2544,6 +2552,7 @@ "-DCF_BUILDING_CF", "-DDEPLOYMENT_TARGET_MACOSX", "-DDEPLOYMENT_RUNTIME_SWIFT", + "-DDEPLOYMENT_ENABLE_LIBDISPATCH", "-I$(SRCROOT)/bootstrap/common/usr/include", "-I$(SRCROOT)/bootstrap/x86_64-apple-darwin/usr/include", "-I$(SRCROOT)/bootstrap/common/usr/local/include", @@ -2583,6 +2592,7 @@ "-DCF_BUILDING_CF", "-DDEPLOYMENT_TARGET_MACOSX", "-DDEPLOYMENT_RUNTIME_SWIFT", + "-DDEPLOYMENT_ENABLE_LIBDISPATCH", "-I$(SRCROOT)/bootstrap/common/usr/include", "-I$(SRCROOT)/bootstrap/x86_64-apple-darwin/usr/include", "-I$(SRCROOT)/bootstrap/common/usr/local/include", diff --git a/Foundation.xcodeproj/xcshareddata/xcschemes/TestFoundation.xcscheme b/Foundation.xcodeproj/xcshareddata/xcschemes/TestFoundation.xcscheme index 42d4f7e61f..844b8416b6 100644 --- a/Foundation.xcodeproj/xcshareddata/xcschemes/TestFoundation.xcscheme +++ b/Foundation.xcodeproj/xcshareddata/xcschemes/TestFoundation.xcscheme @@ -90,6 +90,21 @@ + + + + + + Unmanaged { return Unmanaged.passRetained((cset as! NSCharacterSet).inverted._cfObject) } + +internal func _CFSwiftMutableSetAddCharactersInRange(_ characterSet: CFTypeRef, _ range: CFRange) -> Void { + (characterSet as! NSMutableCharacterSet).addCharacters(in: NSRange(location: range.location, length: range.length)) +} + +internal func _CFSwiftMutableSetRemoveCharactersInRange(_ characterSet: CFTypeRef, _ range: CFRange) -> Void { + (characterSet as! NSMutableCharacterSet).removeCharacters(in: NSRange(location: range.location, length: range.length)) +} + +internal func _CFSwiftMutableSetAddCharactersInString(_ characterSet: CFTypeRef, _ string: CFString) -> Void { + (characterSet as! NSMutableCharacterSet).addCharacters(in: string._swiftObject) +} + +internal func _CFSwiftMutableSetRemoveCharactersInString(_ characterSet: CFTypeRef, _ string: CFString) -> Void { + (characterSet as! NSMutableCharacterSet).removeCharacters(in: string._swiftObject) +} + +internal func _CFSwiftMutableSetFormUnionWithCharacterSet(_ characterSet: CFTypeRef, _ other: CFTypeRef) -> Void { + (characterSet as! NSMutableCharacterSet).formUnion(with: (other as! NSCharacterSet)._swiftObject) +} + +internal func _CFSwiftMutableSetFormIntersectionWithCharacterSet(_ characterSet: CFTypeRef, _ other: CFTypeRef) -> Void { + (characterSet as! NSMutableCharacterSet).formIntersection(with: (other as! NSCharacterSet)._swiftObject) +} + +internal func _CFSwiftMutableSetInvert(_ characterSet: CFTypeRef) -> Void { + (characterSet as! NSMutableCharacterSet).invert() +} + diff --git a/Foundation/NSCFSet.swift b/Foundation/NSCFSet.swift index 2a6b760244..fdeb9883a7 100644 --- a/Foundation/NSCFSet.swift +++ b/Foundation/NSCFSet.swift @@ -88,7 +88,7 @@ internal func _CFSwiftSetGetCountOfValue(_ set: AnyObject, value: AnyObject) -> } internal func _CFSwiftSetContainsValue(_ set: AnyObject, value: AnyObject) -> Bool { - return _CFSwiftSetGetValue(set, value: value) != nil + return _CFSwiftSetGetValue(set, value: value, key: value) != nil } internal func _CFSwiftSetGetValues(_ set: AnyObject, _ values: UnsafeMutablePointer?>?) { @@ -114,7 +114,7 @@ internal func _CFSwiftSetGetValues(_ set: AnyObject, _ values: UnsafeMutablePoin } } -internal func _CFSwiftSetGetValue(_ set: AnyObject, value: AnyObject) -> Unmanaged? { +internal func _CFSwiftSetGetValue(_ set: AnyObject, value: AnyObject, key: AnyObject) -> Unmanaged? { let set = set as! NSSet if type(of: set) === NSSet.self || type(of: set) === NSMutableSet.self { if let idx = set._storage.index(of: value as! NSObject){ @@ -132,7 +132,7 @@ internal func _CFSwiftSetGetValue(_ set: AnyObject, value: AnyObject) -> Unmanag } internal func _CFSwiftSetGetValueIfPresent(_ set: AnyObject, object: AnyObject, value: UnsafeMutablePointer?>?) -> Bool { - if let val = _CFSwiftSetGetValue(set, value: object) { + if let val = _CFSwiftSetGetValue(set, value: object, key: object) { value?.pointee = val return true } else { @@ -147,6 +147,10 @@ internal func _CFSwiftSetApplyFunction(_ set: AnyObject, applier: @convention(c) }) } +internal func _CFSwiftSetMember(_ set: CFTypeRef, _ object: CFTypeRef) -> Unmanaged? { + return _CFSwiftSetGetValue(set, value: object, key: object) +} + internal func _CFSwiftSetAddValue(_ set: AnyObject, value: AnyObject) { (set as! NSMutableSet).add(value) } diff --git a/Foundation/NSCFString.swift b/Foundation/NSCFString.swift index 45585497e8..6d0d8a1f7b 100644 --- a/Foundation/NSCFString.swift +++ b/Foundation/NSCFString.swift @@ -190,8 +190,8 @@ internal func _CFSwiftStringCreateMutableCopy(_ str: AnyObject) -> Unmanaged.passRetained((str as! NSString).mutableCopy() as! NSObject) } -internal func _CFSwiftStringFastCStringContents(_ str: AnyObject) -> UnsafePointer? { - return (str as! NSString)._fastCStringContents +internal func _CFSwiftStringFastCStringContents(_ str: AnyObject, _ nullTerminated: Bool) -> UnsafePointer? { + return (str as! NSString)._fastCStringContents(nullTerminated) } internal func _CFSwiftStringFastContents(_ str: AnyObject) -> UnsafePointer? { diff --git a/Foundation/NSData.swift b/Foundation/NSData.swift index 33ce39de50..365276fdcf 100644 --- a/Foundation/NSData.swift +++ b/Foundation/NSData.swift @@ -233,6 +233,12 @@ open class NSData : NSObject, NSCopying, NSMutableCopying, NSSecureCoding { } open override func isEqual(_ value: Any?) -> Bool { + if let data = value as? Data { + return isEqual(to: data) + } else if let data = value as? NSData { + return isEqual(to: data._swiftObject) + } + #if DEPLOYMENT_ENABLE_LIBDISPATCH if let data = value as? DispatchData { if data.count != length { @@ -244,11 +250,7 @@ open class NSData : NSObject, NSCopying, NSMutableCopying, NSSecureCoding { } } #endif - if let data = value as? Data { - return isEqual(to: data) - } else if let data = value as? NSData { - return isEqual(to: data._swiftObject) - } + return false } open func isEqual(to other: Data) -> Bool { diff --git a/Foundation/NSHost.swift b/Foundation/NSHost.swift index 0876cd60af..d01151f99b 100644 --- a/Foundation/NSHost.swift +++ b/Foundation/NSHost.swift @@ -74,7 +74,12 @@ open class Host: NSObject { } var hints = addrinfo() hints.ai_family = PF_UNSPEC - hints.ai_socktype = _CF_SOCK_STREAM() +#if os(OSX) || os(iOS) + hints.ai_socktype = SOCK_STREAM +#else + hints.ai_socktype = Int32(SOCK_STREAM.rawValue) +#endif + hints.ai_flags = flags var res0: UnsafeMutablePointer? = nil diff --git a/Foundation/NSJSONSerialization.swift b/Foundation/NSJSONSerialization.swift index cd4aed72fd..1569c6b805 100644 --- a/Foundation/NSJSONSerialization.swift +++ b/Foundation/NSJSONSerialization.swift @@ -184,8 +184,10 @@ open class JSONSerialization : NSObject { open class func writeJSONObject(_ obj: Any, toStream stream: OutputStream, options opt: WritingOptions) throws -> Int { let jsonData = try _data(withJSONObject: obj, options: opt, stream: true) let count = jsonData.count - return jsonData.withUnsafeBytes { (bytePtr) -> Int in - return stream.write(bytePtr, maxLength: count) + return jsonData.withUnsafeBytes { (bytePtr: UnsafePointer) -> Int in + let res: Int = stream.write(bytePtr, maxLength: count) + /// TODO: If the result here is negative the error should be obtained from the stream to propigate as a throw + return res } } diff --git a/Foundation/NSKeyedArchiver.swift b/Foundation/NSKeyedArchiver.swift index f9b473b368..26454b4223 100644 --- a/Foundation/NSKeyedArchiver.swift +++ b/Foundation/NSKeyedArchiver.swift @@ -181,6 +181,8 @@ open class NSKeyedArchiver : NSCoder { plist["$objects"] = self._objects plist["$top"] = self._containers[0].dict + + if let unwrappedDelegate = self.delegate { unwrappedDelegate.archiverWillFinish(self) } diff --git a/Foundation/NSPathUtilities.swift b/Foundation/NSPathUtilities.swift index b7165f00da..95d1f1cc2a 100644 --- a/Foundation/NSPathUtilities.swift +++ b/Foundation/NSPathUtilities.swift @@ -156,7 +156,7 @@ internal extension String { public extension NSString { - public var absolutePath: Bool { + public var isAbsolutePath: Bool { return hasPrefix("~") || hasPrefix("/") } diff --git a/Foundation/NSStream.swift b/Foundation/NSStream.swift index b49291c7ec..b4cbc01ab6 100644 --- a/Foundation/NSStream.swift +++ b/Foundation/NSStream.swift @@ -111,7 +111,7 @@ open class Stream: NSObject { } open var streamError: NSError? { - NSUnimplemented() + NSRequiresConcreteImplementation() } } @@ -159,6 +159,10 @@ open class InputStream: Stream { open override var streamStatus: Status { return Stream.Status(rawValue: UInt(CFReadStreamGetStatus(_stream)))! } + + open override var streamError: NSError? { + return _CFReadStreamCopyError(_stream)?._nsObject + } } // OutputStream is an abstract class representing the base functionality of a write stream. @@ -219,6 +223,10 @@ open class OutputStream : Stream { open override func setProperty(_ property: AnyObject?, forKey key: PropertyKey) -> Bool { return CFWriteStreamSetProperty(_stream, key.rawValue._cfObject, property) } + + open override var streamError: NSError? { + return _CFWriteStreamCopyError(_stream)?._nsObject + } } // Discussion of this API is ongoing for its usage of AutoreleasingUnsafeMutablePointer diff --git a/Foundation/NSString.swift b/Foundation/NSString.swift index 95f5e6ca12..8100e00fee 100644 --- a/Foundation/NSString.swift +++ b/Foundation/NSString.swift @@ -274,7 +274,7 @@ open class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSC self.init(string: CFStringCreateWithCString(kCFAllocatorSystemDefault, nullTerminatedCString, CFStringConvertNSStringEncodingToEncoding(encoding))._swiftObject) } - internal var _fastCStringContents: UnsafePointer? { + internal func _fastCStringContents(_ nullTerminated: Bool) -> UnsafePointer? { if type(of: self) == NSString.self || type(of: self) == NSMutableString.self { if _storage._core.isASCII { return unsafeBitCast(_storage._core.startASCII, to: UnsafePointer.self) diff --git a/Foundation/NSSwiftRuntime.swift b/Foundation/NSSwiftRuntime.swift index 8f68f6df79..d711342400 100644 --- a/Foundation/NSSwiftRuntime.swift +++ b/Foundation/NSSwiftRuntime.swift @@ -60,6 +60,12 @@ internal func _CFSwiftGetTypeID(_ cf: AnyObject) -> CFTypeID { } + +internal func _CFSwiftCopyWithZone(_ cf: CFTypeRef, _ zone: CFTypeRef?) -> Unmanaged { + return Unmanaged.passRetained((cf as! NSObject).copy() as! NSObject) +} + + internal func _CFSwiftGetHash(_ cf: AnyObject) -> CFHashCode { return CFHashCode(bitPattern: (cf as! NSObject).hash) } @@ -105,20 +111,23 @@ internal func __CFInitializeSwift() { __CFSwiftBridge.NSObject.isEqual = _CFSwiftIsEqual __CFSwiftBridge.NSObject.hash = _CFSwiftGetHash __CFSwiftBridge.NSObject._cfTypeID = _CFSwiftGetTypeID + __CFSwiftBridge.NSObject.copyWithZone = _CFSwiftCopyWithZone __CFSwiftBridge.NSSet.count = _CFSwiftSetGetCount - __CFSwiftBridge.NSSet.countForValue = _CFSwiftSetGetCountOfValue - __CFSwiftBridge.NSSet.containsValue = _CFSwiftSetContainsValue - __CFSwiftBridge.NSSet.getValue = _CFSwiftSetGetValue + __CFSwiftBridge.NSSet.countForKey = _CFSwiftSetGetCountOfValue + __CFSwiftBridge.NSSet.containsObject = _CFSwiftSetContainsValue + __CFSwiftBridge.NSSet.__getValue = _CFSwiftSetGetValue __CFSwiftBridge.NSSet.getValueIfPresent = _CFSwiftSetGetValueIfPresent - __CFSwiftBridge.NSSet.getValues = _CFSwiftSetGetValues + __CFSwiftBridge.NSSet.getObjects = _CFSwiftSetGetValues __CFSwiftBridge.NSSet.copy = _CFSwiftSetCreateCopy + __CFSwiftBridge.NSSet.__apply = _CFSwiftSetApplyFunction + __CFSwiftBridge.NSSet.member = _CFSwiftSetMember - __CFSwiftBridge.NSMutableSet.addValue = _CFSwiftSetAddValue - __CFSwiftBridge.NSMutableSet.replaceValue = _CFSwiftSetReplaceValue - __CFSwiftBridge.NSMutableSet.setValue = _CFSwiftSetSetValue - __CFSwiftBridge.NSMutableSet.removeValue = _CFSwiftSetRemoveValue - __CFSwiftBridge.NSMutableSet.removeAllValues = _CFSwiftSetRemoveAllValues + __CFSwiftBridge.NSMutableSet.addObject = _CFSwiftSetAddValue + __CFSwiftBridge.NSMutableSet.replaceObject = _CFSwiftSetReplaceValue + __CFSwiftBridge.NSMutableSet.setObject = _CFSwiftSetSetValue + __CFSwiftBridge.NSMutableSet.removeObject = _CFSwiftSetRemoveValue + __CFSwiftBridge.NSMutableSet.removeAllObjects = _CFSwiftSetRemoveAllValues __CFSwiftBridge.NSArray.count = _CFSwiftArrayGetCount __CFSwiftBridge.NSArray.objectAtIndex = _CFSwiftArrayGetValueAtIndex @@ -202,7 +211,15 @@ internal func __CFInitializeSwift() { __CFSwiftBridge.NSCharacterSet.hasMemberInPlane = _CFSwiftCharacterSetHasMemberInPlane __CFSwiftBridge.NSCharacterSet.invertedSet = _CFSwiftCharacterSetInverted - __CFDefaultEightBitStringEncoding = UInt32(kCFStringEncodingUTF8) + __CFSwiftBridge.NSMutableCharacterSet.addCharactersInRange = _CFSwiftMutableSetAddCharactersInRange + __CFSwiftBridge.NSMutableCharacterSet.removeCharactersInRange = _CFSwiftMutableSetRemoveCharactersInRange + __CFSwiftBridge.NSMutableCharacterSet.addCharactersInString = _CFSwiftMutableSetAddCharactersInString + __CFSwiftBridge.NSMutableCharacterSet.removeCharactersInString = _CFSwiftMutableSetRemoveCharactersInString + __CFSwiftBridge.NSMutableCharacterSet.formUnionWithCharacterSet = _CFSwiftMutableSetFormUnionWithCharacterSet + __CFSwiftBridge.NSMutableCharacterSet.formIntersectionWithCharacterSet = _CFSwiftMutableSetFormIntersectionWithCharacterSet + __CFSwiftBridge.NSMutableCharacterSet.invert = _CFSwiftMutableSetInvert + +// __CFDefaultEightBitStringEncoding = UInt32(kCFStringEncodingUTF8) } public func === (lhs: AnyClass, rhs: AnyClass) -> Bool { diff --git a/Foundation/NSURL.swift b/Foundation/NSURL.swift index 91903d27d8..39ce1deb6c 100644 --- a/Foundation/NSURL.swift +++ b/Foundation/NSURL.swift @@ -306,6 +306,7 @@ open class NSURL : NSObject, NSSecureCoding, NSCopying { public init(fileURLWithPath path: String, isDirectory isDir: Bool, relativeTo baseURL: URL?) { super.init() + let thePath = _standardizedPath(path) if thePath.length > 0 { @@ -340,17 +341,25 @@ open class NSURL : NSObject, NSSecureCoding, NSCopying { self.init(fileURLWithPath: path, isDirectory: isDir, relativeTo: nil) } - public convenience init(fileURLWithPath path: String) { - let thePath = _standardizedPath(path) + public init(fileURLWithPath path: String) { + let thePath: String + let pathString = NSString(string: path) + if !pathString.isAbsolutePath { + thePath = pathString.standardizingPath + } else { + thePath = path + } var isDir : Bool = false if thePath.hasSuffix("/") { isDir = true } else { - let _ = FileManager.default.fileExists(atPath: path, isDirectory: &isDir) + if !FileManager.default.fileExists(atPath: path, isDirectory: &isDir) { + isDir = false + } } - - self.init(fileURLWithPath: thePath, isDirectory: isDir, relativeTo: nil) + super.init() + _CFURLInitWithFileSystemPathRelativeToBase(_cfObject, thePath._cfObject, kCFURLPOSIXPathStyle, isDir, nil) } public convenience init(fileURLWithFileSystemRepresentation path: UnsafePointer, isDirectory isDir: Bool, relativeTo baseURL: URL?) { diff --git a/Foundation/Process.swift b/Foundation/Process.swift index 6e81c147b9..c0e151883b 100644 --- a/Foundation/Process.swift +++ b/Foundation/Process.swift @@ -241,7 +241,11 @@ open class Process: NSObject { } var taskSocketPair : [Int32] = [0, 0] - socketpair(AF_UNIX, _CF_SOCK_STREAM(), 0, &taskSocketPair) +#if os(OSX) || os(iOS) + socketpair(AF_UNIX, SOCK_STREAM, 0, &taskSocketPair) +#else + socketpair(AF_UNIX, Int32(SOCK_STREAM.rawValue), 0, &taskSocketPair) +#endif var context = CFSocketContext() context.version = 0 context.retain = runLoopSourceRetain diff --git a/TestFoundation/Resources/NSURLTestData.plist b/TestFoundation/Resources/NSURLTestData.plist index 094f77677e..5c0f8b787a 100644 --- a/TestFoundation/Resources/NSURLTestData.plist +++ b/TestFoundation/Resources/NSURLTestData.plist @@ -11,103 +11,6 @@ NSURLWithString In-Url file:///usr/local/bin - Out-CFResults - - AbsoluteURLString - file:///usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 14) (4, 17) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLString - file:///usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -164,103 +67,6 @@ NSURLWithString In-Url file:/usr/local/bin - Out-CFResults - - AbsoluteURLString - file:/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 14) (4, 15) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLData - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLString - file:/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -317,103 +123,6 @@ NSURLWithString In-Url file://localhost/usr/local/bin - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 14) (16, 14) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLString - file://localhost/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -470,103 +179,6 @@ NSURLWithString In-Url file://usr/local/bin - Out-CFResults - - AbsoluteURLString - file://usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 10) (10, 10) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2xvY2FsL2Jpbg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - usr - IsAbsolute - - LastPathComponent - bin - NetLocation - usr - POSIXPath - /local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - local/bin - URLBytes - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLData - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLString - file://usr/local/bin - UserName - <null> - WindowsPath - \local\bin - Out-NSResults absoluteString @@ -622,99 +234,6 @@ NSURLWithString In-Url /usr/local/bin - Out-CFResults - - AbsoluteURLString - /usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 14) (0, 14) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /usr/local/bin - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - usr/local/bin - URLBytes - - L3Vzci9sb2NhbC9iaW4= - - URLData - - L3Vzci9sb2NhbC9iaW4= - - URLString - /usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -771,103 +290,6 @@ NSURLWithString In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin/ - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - file://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -924,103 +346,6 @@ NSURLWithString In-Url file://localhost/ - Out-CFResults - - AbsoluteURLString - file://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLData - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLString - file://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -1074,102 +399,6 @@ NSURLWithString In-Url file://localhost - Out-CFResults - - AbsoluteURLString - file://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2xvY2FsaG9zdA== - - URLData - - ZmlsZTovL2xvY2FsaG9zdA== - - URLString - file://localhost - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -1221,103 +450,6 @@ NSURLWithString In-Url file:/// - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -1371,99 +503,6 @@ NSURLWithString In-Url file:// - Out-CFResults - - AbsoluteURLString - file:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovLw== - - URLData - - ZmlsZTovLw== - - URLString - file:// - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -1489,7 +528,7 @@ path pathComponents - <null> + pathExtension port @@ -1515,103 +554,6 @@ NSURLWithString In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -1665,99 +607,6 @@ NSURLWithString In-Url FILE:// - Out-CFResults - - AbsoluteURLString - FILE:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - FILE - StrictPath - <null> - URLBytes - - RklMRTovLw== - - URLData - - RklMRTovLw== - - URLString - FILE:// - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -1783,7 +632,7 @@ path pathComponents - <null> + pathExtension port @@ -1809,103 +658,6 @@ NSURLWithString In-Url file:///Volumes - Out-CFResults - - AbsoluteURLString - file:///Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovLy9Wb2x1bWVz - - URLData - - ZmlsZTovLy9Wb2x1bWVz - - URLString - file:///Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults absoluteString @@ -1960,103 +712,6 @@ NSURLWithString In-Url file:///Users/darin - Out-CFResults - - AbsoluteURLString - file:///Users/darin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///Users/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Users/darin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1VzZXJzL2Rhcmlu - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - darin - NetLocation - <null> - POSIXPath - /Users/darin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Users/darin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Users/darin - URLBytes - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLData - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLString - file:///Users/darin - UserName - <null> - WindowsPath - \Users\darin - Out-NSResults absoluteString @@ -2112,103 +767,6 @@ NSURLWithString In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -2262,102 +820,6 @@ NSURLWithString In-Url file://foo - Out-CFResults - - AbsoluteURLString - file://foo - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 0) (10, 0) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://foo../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://foo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - foo - IsAbsolute - - LastPathComponent - - NetLocation - foo - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2Zvbw== - - URLData - - ZmlsZTovL2Zvbw== - - URLString - file://foo - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -2409,103 +871,6 @@ NSURLWithString In-Url file:///. - Out-CFResults - - AbsoluteURLString - file:///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - . - URLBytes - - ZmlsZTovLy8u - - URLData - - ZmlsZTovLy8u - - URLString - file:///. - UserName - <null> - WindowsPath - \. - Out-NSResults absoluteString @@ -2517,7 +882,7 @@ deletingLastPathComponent file:///./../ deletingLastPathExtension - file:/// + file:///. fragment <null> host @@ -2560,103 +925,6 @@ NSURLWithString In-Url file:///./. - Out-CFResults - - AbsoluteURLString - file:///./. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /./. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./. - URLBytes - - ZmlsZTovLy8uLy4= - - URLData - - ZmlsZTovLy8uLy4= - - URLString - file:///./. - UserName - <null> - WindowsPath - \.\. - Out-NSResults absoluteString @@ -2668,7 +936,7 @@ deletingLastPathComponent file:///./../ deletingLastPathExtension - file:///./ + file:///./. fragment <null> host @@ -2712,103 +980,6 @@ NSURLWithString In-Url file:///.///. - Out-CFResults - - AbsoluteURLString - file:///.///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 6) (4, 9) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///.///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /.///. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /.///. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - .///. - URLBytes - - ZmlsZTovLy8uLy8vLg== - - URLData - - ZmlsZTovLy8uLy8vLg== - - URLString - file:///.///. - UserName - <null> - WindowsPath - \.\\\. - Out-NSResults absoluteString @@ -2820,7 +991,7 @@ deletingLastPathComponent file:///.///../ deletingLastPathExtension - file:///./// + file:///.///. fragment <null> host @@ -2864,103 +1035,6 @@ NSURLWithString In-Url file:///a/.. - Out-CFResults - - AbsoluteURLString - file:///a/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 5) (4, 8) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/.. - URLBytes - - ZmlsZTovLy9hLy4u - - URLData - - ZmlsZTovLy9hLy4u - - URLString - file:///a/.. - UserName - <null> - WindowsPath - \a\.. - Out-NSResults absoluteString @@ -2972,7 +1046,7 @@ deletingLastPathComponent file:///a/../../ deletingLastPathExtension - file:///a/. + file:///a/.. fragment <null> host @@ -3016,103 +1090,6 @@ NSURLWithString In-Url file:///a/b/.. - Out-CFResults - - AbsoluteURLString - file:///a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 7) (4, 10) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/.. - URLBytes - - ZmlsZTovLy9hL2IvLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4= - - URLString - file:///a/b/.. - UserName - <null> - WindowsPath - \a\b\.. - Out-NSResults absoluteString @@ -3124,7 +1101,7 @@ deletingLastPathComponent file:///a/b/../../ deletingLastPathExtension - file:///a/b/. + file:///a/b/.. fragment <null> host @@ -3169,103 +1146,6 @@ NSURLWithString In-Url file:///a/b//.. - Out-CFResults - - AbsoluteURLString - file:///a/b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8vLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b//.. - URLBytes - - ZmlsZTovLy9hL2IvLy4u - - URLData - - ZmlsZTovLy9hL2IvLy4u - - URLString - file:///a/b//.. - UserName - <null> - WindowsPath - \a\b\\.. - Out-NSResults absoluteString @@ -3277,7 +1157,7 @@ deletingLastPathComponent file:///a/b//../../ deletingLastPathExtension - file:///a/b//. + file:///a/b//.. fragment <null> host @@ -3322,103 +1202,6 @@ NSURLWithString In-Url file:///./a/b/.. - Out-CFResults - - AbsoluteURLString - file:///./a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vYS9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /./a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./a/b/.. - URLBytes - - ZmlsZTovLy8uL2EvYi8uLg== - - URLData - - ZmlsZTovLy8uL2EvYi8uLg== - - URLString - file:///./a/b/.. - UserName - <null> - WindowsPath - \.\a\b\.. - Out-NSResults absoluteString @@ -3430,7 +1213,7 @@ deletingLastPathComponent file:///./a/b/../../ deletingLastPathExtension - file:///./a/b/. + file:///./a/b/.. fragment <null> host @@ -3476,103 +1259,6 @@ NSURLWithString In-Url file:///a/./b/.. - Out-CFResults - - AbsoluteURLString - file:///a/./b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/./b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/./b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/./b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/./b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/./b/.. - URLBytes - - ZmlsZTovLy9hLy4vYi8uLg== - - URLData - - ZmlsZTovLy9hLy4vYi8uLg== - - URLString - file:///a/./b/.. - UserName - <null> - WindowsPath - \a\.\b\.. - Out-NSResults absoluteString @@ -3584,7 +1270,7 @@ deletingLastPathComponent file:///a/./b/../../ deletingLastPathExtension - file:///a/./b/. + file:///a/./b/.. fragment <null> host @@ -3630,103 +1316,6 @@ NSURLWithString In-Url file:///a/b/./.. - Out-CFResults - - AbsoluteURLString - file:///a/b/./.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/./../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/./. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/./.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/./.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/./.. - URLBytes - - ZmlsZTovLy9hL2IvLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvLi8uLg== - - URLString - file:///a/b/./.. - UserName - <null> - WindowsPath - \a\b\.\.. - Out-NSResults absoluteString @@ -3738,7 +1327,7 @@ deletingLastPathComponent file:///a/b/./../../ deletingLastPathExtension - file:///a/b/./. + file:///a/b/./.. fragment <null> host @@ -3784,103 +1373,6 @@ NSURLWithString In-Url file:///a///b//.. - Out-CFResults - - AbsoluteURLString - file:///a///b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a///b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a///b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLy9iLy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a///b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a///b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a///b//.. - URLBytes - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLData - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLString - file:///a///b//.. - UserName - <null> - WindowsPath - \a\\\b\\.. - Out-NSResults absoluteString @@ -3892,7 +1384,7 @@ deletingLastPathComponent file:///a///b//../../ deletingLastPathExtension - file:///a///b//. + file:///a///b//.. fragment <null> host @@ -3937,103 +1429,6 @@ NSURLWithString In-Url file:///a/b/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/../.. - URLBytes - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLString - file:///a/b/../.. - UserName - <null> - WindowsPath - \a\b\..\.. - Out-NSResults absoluteString @@ -4045,7 +1440,7 @@ deletingLastPathComponent file:///a/b/../../../ deletingLastPathExtension - file:///a/b/../. + file:///a/b/../.. fragment <null> host @@ -4091,103 +1486,6 @@ NSURLWithString In-Url file:///a/b/c/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi9jLy4uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/c/../.. - URLBytes - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLString - file:///a/b/c/../.. - UserName - <null> - WindowsPath - \a\b\c\..\.. - Out-NSResults absoluteString @@ -4199,7 +1497,7 @@ deletingLastPathComponent file:///a/b/c/../../../ deletingLastPathExtension - file:///a/b/c/../. + file:///a/b/c/../.. fragment <null> host @@ -4246,103 +1544,6 @@ NSURLWithString In-Url file:///a/../b/.. - Out-CFResults - - AbsoluteURLString - file:///a/../b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/../b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/.. - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLString - file:///a/../b/.. - UserName - <null> - WindowsPath - \a\..\b\.. - Out-NSResults absoluteString @@ -4354,7 +1555,7 @@ deletingLastPathComponent file:///a/../b/../../ deletingLastPathExtension - file:///a/../b/. + file:///a/../b/.. fragment <null> host @@ -4400,103 +1601,6 @@ NSURLWithString In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults absoluteString @@ -4555,103 +1659,6 @@ NSURLWithString In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults absoluteString @@ -4710,102 +1717,6 @@ NSURLWithString In-Url ftp://ftp.gnu.org - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 0) (17, 0) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - - NetLocation - ftp.gnu.org - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - <null> - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLString - ftp://ftp.gnu.org - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -4857,103 +1768,6 @@ NSURLWithString In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 1) (17, 1) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - / - NetLocation - ftp.gnu.org - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLString - ftp://ftp.gnu.org/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -5007,103 +1821,6 @@ NSURLWithString In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 8) (17, 8) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5159,103 +1876,6 @@ NSURLWithString In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (12, 11) (11, 12) - ComponentNetLocation - (6, 17) (3, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (11, 0) - ComponentPath - (23, 8) (23, 8) - ComponentPort - (-1, 0) (23, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 5) (3, 9) - DeletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://luser@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5311,103 +1931,6 @@ NSURLWithString In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 11) (6, 12) - ComponentNetLocation - (6, 12) (3, 15) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (18, 8) (18, 8) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 0) (3, 4) - DeletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - @ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLData - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLString - ftp://@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5463,105 +1986,6 @@ NSURLWithString In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (21, 11) (20, 12) - ComponentNetLocation - (6, 26) (3, 29) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (12, 8) (11, 10) - ComponentPath - (32, 8) (32, 8) - ComponentPort - (-1, 0) (32, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 14) (3, 18) - DeletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser:password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLString - ftp://luser:password@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5617,105 +2041,6 @@ NSURLWithString In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (35, 0) - ComponentHost - (16, 11) (15, 12) - ComponentNetLocation - (6, 21) (3, 24) - ComponentParameterString - (-1, 0) (35, 0) - ComponentPassword - (7, 8) (6, 10) - ComponentPath - (27, 8) (27, 8) - ComponentPort - (-1, 0) (27, 0) - ComponentQuery - (-1, 0) (35, 0) - ComponentResourceSpecifier - (-1, 0) (35, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 9) (3, 13) - DeletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - :password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLData - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLString - ftp://:password@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5771,103 +2096,6 @@ NSURLWithString In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (6, 11) (3, 15) - ComponentNetLocation - (6, 14) (3, 17) - ComponentParameterString - (-1, 0) (28, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (20, 8) (20, 8) - ComponentPort - (18, 2) (17, 3) - ComponentQuery - (-1, 0) (28, 0) - ComponentResourceSpecifier - (-1, 0) (28, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org:72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -5923,103 +2151,6 @@ NSURLWithString In-Url ftp://:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 0) (3, 4) - ComponentNetLocation - (6, 3) (3, 6) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (9, 8) (9, 8) - ComponentPort - (7, 2) (6, 3) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - - IsAbsolute - - LastPathComponent - gnu - NetLocation - :72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLData - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLString - ftp://:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults absoluteString @@ -6075,103 +2206,6 @@ NSURLWithString In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - http://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - usr/local/bin/ - URLBytes - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - http://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults absoluteString @@ -6228,103 +2262,6 @@ NSURLWithString In-Url http://localhost/ - Out-CFResults - - AbsoluteURLString - http://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2xvY2FsaG9zdC8= - - URLData - - aHR0cDovL2xvY2FsaG9zdC8= - - URLString - http://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -6378,102 +2315,6 @@ NSURLWithString In-Url http://localhost - Out-CFResults - - AbsoluteURLString - http://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2xvY2FsaG9zdA== - - URLData - - aHR0cDovL2xvY2FsaG9zdA== - - URLString - http://localhost - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -6525,102 +2366,6 @@ NSURLWithString In-Url http://www.apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 0) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLString - http://www.apple.com - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -6672,103 +2417,6 @@ NSURLWithString In-Url http://www.apple.com/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 1) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - / - NetLocation - www.apple.com - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLString - http://www.apple.com/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -6822,103 +2470,6 @@ NSURLWithString In-Url http://www.apple.com/dir - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (24, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (24, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 4) (20, 4) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (24, 0) - ComponentResourceSpecifier - (-1, 0) (24, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLString - http://www.apple.com/dir - UserName - <null> - WindowsPath - \dir - Out-NSResults absoluteString @@ -6973,103 +2524,6 @@ NSURLWithString In-Url http://www.apple.com/dir/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 5) (20, 5) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLString - http://www.apple.com/dir/ - UserName - <null> - WindowsPath - \dir - Out-NSResults absoluteString @@ -7124,102 +2578,6 @@ NSURLWithString In-Url http://www.apple.com:80 - Out-CFResults - - AbsoluteURLString - http://www.apple.com:80 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 13) (4, 17) - ComponentNetLocation - (7, 16) (4, 19) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (23, 0) (23, 0) - ComponentPort - (21, 2) (20, 3) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com:80../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com:80 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com:80 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLString - http://www.apple.com:80 - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -7271,105 +2629,6 @@ NSURLWithString In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AbsoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (20, 13) (19, 15) - ComponentNetLocation - (7, 29) (4, 32) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (13, 6) (12, 8) - ComponentPath - (36, 5) (36, 5) - ComponentPort - (34, 2) (33, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 12) (4, 16) - DeletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:nothin@www.apple.com:42/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - darin:nothin@www.apple.com:42 - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - nothin - Path - /dir/ - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLData - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLString - http://darin:nothin@www.apple.com:42/dir/ - UserName - darin - WindowsPath - \dir - Out-NSResults absoluteString @@ -7424,103 +2683,6 @@ NSURLWithString In-Url http:/ - Out-CFResults - - AbsoluteURLString - http:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDov - - URLData - - aHR0cDov - - URLString - http:/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -7574,105 +2736,6 @@ NSURLWithString In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com/query?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (48, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 6) (20, 7) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (27, 21) (26, 22) - ComponentResourceSpecifier - (27, 21) (26, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/query?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3F1ZXJ5 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - query - NetLocation - www.apple.com - POSIXPath - /query - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /query - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - query - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLString - http://www.apple.com/query?email=darin@apple.com - UserName - <null> - WindowsPath - \query - Out-NSResults absoluteString @@ -7727,104 +2790,6 @@ NSURLWithString In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (42, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (21, 21) (20, 22) - ComponentResourceSpecifier - (21, 21) (20, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLString - http://www.apple.com?email=darin@apple.com - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -7876,102 +2841,6 @@ NSURLWithString In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 0) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - - NetLocation - WWW.ZOO.COM - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - <null> - URLBytes - - SFRUUDovL1dXVy5aT08uQ09N - - URLData - - SFRUUDovL1dXVy5aT08uQ09N - - URLString - HTTP://WWW.ZOO.COM - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -8023,103 +2892,6 @@ NSURLWithString In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 1) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - / - NetLocation - WWW.ZOO.COM - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLData - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLString - HTTP://WWW.ZOO.COM/ - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -8173,103 +2945,6 @@ NSURLWithString In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ED - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 3) (18, 3) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ED - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L0VE - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - ED - NetLocation - WWW.ZOO.COM - POSIXPath - /ED - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /ED - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - ED - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLData - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLString - HTTP://WWW.ZOO.COM/ED - UserName - <null> - WindowsPath - \ED - Out-NSResults absoluteString @@ -8324,107 +2999,6 @@ NSURLWithString In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AbsoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (99, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (45, 43) (44, 45) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 29) (15, 30) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (89, 10) (88, 11) - ComponentResourceSpecifier - (45, 54) (44, 55) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BjL2NhdGFsb2cvU2VnYVByb2R1Y3Quamh0bWw= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - sega.com - IsAbsolute - - LastPathComponent - SegaProduct.jhtml - NetLocation - sega.com - POSIXPath - /pc/catalog/SegaProduct.jhtml - ParameterString-Escaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - ParameterString-Unescaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - Password - <null> - Path - /pc/catalog/SegaProduct.jhtml - PathExtension - jhtml - PortNumber - -1 - QueryString-Escaped - PRODID=193 - QueryString-Unescaped - PRODID=193 - ResourceSpecifier - ;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Scheme - http - StrictPath - pc/catalog/SegaProduct.jhtml - URLBytes - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLData - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - UserName - <null> - WindowsPath - \pc\catalog\SegaProduct.jhtml - Out-NSResults absoluteString @@ -8481,107 +3055,6 @@ NSURLWithString In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AbsoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (75, 0) - ComponentHost - (7, 17) (4, 20) - ComponentNetLocation - (7, 17) (4, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (24, 7) (24, 8) - ComponentPort - (-1, 0) (24, 0) - ComponentQuery - (32, 43) (31, 44) - ComponentResourceSpecifier - (32, 43) (31, 44) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2dyb3Vwcw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - groups.google.com - IsAbsolute - - LastPathComponent - groups - NetLocation - groups.google.com - POSIXPath - /groups - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /groups - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - QueryString-Unescaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - ResourceSpecifier - ?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Scheme - http - StrictPath - groups - URLBytes - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLData - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - UserName - <null> - WindowsPath - \groups - Out-NSResults absoluteString @@ -8636,105 +3109,6 @@ NSURLWithString In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com/some/page.html#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (34, 8) (33, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 15) (18, 16) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (34, 8) (33, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com/some/#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com/some/page#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGFnZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - page.html - NetLocation - my.site.com - POSIXPath - /some/page.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/page.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - some/page.html - URLBytes - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLString - http://my.site.com/some/page.html#fragment - UserName - <null> - WindowsPath - \some\page.html - Out-NSResults absoluteString @@ -8790,102 +3164,6 @@ NSURLWithString In-Url http://my.site.com#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 8) (18, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (19, 8) (18, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com../#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - - NetLocation - my.site.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLString - http://my.site.com#fragment - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -8937,107 +3215,6 @@ NSURLWithString In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AbsoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 8) (59, 9) - ComponentHost - (19, 4) (18, 6) - ComponentNetLocation - (9, 16) (6, 19) - ComponentParameterString - (47, 6) (46, 8) - ComponentPassword - (14, 4) (13, 6) - ComponentPath - (25, 21) (25, 22) - ComponentPort - (24, 1) (23, 2) - ComponentQuery - (54, 5) (53, 7) - ComponentResourceSpecifier - (47, 21) (46, 22) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 4) (6, 8) - ComponentUserInfo - (9, 9) (6, 13) - DeletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhdGgvcGF0aDIvZmlsZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - host - IsAbsolute - - LastPathComponent - file.html - NetLocation - user:pass@host:1 - POSIXPath - /path/path2/file.html - ParameterString-Escaped - params - ParameterString-Unescaped - params - Password - pass - Path - /path/path2/file.html - PathExtension - html - PortNumber - 1 - QueryString-Escaped - query - QueryString-Unescaped - query - ResourceSpecifier - ;params?query#fragment - Scheme - scheme - StrictPath - path/path2/file.html - URLBytes - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLData - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - UserName - user - WindowsPath - \path\path2\file.html - Out-NSResults absoluteString @@ -9094,103 +3271,6 @@ NSURLWithString In-Url http://test.com/a%20space - Out-CFResults - - AbsoluteURLString - http://test.com/a%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/a%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Egc3BhY2U= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - a space - NetLocation - test.com - POSIXPath - /a space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - a%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLString - http://test.com/a%20space - UserName - <null> - WindowsPath - \a space - Out-NSResults absoluteString @@ -9245,103 +3325,6 @@ NSURLWithString In-Url http://test.com/aBrace%7B - Out-CFResults - - AbsoluteURLString - http://test.com/aBrace%7B - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aBrace%7B - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FCcmFjZXs= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aBrace{ - NetLocation - test.com - POSIXPath - /aBrace{ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aBrace%7B - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aBrace%7B - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLData - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLString - http://test.com/aBrace%7B - UserName - <null> - WindowsPath - \aBrace{ - Out-NSResults absoluteString @@ -9396,103 +3379,6 @@ NSURLWithString In-Url http://test.com/aJ%4a - Out-CFResults - - AbsoluteURLString - http://test.com/aJ%4a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 6) (15, 6) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aJ%4a - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FKSg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aJJ - NetLocation - test.com - POSIXPath - /aJJ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aJ%4a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aJ%4a - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLData - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLString - http://test.com/aJ%4a - UserName - <null> - WindowsPath - \aJJ - Out-NSResults absoluteString @@ -9547,111 +3433,6 @@ NSURLWithString In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AbsoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (133, 14) (132, 15) - ComponentHost - (35, 18) (34, 20) - ComponentNetLocation - (9, 47) (6, 50) - ComponentParameterString - (79, 15) (78, 17) - ComponentPassword - (20, 14) (19, 16) - ComponentPath - (56, 22) (56, 23) - ComponentPort - (54, 2) (53, 3) - ComponentQuery - (95, 37) (94, 39) - ComponentResourceSpecifier - (79, 68) (78, 69) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 10) (6, 14) - ComponentUserInfo - (9, 25) (6, 29) - DeletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhYFh0aC9uYWBYbWU= - - Fragment-Escaped - frag%60%58ment - Fragment-Unescaped - frag`Xment - HasDirectoryPath - - HostName - host`Xname.com - IsAbsolute - - LastPathComponent - na`Xme - NetLocation - us%60%58er:pass%60%58word@host%60%58name.com:80 - POSIXPath - /pa`Xth/na`Xme - ParameterString-Escaped - par%60%58ameter - ParameterString-Unescaped - par`Xameter - Password - pass`Xword - Path - /pa%60%58th/na%60%58me - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - qu%60%58ery=val%60%58ue&foo%60%58=bar - QueryString-Unescaped - qu`Xery=val`Xue&foo`X=bar - ResourceSpecifier - ;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Scheme - scheme - StrictPath - pa%60%58th/na%60%58me - URLBytes - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLData - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - UserName - us`Xer - WindowsPath - \pa`Xth\na`Xme - Out-NSResults absoluteString @@ -9707,8 +3488,6 @@ NSURLWithString In-Url http://test.com/unescaped space - Out-CFResults - <null url> Out-NSResults <null url> @@ -9719,8 +3498,6 @@ NSURLWithString In-Url http://test.com/unescaped|pipe - Out-CFResults - <null url> Out-NSResults <null url> @@ -9731,104 +3508,6 @@ NSURLWithString In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin%20adler@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (21, 13) (20, 14) - ComponentNetLocation - (7, 27) (4, 30) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (20, 0) - ComponentPath - (34, 0) (34, 0) - ComponentPort - (-1, 0) (34, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 13) (4, 17) - ComponentUserInfo - (7, 13) (4, 17) - DeletingLastPathComponent - http://darin%20adler@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin%20adler@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin%20adler@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLData - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLString - http://darin%20adler@www.apple.com - UserName - darin adler - WindowsPath - - Out-NSResults absoluteString @@ -9880,104 +3559,6 @@ NSURLWithString In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin:clever%20password@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (44, 0) - ComponentHost - (31, 13) (30, 14) - ComponentNetLocation - (7, 37) (4, 40) - ComponentParameterString - (-1, 0) (44, 0) - ComponentPassword - (13, 17) (12, 19) - ComponentPath - (44, 0) (44, 0) - ComponentPort - (-1, 0) (44, 0) - ComponentQuery - (-1, 0) (44, 0) - ComponentResourceSpecifier - (-1, 0) (44, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 23) (4, 27) - DeletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:clever%20password@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin:clever%20password@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - clever password - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLString - http://darin:clever%20password@www.apple.com - UserName - darin - WindowsPath - - Out-NSResults absoluteString @@ -10029,102 +3610,6 @@ NSURLWithString In-Url http://www.apple%20computer.com - Out-CFResults - - AbsoluteURLString - http://www.apple%20computer.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 24) (4, 27) - ComponentNetLocation - (7, 24) (4, 27) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (31, 0) (31, 0) - ComponentPort - (-1, 0) (31, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple%20computer.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple%20computer.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple computer.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple%20computer.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLData - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLString - http://www.apple%20computer.com - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -10176,103 +3661,6 @@ NSURLWithString In-Url file:///%3F - Out-CFResults - - AbsoluteURLString - file:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %3F - URLBytes - - ZmlsZTovLy8lM0Y= - - URLData - - ZmlsZTovLy8lM0Y= - - URLString - file:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults absoluteString @@ -10327,103 +3715,6 @@ NSURLWithString In-Url file:///%78 - Out-CFResults - - AbsoluteURLString - file:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %78 - URLBytes - - ZmlsZTovLy8lNzg= - - URLData - - ZmlsZTovLy8lNzg= - - URLString - file:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -10478,103 +3769,6 @@ NSURLWithString In-Url file:///? - Out-CFResults - - AbsoluteURLString - file:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8/ - - URLData - - ZmlsZTovLy8/ - - URLString - file:///? - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -10628,103 +3822,6 @@ NSURLWithString In-Url file:///& - Out-CFResults - - AbsoluteURLString - file:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - & - URLBytes - - ZmlsZTovLy8m - - URLData - - ZmlsZTovLy8m - - URLString - file:///& - UserName - <null> - WindowsPath - \& - Out-NSResults absoluteString @@ -10779,103 +3876,6 @@ NSURLWithString In-Url file:///x - Out-CFResults - - AbsoluteURLString - file:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - x - URLBytes - - ZmlsZTovLy94 - - URLData - - ZmlsZTovLy94 - - URLString - file:///x - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -10930,103 +3930,6 @@ NSURLWithString In-Url http:///%3F - Out-CFResults - - AbsoluteURLString - http:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %3F - URLBytes - - aHR0cDovLy8lM0Y= - - URLData - - aHR0cDovLy8lM0Y= - - URLString - http:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults absoluteString @@ -11081,103 +3984,6 @@ NSURLWithString In-Url http:///%78 - Out-CFResults - - AbsoluteURLString - http:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %78 - URLBytes - - aHR0cDovLy8lNzg= - - URLData - - aHR0cDovLy8lNzg= - - URLString - http:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -11232,103 +4038,6 @@ NSURLWithString In-Url http:///? - Out-CFResults - - AbsoluteURLString - http:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - http - StrictPath - - URLBytes - - aHR0cDovLy8/ - - URLData - - aHR0cDovLy8/ - - URLString - http:///? - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -11382,103 +4091,6 @@ NSURLWithString In-Url http:///& - Out-CFResults - - AbsoluteURLString - http:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - & - URLBytes - - aHR0cDovLy8m - - URLData - - aHR0cDovLy8m - - URLString - http:///& - UserName - <null> - WindowsPath - \& - Out-NSResults absoluteString @@ -11533,103 +4145,6 @@ NSURLWithString In-Url http:///x - Out-CFResults - - AbsoluteURLString - http:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - x - URLBytes - - aHR0cDovLy94 - - URLData - - aHR0cDovLy94 - - URLString - http:///x - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -11684,103 +4199,6 @@ NSURLWithString In-Url glorb:///%3F - Out-CFResults - - AbsoluteURLString - glorb:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %3F - URLBytes - - Z2xvcmI6Ly8vJTNG - - URLData - - Z2xvcmI6Ly8vJTNG - - URLString - glorb:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults absoluteString @@ -11835,103 +4253,6 @@ NSURLWithString In-Url glorb:///%78 - Out-CFResults - - AbsoluteURLString - glorb:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %78 - URLBytes - - Z2xvcmI6Ly8vJTc4 - - URLData - - Z2xvcmI6Ly8vJTc4 - - URLString - glorb:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -11986,103 +4307,6 @@ NSURLWithString In-Url glorb:///? - Out-CFResults - - AbsoluteURLString - glorb:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 1) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (10, 0) (9, 1) - ComponentResourceSpecifier - (10, 0) (9, 1) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - glorb - StrictPath - - URLBytes - - Z2xvcmI6Ly8vPw== - - URLData - - Z2xvcmI6Ly8vPw== - - URLString - glorb:///? - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -12136,103 +4360,6 @@ NSURLWithString In-Url glorb:///& - Out-CFResults - - AbsoluteURLString - glorb:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - & - URLBytes - - Z2xvcmI6Ly8vJg== - - URLData - - Z2xvcmI6Ly8vJg== - - URLString - glorb:///& - UserName - <null> - WindowsPath - \& - Out-NSResults absoluteString @@ -12287,103 +4414,6 @@ NSURLWithString In-Url glorb:///x - Out-CFResults - - AbsoluteURLString - glorb:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - x - URLBytes - - Z2xvcmI6Ly8veA== - - URLData - - Z2xvcmI6Ly8veA== - - URLString - glorb:///x - UserName - <null> - WindowsPath - \x - Out-NSResults absoluteString @@ -12438,99 +4468,6 @@ NSURLWithString In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 20) (6, 21) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLString - mailto:mduerst@ifi.unizh.ch - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -12556,7 +4493,7 @@ path pathComponents - <null> + pathExtension port @@ -12582,101 +4519,6 @@ NSURLWithString In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 36) (6, 37) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch?Subject=nothing - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -12702,7 +4544,7 @@ path pathComponents - <null> + pathExtension port @@ -12728,101 +4570,6 @@ NSURLWithString In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AbsoluteURLString - news:comp.infosystems.www.servers.unix - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 33) (4, 34) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - comp.infosystems.www.servers.unix - Scheme - news - StrictPath - <null> - URLBytes - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLData - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLString - news:comp.infosystems.www.servers.unix - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -12848,7 +4595,7 @@ path pathComponents - <null> + pathExtension port @@ -12874,99 +4621,6 @@ NSURLWithString In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AbsoluteURLString - uahsfcncvuhrtgvnahr - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 19) (0, 19) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - uahsfcncvuhrtgvnahr - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - uahsfcncvuhrtgvnahr - NetLocation - <null> - POSIXPath - uahsfcncvuhrtgvnahr - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - uahsfcncvuhrtgvnahr - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - uahsfcncvuhrtgvnahr - URLBytes - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLData - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLString - uahsfcncvuhrtgvnahr - UserName - <null> - WindowsPath - uahsfcncvuhrtgvnahr - Out-NSResults absoluteString @@ -13020,102 +4674,6 @@ NSURLWithString In-Url http://10.1.1.1 - Out-CFResults - - AbsoluteURLString - http://10.1.1.1 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 0) (15, 0) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://10.1.1.1../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://10.1.1.1 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - 10.1.1.1 - IsAbsolute - - LastPathComponent - - NetLocation - 10.1.1.1 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovLzEwLjEuMS4x - - URLData - - aHR0cDovLzEwLjEuMS4x - - URLString - http://10.1.1.1 - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -13167,273 +4725,75 @@ NSURLWithString In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults + Out-NSResults - AbsoluteURLString + absoluteString http://[fe80::20a:27ff:feae:8b9e]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (7, 26) (4, 29) - ComponentNetLocation - (7, 26) (4, 29) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (33, 1) (33, 1) - ComponentPort - (-1, 0) (33, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension + absoluteURLString http://[fe80::20a:27ff:feae:8b9e]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped + baseURLString <null> - Fragment-Unescaped + deletingLastPathComponent + http://[fe80::20a:27ff:feae:8b9e]/../ + deletingLastPathExtension + http://[fe80::20a:27ff:feae:8b9e]/ + fragment <null> - HasDirectoryPath - - HostName + host fe80::20a:27ff:feae:8b9e - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e] - POSIXPath + isFileURL + NO + lastPathComponent / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password + password <null> - Path + path / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped + pathComponents + + / + + pathExtension + + port <null> - ResourceSpecifier + query <null> - Scheme + relativePath + / + relativeString + http://[fe80::20a:27ff:feae:8b9e]/ + scheme http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLString + standardizedURL http://[fe80::20a:27ff:feae:8b9e]/ - UserName + user <null> - WindowsPath - + + + In-Title + NSURLWithString-parse-absolute-real-world-003 + In-URLCreator + NSURLWithString + In-Url + http://[fe80::20a:27ff:feae:8b9e%25en0]/ Out-NSResults absoluteString - http://[fe80::20a:27ff:feae:8b9e]/ + http://[fe80::20a:27ff:feae:8b9e%25en0]/ absoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ + http://[fe80::20a:27ff:feae:8b9e%25en0]/ baseURLString <null> deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ + http://[fe80::20a:27ff:feae:8b9e%25en0]/../ deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ + http://[fe80::20a:27ff:feae:8b9e%25en0]/ fragment <null> host - fe80::20a:27ff:feae:8b9e - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e]/ - user - <null> - - - - In-Title - NSURLWithString-parse-absolute-real-world-003 - In-URLCreator - NSURLWithString - In-Url - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (7, 32) (4, 35) - ComponentNetLocation - (7, 32) (4, 35) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (39, 1) (39, 1) - ComponentPort - (-1, 0) (39, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e%en0 - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e%25en0] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - UserName - <null> - WindowsPath - - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e%en0 + fe80::20a:27ff:feae:8b9e%en0 isFileURL NO lastPathComponent @@ -13471,113 +4831,6 @@ NSURLWithString In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AbsoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (175, 6) (174, 7) - ComponentHost - (7, 15) (4, 18) - ComponentNetLocation - (7, 15) (4, 18) - ComponentParameterString - (-1, 0) (53, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (22, 31) (22, 32) - ComponentPort - (-1, 0) (22, 0) - ComponentQuery - (54, 120) (53, 122) - ComponentResourceSpecifier - (54, 127) (53, 128) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FwcHMvZG9tYWlucGFyay9kb21haW5wYXJrLmNnaQ== - - Fragment-Escaped - FFFFFF - Fragment-Unescaped - FFFFFF - HasDirectoryPath - - HostName - apps5.oingo.com - IsAbsolute - - LastPathComponent - domainpark.cgi - NetLocation - apps5.oingo.com - POSIXPath - /apps/domainpark/domainpark.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /apps/domainpark/domainpark.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - QueryString-Unescaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - ResourceSpecifier - ?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Scheme - http - StrictPath - apps/domainpark/domainpark.cgi - URLBytes - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLData - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - UserName - <null> - WindowsPath - \apps\domainpark\domainpark.cgi - Out-NSResults absoluteString @@ -13634,113 +4887,6 @@ NSURLWithString In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AbsoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (169, 0) - ComponentHost - (7, 18) (4, 21) - ComponentNetLocation - (7, 18) (4, 21) - ComponentParameterString - (32, 137) (31, 138) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (25, 6) (25, 7) - ComponentPort - (-1, 0) (25, 0) - ComponentQuery - (-1, 0) (169, 0) - ComponentResourceSpecifier - (32, 137) (31, 138) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NsaWNr - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ad.doubleclick.net - IsAbsolute - - LastPathComponent - click - NetLocation - ad.doubleclick.net - POSIXPath - /click - ParameterString-Escaped - h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - ParameterString-Unescaped - h=v2|2e88|0|0|*|o;4461766;0-0;0;7314133;255-0|0;1407955|1406690|1;;?http://meninblack2.station.sony.com/playgames.jsp - Password - <null> - Path - /click - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Scheme - http - StrictPath - click - URLBytes - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLData - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - UserName - <null> - WindowsPath - \click - Out-NSResults absoluteString @@ -13795,105 +4941,6 @@ NSURLWithString In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/../index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (37, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (37, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 22) (15, 22) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (37, 0) - ComponentResourceSpecifier - (-1, 0) (37, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/../index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi4vaW5kZXguaHRtbA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/../index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/../index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/../index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLString - http://host.com/foo/bar/../index.html - UserName - <null> - WindowsPath - \foo\bar\..\index.html - Out-NSResults absoluteString @@ -13951,105 +4998,6 @@ NSURLWithString In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/./index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (36, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (36, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 21) (15, 21) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (36, 0) - ComponentResourceSpecifier - (-1, 0) (36, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/./index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi9pbmRleC5odG1s - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/./index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/./index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/./index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLString - http://host.com/foo/bar/./index.html - UserName - <null> - WindowsPath - \foo\bar\.\index.html - Out-NSResults absoluteString @@ -14107,103 +5055,6 @@ NSURLWithString In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults absoluteString @@ -14259,103 +5110,6 @@ NSURLWithString In-Url file:///// - Out-CFResults - - AbsoluteURLString - file:///// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - // - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /// - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - // - URLBytes - - ZmlsZTovLy8vLw== - - URLData - - ZmlsZTovLy8vLw== - - URLString - file:///// - UserName - <null> - WindowsPath - \\ - Out-NSResults absoluteString @@ -14410,103 +5164,6 @@ NSURLWithString In-Url file:/Volumes - Out-CFResults - - AbsoluteURLString - file:/Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 8) (4, 9) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovVm9sdW1lcw== - - URLData - - ZmlsZTovVm9sdW1lcw== - - URLString - file:/Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults absoluteString @@ -14561,99 +5218,6 @@ NSURLWithString In-Url /Volumes - Out-CFResults - - AbsoluteURLString - /Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /Volumes - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - Volumes - URLBytes - - L1ZvbHVtZXM= - - URLData - - L1ZvbHVtZXM= - - URLString - /Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults absoluteString @@ -14708,99 +5272,6 @@ NSURLWithString In-Url . - Out-CFResults - - AbsoluteURLString - . - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults absoluteString @@ -14812,7 +5283,7 @@ deletingLastPathComponent ../ deletingLastPathExtension - + . fragment <null> host @@ -14854,99 +5325,6 @@ NSURLWithString In-Url ./a - Out-CFResults - - AbsoluteURLString - ./a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ./a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ./a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ./a - URLBytes - - Li9h - - URLData - - Li9h - - URLString - ./a - UserName - <null> - WindowsPath - .\a - Out-NSResults absoluteString @@ -15001,99 +5379,6 @@ NSURLWithString In-Url ../a - Out-CFResults - - AbsoluteURLString - ../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../a - URLBytes - - Li4vYQ== - - URLData - - Li4vYQ== - - URLString - ../a - UserName - <null> - WindowsPath - ..\a - Out-NSResults absoluteString @@ -15148,99 +5433,6 @@ NSURLWithString In-Url ../../a - Out-CFResults - - AbsoluteURLString - ../../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../../a - URLBytes - - Li4vLi4vYQ== - - URLData - - Li4vLi4vYQ== - - URLString - ../../a - UserName - <null> - WindowsPath - ..\..\a - Out-NSResults absoluteString @@ -15296,99 +5488,6 @@ NSURLWithString In-Url file: - Out-CFResults - - AbsoluteURLString - file: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTo= - - URLData - - ZmlsZTo= - - URLString - file: - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -15414,7 +5513,7 @@ path pathComponents - <null> + pathExtension port @@ -15440,99 +5539,6 @@ NSURLWithString In-Url / - Out-CFResults - - AbsoluteURLString - / - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - / - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - - URLBytes - - Lw== - - URLData - - Lw== - - URLString - / - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -15586,99 +5592,6 @@ NSURLWithString In-Url http: - Out-CFResults - - AbsoluteURLString - http: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDo= - - URLData - - aHR0cDo= - - URLString - http: - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -15704,7 +5617,7 @@ path pathComponents - <null> + pathExtension port @@ -15732,8 +5645,6 @@ NSURLWithString In-Url unescaped space - Out-CFResults - <null url> Out-NSResults <null url> @@ -15746,103 +5657,6 @@ NSURLWithString In-Url #zoo - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (1, 3) (0, 4) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 3) (0, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - zoo - Fragment-Unescaped - zoo - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - #zoo - Scheme - http - StrictPath - <null> - URLBytes - - I3pvbw== - - URLData - - I3pvbw== - - URLString - #zoo - UserName - user - WindowsPath - <null> - Out-NSResults absoluteString @@ -15900,103 +5714,6 @@ NSURLWithString In-Url joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c= - - URLData - - am9lL2Jsb3c= - - URLString - joe/blow - UserName - user - WindowsPath - joe\blow - Out-NSResults absoluteString @@ -16055,103 +5772,6 @@ NSURLWithString In-Url joe/blow?john=doe - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (9, 8) (8, 9) - ComponentResourceSpecifier - (9, 8) (8, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/?john=doe - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow?john=doe - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - john=doe - QueryString-Unescaped - john=doe - ResourceSpecifier - ?john=doe - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c/am9obj1kb2U= - - URLData - - am9lL2Jsb3c/am9obj1kb2U= - - URLString - joe/blow?john=doe - UserName - user - WindowsPath - joe\blow - Out-NSResults absoluteString @@ -16210,103 +5830,6 @@ NSURLWithString In-Url ./joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ./joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ./joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ./joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./joe/blow - URLBytes - - Li9qb2UvYmxvdw== - - URLData - - Li9qb2UvYmxvdw== - - URLString - ./joe/blow - UserName - user - WindowsPath - .\joe\blow - Out-NSResults absoluteString @@ -16365,103 +5888,6 @@ NSURLWithString In-Url ../joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 11) (0, 11) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ../joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ../joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ../joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../joe/blow - URLBytes - - Li4vam9lL2Jsb3c= - - URLData - - Li4vam9lL2Jsb3c= - - URLString - ../joe/blow - UserName - user - WindowsPath - ..\joe\blow - Out-NSResults absoluteString @@ -16519,103 +5945,6 @@ NSURLWithString In-Url /joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - L2pvZS9ibG93 - - URLData - - L2pvZS9ibG93 - - URLString - /joe/blow - UserName - user - WindowsPath - \joe\blow - Out-NSResults absoluteString @@ -16673,103 +6002,6 @@ NSURLWithString In-Url joe/blow#frag2 - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (9, 5) (8, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (9, 5) (8, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/#frag2 - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow#frag2 - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - frag2 - Fragment-Unescaped - frag2 - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #frag2 - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3cjZnJhZzI= - - URLData - - am9lL2Jsb3cjZnJhZzI= - - URLString - joe/blow#frag2 - UserName - user - WindowsPath - joe\blow - Out-NSResults absoluteString @@ -16828,103 +6060,6 @@ NSURLWithString In-Url ftp://my.server.com/some/document - Out-CFResults - - AbsoluteURLString - ftp://my.server.com/some/document - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (33, 0) - ComponentHost - (6, 13) (3, 16) - ComponentNetLocation - (6, 13) (3, 16) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (19, 14) (19, 14) - ComponentPort - (-1, 0) (19, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (-1, 0) (33, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://my.server.com/some/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://my.server.com/some/document - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvZG9jdW1lbnQ= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - my.server.com - IsAbsolute - - LastPathComponent - document - NetLocation - my.server.com - POSIXPath - /some/document - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/document - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - some/document - URLBytes - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLData - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLString - ftp://my.server.com/some/document - UserName - <null> - WindowsPath - \some\document - Out-NSResults absoluteString @@ -16982,103 +6117,6 @@ NSURLWithString In-Url /joe:blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe:blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe:blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZTpibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - joe:blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe:blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe:blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe:blow - URLBytes - - L2pvZTpibG93 - - URLData - - L2pvZTpibG93 - - URLString - /joe:blow - UserName - user - WindowsPath - \joe:blow - Out-NSResults absoluteString @@ -17135,99 +6173,6 @@ NSURLWithString In-Url joe:blow - Out-CFResults - - AbsoluteURLString - joe:blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (4, 4) (3, 5) - ComponentScheme - (0, 3) (0, 4) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - blow - Scheme - joe - StrictPath - <null> - URLBytes - - am9lOmJsb3c= - - URLData - - am9lOmJsb3c= - - URLString - joe:blow - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -17253,7 +6198,7 @@ path pathComponents - <null> + pathExtension port @@ -17281,8 +6226,6 @@ NSURLWithString In-Url - Out-CFResults - <null url> Out-NSResults <null url> @@ -17295,103 +6238,6 @@ NSURLWithString In-Url ??? - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param??? - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 2) (0, 3) - ComponentResourceSpecifier - (1, 2) (0, 3) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - ?? - QueryString-Unescaped - ?? - ResourceSpecifier - ??? - Scheme - http - StrictPath - <null> - URLBytes - - Pz8/ - - URLData - - Pz8/ - - URLString - ??? - UserName - user - WindowsPath - <null> - Out-NSResults absoluteString @@ -17449,99 +6295,6 @@ NSURLWithString In-Url g:h - Out-CFResults - - AbsoluteURLString - g:h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (0, 1) (0, 2) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - h - Scheme - g - StrictPath - <null> - URLBytes - - Zzpo - - URLData - - Zzpo - - URLString - g:h - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -17567,7 +6320,7 @@ path pathComponents - <null> + pathExtension port @@ -17595,103 +6348,6 @@ NSURLWithString In-Url g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - Zw== - - URLData - - Zw== - - URLString - g - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -17750,103 +6406,6 @@ NSURLWithString In-Url ./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Li9n - - URLData - - Li9n - - URLString - ./g - UserName - <null> - WindowsPath - .\g - Out-NSResults absoluteString @@ -17905,103 +6464,6 @@ NSURLWithString In-Url g/ - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/ - URLBytes - - Zy8= - - URLData - - Zy8= - - URLString - g/ - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -18060,103 +6522,6 @@ NSURLWithString In-Url /g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - L2c= - - URLData - - L2c= - - URLString - /g - UserName - <null> - WindowsPath - \g - Out-NSResults absoluteString @@ -18213,103 +6578,6 @@ NSURLWithString In-Url //g - Out-CFResults - - AbsoluteURLString - http://g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (2, 1) (0, 3) - ComponentNetLocation - (2, 1) (0, 3) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (3, 0) (3, 0) - ComponentPort - (-1, 0) (3, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - //g../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - //g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - g - IsAbsolute - - LastPathComponent - - NetLocation - g - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - Ly9n - - URLData - - Ly9n - - URLString - //g - UserName - <null> - WindowsPath - - Out-NSResults absoluteString @@ -18363,103 +6631,6 @@ NSURLWithString In-Url ?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 1) (0, 2) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - <null> - URLBytes - - P3k= - - URLData - - P3k= - - URLString - ?y - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -18518,103 +6689,6 @@ NSURLWithString In-Url g?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 2) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - g - URLBytes - - Zz95 - - URLData - - Zz95 - - URLString - g?y - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -18673,103 +6747,6 @@ NSURLWithString In-Url #s - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (1, 1) (0, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - #s - Scheme - http - StrictPath - <null> - URLBytes - - I3M= - - URLData - - I3M= - - URLString - #s - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -18828,103 +6805,6 @@ NSURLWithString In-Url g#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 1) (1, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s - Scheme - http - StrictPath - g - URLBytes - - ZyNz - - URLData - - ZyNz - - URLString - g#s - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -18983,103 +6863,6 @@ NSURLWithString In-Url g?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (4, 1) (3, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 3) - ComponentResourceSpecifier - (2, 3) (1, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y#s - Scheme - http - StrictPath - g - URLBytes - - Zz95I3M= - - URLData - - Zz95I3M= - - URLString - g?y#s - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -19138,103 +6921,6 @@ NSURLWithString In-Url ;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (1, 1) (0, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - <null> - URLBytes - - O3g= - - URLData - - O3g= - - URLString - ;x - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -19293,103 +6979,6 @@ NSURLWithString In-Url g;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - g - URLBytes - - Zzt4 - - URLData - - Zzt4 - - URLString - g;x - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -19448,103 +7037,6 @@ NSURLWithString In-Url g;x?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (6, 1) (5, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 3) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (4, 1) (3, 3) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ;x?y#s - Scheme - http - StrictPath - g - URLBytes - - Zzt4P3kjcw== - - URLData - - Zzt4P3kjcw== - - URLString - g;x?y#s - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -19603,10 +7095,8 @@ NSURLWithString In-Url - Out-CFResults - <null url> Out-NSResults - <null url> + <null url> In-Base @@ -19617,103 +7107,6 @@ NSURLWithString In-Url . - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults absoluteString @@ -19725,7 +7118,7 @@ deletingLastPathComponent ../ deletingLastPathExtension - + . fragment <null> host @@ -19771,103 +7164,6 @@ NSURLWithString In-Url ./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - / - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./ - URLBytes - - Li8= - - URLData - - Li8= - - URLString - ./ - UserName - <null> - WindowsPath - . - Out-NSResults absoluteString @@ -19879,7 +7175,7 @@ deletingLastPathComponent ../ deletingLastPathExtension - / + ./ fragment <null> host @@ -19925,103 +7221,6 @@ NSURLWithString In-Url .. - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .. - URLBytes - - Li4= - - URLData - - Li4= - - URLString - .. - UserName - <null> - WindowsPath - .. - Out-NSResults absoluteString @@ -20033,7 +7232,7 @@ deletingLastPathComponent ../../ deletingLastPathExtension - . + .. fragment <null> host @@ -20078,103 +7277,6 @@ NSURLWithString In-Url ../ - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../ - URLBytes - - Li4v - - URLData - - Li4v - - URLString - ../ - UserName - <null> - WindowsPath - .. - Out-NSResults absoluteString @@ -20186,7 +7288,7 @@ deletingLastPathComponent ../../ deletingLastPathExtension - ./ + ../ fragment <null> host @@ -20231,103 +7333,6 @@ NSURLWithString In-Url ../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Li4vZw== - - URLData - - Li4vZw== - - URLString - ../g - UserName - <null> - WindowsPath - ..\g - Out-NSResults absoluteString @@ -20385,103 +7390,6 @@ NSURLWithString In-Url ../.. - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../.. - URLBytes - - Li4vLi4= - - URLData - - Li4vLi4= - - URLString - ../.. - UserName - <null> - WindowsPath - ..\.. - Out-NSResults absoluteString @@ -20493,7 +7401,7 @@ deletingLastPathComponent ../../../ deletingLastPathExtension - ../. + ../.. fragment <null> host @@ -20537,103 +7445,6 @@ NSURLWithString In-Url ../../ - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - .././ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../ - URLBytes - - Li4vLi4v - - URLData - - Li4vLi4v - - URLString - ../../ - UserName - <null> - WindowsPath - ..\.. - Out-NSResults absoluteString @@ -20645,7 +7456,7 @@ deletingLastPathComponent ../../../ deletingLastPathExtension - .././ + ../../ fragment <null> host @@ -20689,103 +7500,6 @@ NSURLWithString In-Url ../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../g - URLBytes - - Li4vLi4vZw== - - URLData - - Li4vLi4vZw== - - URLString - ../../g - UserName - <null> - WindowsPath - ..\..\g - Out-NSResults absoluteString @@ -20842,103 +7556,6 @@ NSURLWithString In-Url ../../../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../g - URLBytes - - Li4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vZw== - - URLString - ../../../g - UserName - <null> - WindowsPath - ..\..\..\g - Out-NSResults absoluteString @@ -20996,103 +7613,6 @@ NSURLWithString In-Url ../../../../g - Out-CFResults - - AbsoluteURLString - http://a/../../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 13) (0, 13) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../../g - URLBytes - - Li4vLi4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vLi4vZw== - - URLString - ../../../../g - UserName - <null> - WindowsPath - ..\..\..\..\g - Out-NSResults absoluteString @@ -21151,103 +7671,6 @@ NSURLWithString In-Url /./g - Out-CFResults - - AbsoluteURLString - http://a/./g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4vZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Ly4vZw== - - URLData - - Ly4vZw== - - URLString - /./g - UserName - <null> - WindowsPath - \.\g - Out-NSResults absoluteString @@ -21305,103 +7728,6 @@ NSURLWithString In-Url /../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Ly4uL2c= - - URLData - - Ly4uL2c= - - URLString - /../g - UserName - <null> - WindowsPath - \..\g - Out-NSResults absoluteString @@ -21459,103 +7785,6 @@ NSURLWithString In-Url g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g. - URLBytes - - Zy4= - - URLData - - Zy4= - - URLString - g. - UserName - <null> - WindowsPath - g. - Out-NSResults absoluteString @@ -21567,7 +7796,7 @@ deletingLastPathComponent ./ deletingLastPathExtension - g + g. fragment <null> host @@ -21614,103 +7843,6 @@ NSURLWithString In-Url .g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - .g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .g - URLBytes - - Lmc= - - URLData - - Lmc= - - URLString - .g - UserName - <null> - WindowsPath - .g - Out-NSResults absoluteString @@ -21722,7 +7854,7 @@ deletingLastPathComponent ./ deletingLastPathExtension - + .g fragment <null> host @@ -21769,103 +7901,6 @@ NSURLWithString In-Url g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g.. - URLBytes - - Zy4u - - URLData - - Zy4u - - URLString - g.. - UserName - <null> - WindowsPath - g.. - Out-NSResults absoluteString @@ -21877,7 +7912,7 @@ deletingLastPathComponent ./ deletingLastPathExtension - g. + g.. fragment <null> host @@ -21924,103 +7959,6 @@ NSURLWithString In-Url ..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - ..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..g - URLBytes - - Li5n - - URLData - - Li5n - - URLString - ..g - UserName - <null> - WindowsPath - ..g - Out-NSResults absoluteString @@ -22079,103 +8017,6 @@ NSURLWithString In-Url ./../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./../g - URLBytes - - Li8uLi9n - - URLData - - Li8uLi9n - - URLString - ./../g - UserName - <null> - WindowsPath - .\..\g - Out-NSResults absoluteString @@ -22233,103 +8074,6 @@ NSURLWithString In-Url ./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - ./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g/. - URLBytes - - Li9nLy4= - - URLData - - Li9nLy4= - - URLString - ./g/. - UserName - <null> - WindowsPath - .\g\. - Out-NSResults absoluteString @@ -22341,7 +8085,7 @@ deletingLastPathComponent ./g/../ deletingLastPathExtension - ./g/ + ./g/. fragment <null> host @@ -22388,103 +8132,6 @@ NSURLWithString In-Url g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/./h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/./h - URLBytes - - Zy8uL2g= - - URLData - - Zy8uL2g= - - URLString - g/./h - UserName - <null> - WindowsPath - g\.\h - Out-NSResults absoluteString @@ -22544,103 +8191,6 @@ NSURLWithString In-Url g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/../h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9o - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/../h - URLBytes - - Zy8uLi9o - - URLData - - Zy8uLi9o - - URLString - g/../h - UserName - <null> - WindowsPath - g\..\h - Out-NSResults absoluteString @@ -22699,103 +8249,6 @@ NSURLWithString In-Url g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 7) (1, 8) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (2, 7) (1, 8) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/./y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/./y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi95 - - URLData - - Zzt4PTEvLi95 - - URLString - g;x=1/./y - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -22854,103 +8307,6 @@ NSURLWithString In-Url g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 8) (1, 9) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (2, 8) (1, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/../y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/../y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi4veQ== - - URLData - - Zzt4PTEvLi4veQ== - - URLString - g;x=1/../y - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -23009,103 +8365,6 @@ NSURLWithString In-Url g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 5) (1, 6) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4veA== - - URLData - - Zz95Ly4veA== - - URLString - g?y/./x - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -23164,103 +8423,6 @@ NSURLWithString In-Url g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 6) (1, 7) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4uL3g= - - URLData - - Zz95Ly4uL3g= - - URLString - g?y/../x - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -23319,103 +8481,6 @@ NSURLWithString In-Url g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 5) (1, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4veA== - - URLData - - ZyNzLy4veA== - - URLString - g#s/./x - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -23474,103 +8539,6 @@ NSURLWithString In-Url g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 6) (1, 7) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4uL3g= - - URLData - - ZyNzLy4uL3g= - - URLString - g#s/../x - UserName - <null> - WindowsPath - g - Out-NSResults absoluteString @@ -23629,99 +8597,6 @@ NSURLWithString In-Url http:g - Out-CFResults - - AbsoluteURLString - http:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDpn - - URLData - - aHR0cDpn - - URLString - http:g - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -23747,7 +8622,7 @@ path pathComponents - <null> + pathExtension port @@ -23775,99 +8650,6 @@ NSURLWithString In-Url file:g - Out-CFResults - - AbsoluteURLString - file:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTpn - - URLData - - ZmlsZTpn - - URLString - file:g - UserName - <null> - WindowsPath - <null> - Out-NSResults absoluteString @@ -23893,7 +8675,7 @@ path pathComponents - <null> + pathExtension port @@ -23921,103 +8703,6 @@ NSURLWithString In-Url http:/g - Out-CFResults - - AbsoluteURLString - http:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovZw== - - URLData - - aHR0cDovZw== - - URLString - http:/g - UserName - <null> - WindowsPath - \g - Out-NSResults absoluteString @@ -24074,103 +8759,6 @@ NSURLWithString In-Url file:/g - Out-CFResults - - AbsoluteURLString - file:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - g - URLBytes - - ZmlsZTovZw== - - URLData - - ZmlsZTovZw== - - URLString - file:/g - UserName - <null> - WindowsPath - \g - Out-NSResults absoluteString @@ -24227,103 +8815,6 @@ NSURLWithString In-Url /Images/foo.gif - Out-CFResults - - AbsoluteURLString - http://macosx.apple.com/Images/foo.gif - BaseURLString - http://macosx.apple.com - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 15) (0, 15) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /Images/ - DeletingLastPathComponent-BaseURL - http://macosx.apple.com - DeletingPathExtension - /Images/foo - DeletingPathExtension-BaseURL - http://macosx.apple.com - FileSystemRepresentation - - L0ltYWdlcy9mb28uZ2lm - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - macosx.apple.com - IsAbsolute - - LastPathComponent - foo.gif - NetLocation - macosx.apple.com - POSIXPath - /Images/foo.gif - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Images/foo.gif - PathExtension - gif - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - Images/foo.gif - URLBytes - - L0ltYWdlcy9mb28uZ2lm - - URLData - - L0ltYWdlcy9mb28uZ2lm - - URLString - /Images/foo.gif - UserName - <null> - WindowsPath - \Images\foo.gif - Out-NSResults absoluteString @@ -24381,103 +8872,6 @@ NSURLWithString In-Url ../artist/720703 - Out-CFResults - - AbsoluteURLString - http://www.ticketmaster.com/../artist/720703 - BaseURLString - http://www.ticketmaster.com/search?keyword=tool - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 16) (0, 16) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../artist/ - DeletingLastPathComponent-BaseURL - http://www.ticketmaster.com/search?keyword=tool - DeletingPathExtension - ../artist/720703 - DeletingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - FileSystemRepresentation - - Ly4uL2FydGlzdC83MjA3MDM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.ticketmaster.com - IsAbsolute - - LastPathComponent - 720703 - NetLocation - www.ticketmaster.com - POSIXPath - ../artist/720703 - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../artist/720703 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../artist/720703 - URLBytes - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLData - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLString - ../artist/720703 - UserName - <null> - WindowsPath - ..\artist\720703 - Out-NSResults absoluteString @@ -24536,8 +8930,6 @@ NSURLWithString In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - <null url> Out-NSResults <null url> @@ -24550,103 +8942,6 @@ NSURLWithString In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults absoluteString @@ -24704,170 +8999,6 @@ NSURLWithString In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AbsoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - BaseURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - CanBeDecomposed - - ComponentFragment - (-1, 0) (1114, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 34) (0, 35) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (35, 1079) (34, 1080) - ComponentResourceSpecifier - (35, 1079) (34, 1080) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingLastPathComponent-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - DeletingPathExtension - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - FileSystemRepresentation - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::7e6d:62ff:fe75:9e88%en0 - IsAbsolute - - LastPathComponent - items - NetLocation - [fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - POSIXPath - databases/76/containers/2891/items - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - databases/76/containers/2891/items - PathExtension - <null> - PortNumber - 3689 - QueryString-Escaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - QueryString-Unescaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - ResourceSpecifier - ?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Scheme - http - StrictPath - databases/76/containers/2891/items - URLBytes - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLData - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLString - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - UserName - <null> - WindowsPath - databases\76\containers\2891\items - Out-NSResults absoluteString @@ -24926,103 +9057,6 @@ NSURLWithString In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults absoluteString @@ -25080,103 +9114,6 @@ NSURLWithString In-Url http://a/b/c/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/. - URLBytes - - aHR0cDovL2EvYi9jLy4= - - URLData - - aHR0cDovL2EvYi9jLy4= - - URLString - http://a/b/c/. - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults absoluteString @@ -25188,7 +9125,7 @@ deletingLastPathComponent http://a/b/c/../ deletingLastPathExtension - http://a/b/c/ + http://a/b/c/. fragment <null> host @@ -25233,103 +9170,6 @@ NSURLWithString In-Url http://a/b/c/./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/./ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./ - URLBytes - - aHR0cDovL2EvYi9jLy4v - - URLData - - aHR0cDovL2EvYi9jLy4v - - URLString - http://a/b/c/./ - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults absoluteString @@ -25341,7 +9181,7 @@ deletingLastPathComponent http://a/b/c/../ deletingLastPathExtension - http://a/b/c// + http://a/b/c/./ fragment <null> host @@ -25386,103 +9226,6 @@ NSURLWithString In-Url http://a/b/c/.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.. - URLBytes - - aHR0cDovL2EvYi9jLy4u - - URLData - - aHR0cDovL2EvYi9jLy4u - - URLString - http://a/b/c/.. - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults absoluteString @@ -25494,7 +9237,7 @@ deletingLastPathComponent http://a/b/c/../../ deletingLastPathExtension - http://a/b/c/. + http://a/b/c/.. fragment <null> host @@ -25539,103 +9282,6 @@ NSURLWithString In-Url http://a/b/c/../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLw== - - URLString - http://a/b/c/../ - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults absoluteString @@ -25647,7 +9293,7 @@ deletingLastPathComponent http://a/b/c/../../ deletingLastPathExtension - http://a/b/c/./ + http://a/b/c/../ fragment <null> host @@ -25692,103 +9338,6 @@ NSURLWithString In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults absoluteString @@ -25846,103 +9395,6 @@ NSURLWithString In-Url http://a/b/c/../.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../.. - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4u - - URLData - - aHR0cDovL2EvYi9jLy4uLy4u - - URLString - http://a/b/c/../.. - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults absoluteString @@ -25954,7 +9406,7 @@ deletingLastPathComponent http://a/b/c/../../../ deletingLastPathExtension - http://a/b/c/../. + http://a/b/c/../.. fragment <null> host @@ -26000,103 +9452,6 @@ NSURLWithString In-Url http://a/b/c/../../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/.././ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLString - http://a/b/c/../../ - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults absoluteString @@ -26108,7 +9463,7 @@ deletingLastPathComponent http://a/b/c/../../../ deletingLastPathExtension - http://a/b/c/.././ + http://a/b/c/../../ fragment <null> host @@ -26154,103 +9509,6 @@ NSURLWithString In-Url http://a/b/c/../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 12) (8, 12) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLString - http://a/b/c/../../g - UserName - <null> - WindowsPath - \b\c\..\..\g - Out-NSResults absoluteString @@ -26309,103 +9567,6 @@ NSURLWithString In-Url http://a/b/c/../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 15) (8, 15) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\g - Out-NSResults absoluteString @@ -26465,103 +9626,6 @@ NSURLWithString In-Url http://a/b/c/../../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 18) (8, 18) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\..\g - Out-NSResults absoluteString @@ -26622,103 +9686,6 @@ NSURLWithString In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults absoluteString @@ -26776,103 +9743,6 @@ NSURLWithString In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults absoluteString @@ -26930,103 +9800,6 @@ NSURLWithString In-Url http://a/b/c/g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - /b/c/g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g. - URLBytes - - aHR0cDovL2EvYi9jL2cu - - URLData - - aHR0cDovL2EvYi9jL2cu - - URLString - http://a/b/c/g. - UserName - <null> - WindowsPath - \b\c\g. - Out-NSResults absoluteString @@ -27038,7 +9811,7 @@ deletingLastPathComponent http://a/b/c/ deletingLastPathExtension - http://a/b/c/g + http://a/b/c/g. fragment <null> host @@ -27083,103 +9856,6 @@ NSURLWithString In-Url http://a/b/c/.g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - /b/c/.g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.g - URLBytes - - aHR0cDovL2EvYi9jLy5n - - URLData - - aHR0cDovL2EvYi9jLy5n - - URLString - http://a/b/c/.g - UserName - <null> - WindowsPath - \b\c\.g - Out-NSResults absoluteString @@ -27191,7 +9867,7 @@ deletingLastPathComponent http://a/b/c/ deletingLastPathExtension - http://a/b/c/ + http://a/b/c/.g fragment <null> host @@ -27236,103 +9912,6 @@ NSURLWithString In-Url http://a/b/c/g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - /b/c/g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g.. - URLBytes - - aHR0cDovL2EvYi9jL2cuLg== - - URLData - - aHR0cDovL2EvYi9jL2cuLg== - - URLString - http://a/b/c/g.. - UserName - <null> - WindowsPath - \b\c\g.. - Out-NSResults absoluteString @@ -27344,7 +9923,7 @@ deletingLastPathComponent http://a/b/c/ deletingLastPathExtension - http://a/b/c/g. + http://a/b/c/g.. fragment <null> host @@ -27389,103 +9968,6 @@ NSURLWithString In-Url http://a/b/c/..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - /b/c/..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/..g - URLBytes - - aHR0cDovL2EvYi9jLy4uZw== - - URLData - - aHR0cDovL2EvYi9jLy4uZw== - - URLString - http://a/b/c/..g - UserName - <null> - WindowsPath - \b\c\..g - Out-NSResults absoluteString @@ -27542,103 +10024,6 @@ NSURLWithString In-Url http://a/b/c/./../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./../g - URLBytes - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLString - http://a/b/c/./../g - UserName - <null> - WindowsPath - \b\c\.\..\g - Out-NSResults absoluteString @@ -27697,103 +10082,6 @@ NSURLWithString In-Url http://a/b/c/./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2cvLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g/. - URLBytes - - aHR0cDovL2EvYi9jLy4vZy8u - - URLData - - aHR0cDovL2EvYi9jLy4vZy8u - - URLString - http://a/b/c/./g/. - UserName - <null> - WindowsPath - \b\c\.\g\. - Out-NSResults absoluteString @@ -27805,7 +10093,7 @@ deletingLastPathComponent http://a/b/c/./g/../ deletingLastPathExtension - http://a/b/c/./g/ + http://a/b/c/./g/. fragment <null> host @@ -27852,103 +10140,6 @@ NSURLWithString In-Url http://a/b/c/g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/./h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/./h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4vaA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/./h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi9o - - URLData - - aHR0cDovL2EvYi9jL2cvLi9o - - URLString - http://a/b/c/g/./h - UserName - <null> - WindowsPath - \b\c\g\.\h - Out-NSResults absoluteString @@ -28007,103 +10198,6 @@ NSURLWithString In-Url http://a/b/c/g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/../h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/../h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4uL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/../h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLData - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLString - http://a/b/c/g/../h - UserName - <null> - WindowsPath - \b\c\g\..\h - Out-NSResults absoluteString @@ -28162,103 +10256,6 @@ NSURLWithString In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (22, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 7) (14, 8) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (22, 0) - ComponentResourceSpecifier - (15, 7) (14, 8) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/./y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/./y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLString - http://a/b/c/g;x=1/./y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -28315,103 +10312,6 @@ NSURLWithString In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 8) (14, 9) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (15, 8) (14, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/../y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/../y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLString - http://a/b/c/g;x=1/../y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -28468,103 +10368,6 @@ NSURLWithString In-Url http://a/b/c/g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 5) (14, 6) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLString - http://a/b/c/g?y/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -28621,103 +10424,6 @@ NSURLWithString In-Url http://a/b/c/g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 6) (14, 7) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLString - http://a/b/c/g?y/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -28774,103 +10480,6 @@ NSURLWithString In-Url http://a/b/c/g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 5) (14, 6) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLString - http://a/b/c/g#s/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -28927,103 +10536,6 @@ NSURLWithString In-Url http://a/b/c/g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 6) (14, 7) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLString - http://a/b/c/g#s/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults absoluteString @@ -29080,103 +10592,6 @@ NSURLWithString In-Url http://a/../../x - Out-CFResults - - AbsoluteURLString - http://a/../../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/../../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy4uL3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /../../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../x - URLBytes - - aHR0cDovL2EvLi4vLi4veA== - - URLData - - aHR0cDovL2EvLi4vLi4veA== - - URLString - http://a/../../x - UserName - <null> - WindowsPath - \..\..\x - Out-NSResults absoluteString @@ -29233,103 +10648,6 @@ NSURLWithString In-Url http://a/..///../x - Out-CFResults - - AbsoluteURLString - http://a/..///../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/..///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/..///../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy8vLi4veA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /..///../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /..///../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..///../x - URLBytes - - aHR0cDovL2EvLi4vLy8uLi94 - - URLData - - aHR0cDovL2EvLi4vLy8uLi94 - - URLString - http://a/..///../x - UserName - <null> - WindowsPath - \..\\\..\x - Out-NSResults absoluteString @@ -29386,151 +10704,8 @@ CFURLCreateWithString In-Url file:///usr/local/bin - Out-CFResults - - AbsoluteURLString - file:///usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 14) (4, 17) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLString - file:///usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:///usr/local/bin - absoluteURLString - file:///usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:///usr/local/ - deletingLastPathExtension - file:///usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:///usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -29539,151 +10714,8 @@ CFURLCreateWithString In-Url file:/usr/local/bin - Out-CFResults - - AbsoluteURLString - file:/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 14) (4, 15) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLData - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLString - file:/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:/usr/local/bin - absoluteURLString - file:/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:/usr/local/ - deletingLastPathExtension - file:/usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:/usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -29692,151 +10724,8 @@ CFURLCreateWithString In-Url file://localhost/usr/local/bin - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 14) (16, 14) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLString - file://localhost/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin - absoluteURLString - file://localhost/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin - scheme - file - standardizedURL - file://localhost/usr/local/bin - user - <null> - + <null url> In-Title @@ -29845,150 +10734,8 @@ CFURLCreateWithString In-Url file://usr/local/bin - Out-CFResults - - AbsoluteURLString - file://usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 10) (10, 10) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2xvY2FsL2Jpbg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - usr - IsAbsolute - - LastPathComponent - bin - NetLocation - usr - POSIXPath - /local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - local/bin - URLBytes - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLData - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLString - file://usr/local/bin - UserName - <null> - WindowsPath - \local\bin - Out-NSResults - - absoluteString - file://usr/local/bin - absoluteURLString - file://usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://usr/local/ - deletingLastPathExtension - file://usr/local/bin - fragment - <null> - host - usr - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /local/bin - pathComponents - - / - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /local/bin - relativeString - file://usr/local/bin - scheme - file - standardizedURL - file://usr/local/bin - user - <null> - + <null url> In-Title @@ -29997,147 +10744,8 @@ CFURLCreateWithString In-Url /usr/local/bin - Out-CFResults - - AbsoluteURLString - /usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 14) (0, 14) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /usr/local/bin - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - usr/local/bin - URLBytes - - L3Vzci9sb2NhbC9iaW4= - - URLData - - L3Vzci9sb2NhbC9iaW4= - - URLString - /usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - /usr/local/bin - absoluteURLString - /usr/local/bin - baseURLString - <null> - deletingLastPathComponent - /usr/local/ - deletingLastPathExtension - /usr/local/bin - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - /usr/local/bin - scheme - <null> - standardizedURL - /usr/local/bin - user - <null> - + <null url> In-Title @@ -30146,151 +10754,8 @@ CFURLCreateWithString In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin/ - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - file://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin/ - absoluteURLString - file://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin/ - scheme - file - standardizedURL - file://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -30299,148 +10764,8 @@ CFURLCreateWithString In-Url file://localhost/ - Out-CFResults - - AbsoluteURLString - file://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLData - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLString - file://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost/ - absoluteURLString - file://localhost/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/../ - deletingLastPathExtension - file://localhost/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file://localhost/ - scheme - file - standardizedURL - file://localhost/ - user - <null> - + <null url> In-Title @@ -30449,145 +10774,8 @@ CFURLCreateWithString In-Url file://localhost - Out-CFResults - - AbsoluteURLString - file://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2xvY2FsaG9zdA== - - URLData - - ZmlsZTovL2xvY2FsaG9zdA== - - URLString - file://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost - absoluteURLString - file://localhost - baseURLString - <null> - deletingLastPathComponent - file://localhost../ - deletingLastPathExtension - file://localhost - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://localhost - scheme - file - standardizedURL - file://localhost - user - <null> - + <null url> In-Title @@ -30596,148 +10784,8 @@ CFURLCreateWithString In-Url file:/// - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -30746,142 +10794,8 @@ CFURLCreateWithString In-Url file:// - Out-CFResults - - AbsoluteURLString - file:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovLw== - - URLData - - ZmlsZTovLw== - - URLString - file:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:// - absoluteURLString - file:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -30890,148 +10804,8 @@ CFURLCreateWithString In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -31040,142 +10814,8 @@ CFURLCreateWithString In-Url FILE:// - Out-CFResults - - AbsoluteURLString - FILE:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - FILE - StrictPath - <null> - URLBytes - - RklMRTovLw== - - URLData - - RklMRTovLw== - - URLString - FILE:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - FILE:// - absoluteURLString - FILE:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - FILE:// - scheme - FILE - standardizedURL - FILE:/// - user - <null> - + <null url> In-Title @@ -31184,149 +10824,8 @@ CFURLCreateWithString In-Url file:///Volumes - Out-CFResults - - AbsoluteURLString - file:///Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovLy9Wb2x1bWVz - - URLData - - ZmlsZTovLy9Wb2x1bWVz - - URLString - file:///Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:///Volumes - absoluteURLString - file:///Volumes - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:///Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -31335,150 +10834,8 @@ CFURLCreateWithString In-Url file:///Users/darin - Out-CFResults - - AbsoluteURLString - file:///Users/darin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///Users/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Users/darin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1VzZXJzL2Rhcmlu - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - darin - NetLocation - <null> - POSIXPath - /Users/darin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Users/darin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Users/darin - URLBytes - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLData - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLString - file:///Users/darin - UserName - <null> - WindowsPath - \Users\darin - Out-NSResults - - absoluteString - file:///Users/darin - absoluteURLString - file:///Users/darin - baseURLString - <null> - deletingLastPathComponent - file:///Users/ - deletingLastPathExtension - file:///Users/darin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - darin - password - <null> - path - /Users/darin - pathComponents - - / - Users - darin - - pathExtension - - port - <null> - query - <null> - relativePath - /Users/darin - relativeString - file:///Users/darin - scheme - file - standardizedURL - file:///Users/darin - user - <null> - + <null url> In-Title @@ -31487,148 +10844,8 @@ CFURLCreateWithString In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -31637,145 +10854,8 @@ CFURLCreateWithString In-Url file://foo - Out-CFResults - - AbsoluteURLString - file://foo - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 0) (10, 0) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://foo../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://foo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - foo - IsAbsolute - - LastPathComponent - - NetLocation - foo - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2Zvbw== - - URLData - - ZmlsZTovL2Zvbw== - - URLString - file://foo - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://foo - absoluteURLString - file://foo - baseURLString - <null> - deletingLastPathComponent - file://foo../ - deletingLastPathExtension - file://foo - fragment - <null> - host - foo - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://foo - scheme - file - standardizedURL - file://foo - user - <null> - + <null url> In-Title @@ -31784,149 +10864,8 @@ CFURLCreateWithString In-Url file:///. - Out-CFResults - - AbsoluteURLString - file:///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - . - URLBytes - - ZmlsZTovLy8u - - URLData - - ZmlsZTovLy8u - - URLString - file:///. - UserName - <null> - WindowsPath - \. - Out-NSResults - - absoluteString - file:///. - absoluteURLString - file:///. - baseURLString - <null> - deletingLastPathComponent - file:///./../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /. - pathComponents - - / - . - - pathExtension - - port - <null> - query - <null> - relativePath - /. - relativeString - file:///. - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -31935,150 +10874,8 @@ CFURLCreateWithString In-Url file:///./. - Out-CFResults - - AbsoluteURLString - file:///./. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /./. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./. - URLBytes - - ZmlsZTovLy8uLy4= - - URLData - - ZmlsZTovLy8uLy4= - - URLString - file:///./. - UserName - <null> - WindowsPath - \.\. - Out-NSResults - - absoluteString - file:///./. - absoluteURLString - file:///./. - baseURLString - <null> - deletingLastPathComponent - file:///./../ - deletingLastPathExtension - file:///./ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /./. - pathComponents - - / - . - . - - pathExtension - - port - <null> - query - <null> - relativePath - /./. - relativeString - file:///./. - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -32087,150 +10884,8 @@ CFURLCreateWithString In-Url file:///.///. - Out-CFResults - - AbsoluteURLString - file:///.///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 6) (4, 9) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///.///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /.///. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /.///. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - .///. - URLBytes - - ZmlsZTovLy8uLy8vLg== - - URLData - - ZmlsZTovLy8uLy8vLg== - - URLString - file:///.///. - UserName - <null> - WindowsPath - \.\\\. - Out-NSResults - - absoluteString - file:///.///. - absoluteURLString - file:///.///. - baseURLString - <null> - deletingLastPathComponent - file:///.///../ - deletingLastPathExtension - file:///./// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /.///. - pathComponents - - / - . - . - - pathExtension - - port - <null> - query - <null> - relativePath - /.///. - relativeString - file:///.///. - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -32239,150 +10894,8 @@ CFURLCreateWithString In-Url file:///a/.. - Out-CFResults - - AbsoluteURLString - file:///a/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 5) (4, 8) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/.. - URLBytes - - ZmlsZTovLy9hLy4u - - URLData - - ZmlsZTovLy9hLy4u - - URLString - file:///a/.. - UserName - <null> - WindowsPath - \a\.. - Out-NSResults - - absoluteString - file:///a/.. - absoluteURLString - file:///a/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/../../ - deletingLastPathExtension - file:///a/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/.. - pathComponents - - / - a - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/.. - relativeString - file:///a/.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -32391,151 +10904,8 @@ CFURLCreateWithString In-Url file:///a/b/.. - Out-CFResults - - AbsoluteURLString - file:///a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 7) (4, 10) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/.. - URLBytes - - ZmlsZTovLy9hL2IvLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4= - - URLString - file:///a/b/.. - UserName - <null> - WindowsPath - \a\b\.. - Out-NSResults - - absoluteString - file:///a/b/.. - absoluteURLString - file:///a/b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/../../ - deletingLastPathExtension - file:///a/b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/.. - relativeString - file:///a/b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -32544,151 +10914,8 @@ CFURLCreateWithString In-Url file:///a/b//.. - Out-CFResults - - AbsoluteURLString - file:///a/b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8vLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b//.. - URLBytes - - ZmlsZTovLy9hL2IvLy4u - - URLData - - ZmlsZTovLy9hL2IvLy4u - - URLString - file:///a/b//.. - UserName - <null> - WindowsPath - \a\b\\.. - Out-NSResults - - absoluteString - file:///a/b//.. - absoluteURLString - file:///a/b//.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b//../../ - deletingLastPathExtension - file:///a/b//. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b//.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b//.. - relativeString - file:///a/b//.. - scheme - file - standardizedURL - file:///a/b - user - <null> - + <null url> In-Title @@ -32697,152 +10924,8 @@ CFURLCreateWithString In-Url file:///./a/b/.. - Out-CFResults - - AbsoluteURLString - file:///./a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vYS9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /./a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./a/b/.. - URLBytes - - ZmlsZTovLy8uL2EvYi8uLg== - - URLData - - ZmlsZTovLy8uL2EvYi8uLg== - - URLString - file:///./a/b/.. - UserName - <null> - WindowsPath - \.\a\b\.. - Out-NSResults - - absoluteString - file:///./a/b/.. - absoluteURLString - file:///./a/b/.. - baseURLString - <null> - deletingLastPathComponent - file:///./a/b/../../ - deletingLastPathExtension - file:///./a/b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /./a/b/.. - pathComponents - - / - . - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /./a/b/.. - relativeString - file:///./a/b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -32851,152 +10934,8 @@ CFURLCreateWithString In-Url file:///a/./b/.. - Out-CFResults - - AbsoluteURLString - file:///a/./b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/./b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/./b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/./b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/./b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/./b/.. - URLBytes - - ZmlsZTovLy9hLy4vYi8uLg== - - URLData - - ZmlsZTovLy9hLy4vYi8uLg== - - URLString - file:///a/./b/.. - UserName - <null> - WindowsPath - \a\.\b\.. - Out-NSResults - - absoluteString - file:///a/./b/.. - absoluteURLString - file:///a/./b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/./b/../../ - deletingLastPathExtension - file:///a/./b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/./b/.. - pathComponents - - / - a - . - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/./b/.. - relativeString - file:///a/./b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -33005,152 +10944,8 @@ CFURLCreateWithString In-Url file:///a/b/./.. - Out-CFResults - - AbsoluteURLString - file:///a/b/./.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/./../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/./. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/./.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/./.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/./.. - URLBytes - - ZmlsZTovLy9hL2IvLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvLi8uLg== - - URLString - file:///a/b/./.. - UserName - <null> - WindowsPath - \a\b\.\.. - Out-NSResults - - absoluteString - file:///a/b/./.. - absoluteURLString - file:///a/b/./.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/./../../ - deletingLastPathExtension - file:///a/b/./. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/./.. - pathComponents - - / - a - b - . - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/./.. - relativeString - file:///a/b/./.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -33159,151 +10954,8 @@ CFURLCreateWithString In-Url file:///a///b//.. - Out-CFResults - - AbsoluteURLString - file:///a///b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a///b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a///b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLy9iLy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a///b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a///b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a///b//.. - URLBytes - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLData - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLString - file:///a///b//.. - UserName - <null> - WindowsPath - \a\\\b\\.. - Out-NSResults - - absoluteString - file:///a///b//.. - absoluteURLString - file:///a///b//.. - baseURLString - <null> - deletingLastPathComponent - file:///a///b//../../ - deletingLastPathExtension - file:///a///b//. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a///b//.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a///b//.. - relativeString - file:///a///b//.. - scheme - file - standardizedURL - file:///a///b - user - <null> - + <null url> In-Title @@ -33312,152 +10964,8 @@ CFURLCreateWithString In-Url file:///a/b/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/../.. - URLBytes - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLString - file:///a/b/../.. - UserName - <null> - WindowsPath - \a\b\..\.. - Out-NSResults - - absoluteString - file:///a/b/../.. - absoluteURLString - file:///a/b/../.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/../../../ - deletingLastPathExtension - file:///a/b/../. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/../.. - pathComponents - - / - a - b - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/../.. - relativeString - file:///a/b/../.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -33466,153 +10974,8 @@ CFURLCreateWithString In-Url file:///a/b/c/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi9jLy4uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/c/../.. - URLBytes - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLString - file:///a/b/c/../.. - UserName - <null> - WindowsPath - \a\b\c\..\.. - Out-NSResults - - absoluteString - file:///a/b/c/../.. - absoluteURLString - file:///a/b/c/../.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/c/../../../ - deletingLastPathExtension - file:///a/b/c/../. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/c/../.. - pathComponents - - / - a - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/c/../.. - relativeString - file:///a/b/c/../.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -33621,152 +10984,8 @@ CFURLCreateWithString In-Url file:///a/../b/.. - Out-CFResults - - AbsoluteURLString - file:///a/../b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/../b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/.. - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLString - file:///a/../b/.. - UserName - <null> - WindowsPath - \a\..\b\.. - Out-NSResults - - absoluteString - file:///a/../b/.. - absoluteURLString - file:///a/../b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../../ - deletingLastPathExtension - file:///a/../b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/../b/.. - pathComponents - - / - a - .. - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/.. - relativeString - file:///a/../b/.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -33775,153 +10994,8 @@ CFURLCreateWithString In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults - - absoluteString - file:///a/../b/../c - absoluteURLString - file:///a/../b/../c - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../ - deletingLastPathExtension - file:///a/../b/../c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /a/../b/../c - pathComponents - - / - a - .. - b - .. - c - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/../c - relativeString - file:///a/../b/../c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -33930,153 +11004,8 @@ CFURLCreateWithString In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults - - absoluteString - file:///a/../b/../c - absoluteURLString - file:///a/../b/../c - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../ - deletingLastPathExtension - file:///a/../b/../c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /a/../b/../c - pathComponents - - / - a - .. - b - .. - c - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/../c - relativeString - file:///a/../b/../c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -34085,145 +11014,8 @@ CFURLCreateWithString In-Url ftp://ftp.gnu.org - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 0) (17, 0) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - - NetLocation - ftp.gnu.org - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - <null> - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLString - ftp://ftp.gnu.org - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org - absoluteURLString - ftp://ftp.gnu.org - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org../ - deletingLastPathExtension - ftp://ftp.gnu.org - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - ftp://ftp.gnu.org - scheme - ftp - standardizedURL - ftp://ftp.gnu.org - user - <null> - + <null url> In-Title @@ -34232,148 +11024,8 @@ CFURLCreateWithString In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 1) (17, 1) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - / - NetLocation - ftp.gnu.org - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLString - ftp://ftp.gnu.org/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/ - absoluteURLString - ftp://ftp.gnu.org/ - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/../ - deletingLastPathExtension - ftp://ftp.gnu.org/ - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - ftp://ftp.gnu.org/ - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/ - user - <null> - + <null url> In-Title @@ -34382,150 +11034,8 @@ CFURLCreateWithString In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 8) (17, 8) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/pub/gnu - absoluteURLString - ftp://ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/pub/gnu - user - <null> - + <null url> In-Title @@ -34534,150 +11044,8 @@ CFURLCreateWithString In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (12, 11) (11, 12) - ComponentNetLocation - (6, 17) (3, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (11, 0) - ComponentPath - (23, 8) (23, 8) - ComponentPort - (-1, 0) (23, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 5) (3, 9) - DeletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://luser@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -34686,150 +11054,8 @@ CFURLCreateWithString In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 11) (6, 12) - ComponentNetLocation - (6, 12) (3, 15) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (18, 8) (18, 8) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 0) (3, 4) - DeletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - @ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLData - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLString - ftp://@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -34838,152 +11064,8 @@ CFURLCreateWithString In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (21, 11) (20, 12) - ComponentNetLocation - (6, 26) (3, 29) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (12, 8) (11, 10) - ComponentPath - (32, 8) (32, 8) - ComponentPort - (-1, 0) (32, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 14) (3, 18) - DeletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser:password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLString - ftp://luser:password@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser:password@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -34992,152 +11074,8 @@ CFURLCreateWithString In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (35, 0) - ComponentHost - (16, 11) (15, 12) - ComponentNetLocation - (6, 21) (3, 24) - ComponentParameterString - (-1, 0) (35, 0) - ComponentPassword - (7, 8) (6, 10) - ComponentPath - (27, 8) (27, 8) - ComponentPort - (-1, 0) (27, 0) - ComponentQuery - (-1, 0) (35, 0) - ComponentResourceSpecifier - (-1, 0) (35, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 9) (3, 13) - DeletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - :password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLData - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLString - ftp://:password@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://:password@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -35146,150 +11084,8 @@ CFURLCreateWithString In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (6, 11) (3, 15) - ComponentNetLocation - (6, 14) (3, 17) - ComponentParameterString - (-1, 0) (28, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (20, 8) (20, 8) - ComponentPort - (18, 2) (17, 3) - ComponentQuery - (-1, 0) (28, 0) - ComponentResourceSpecifier - (-1, 0) (28, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org:72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org:72/pub/gnu - absoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org:72/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org:72/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org:72/pub/gnu - user - <null> - + <null url> In-Title @@ -35298,150 +11094,8 @@ CFURLCreateWithString In-Url ftp://:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 0) (3, 4) - ComponentNetLocation - (6, 3) (3, 6) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (9, 8) (9, 8) - ComponentPort - (7, 2) (6, 3) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - - IsAbsolute - - LastPathComponent - gnu - NetLocation - :72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLData - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLString - ftp://:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:72/pub/gnu - absoluteURLString - ftp://:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:72/pub/ - deletingLastPathExtension - ftp://:72/pub/gnu - fragment - <null> - host - - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:72/pub/gnu - scheme - ftp - standardizedURL - ftp://:72/pub/gnu - user - <null> - + <null url> In-Title @@ -35450,151 +11104,8 @@ CFURLCreateWithString In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - http://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - usr/local/bin/ - URLBytes - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - http://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - http://localhost/usr/local/bin/ - absoluteURLString - http://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/usr/local/ - deletingLastPathExtension - http://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - http://localhost/usr/local/bin/ - scheme - http - standardizedURL - http://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -35603,148 +11114,8 @@ CFURLCreateWithString In-Url http://localhost/ - Out-CFResults - - AbsoluteURLString - http://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2xvY2FsaG9zdC8= - - URLData - - aHR0cDovL2xvY2FsaG9zdC8= - - URLString - http://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost/ - absoluteURLString - http://localhost/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/../ - deletingLastPathExtension - http://localhost/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://localhost/ - scheme - http - standardizedURL - http://localhost/ - user - <null> - + <null url> In-Title @@ -35753,145 +11124,8 @@ CFURLCreateWithString In-Url http://localhost - Out-CFResults - - AbsoluteURLString - http://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2xvY2FsaG9zdA== - - URLData - - aHR0cDovL2xvY2FsaG9zdA== - - URLString - http://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost - absoluteURLString - http://localhost - baseURLString - <null> - deletingLastPathComponent - http://localhost../ - deletingLastPathExtension - http://localhost - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://localhost - scheme - http - standardizedURL - http://localhost - user - <null> - + <null url> In-Title @@ -35900,145 +11134,8 @@ CFURLCreateWithString In-Url http://www.apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 0) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLString - http://www.apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com - absoluteURLString - http://www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../ - deletingLastPathExtension - http://www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple.com - scheme - http - standardizedURL - http://www.apple.com - user - <null> - + <null url> In-Title @@ -36047,148 +11144,8 @@ CFURLCreateWithString In-Url http://www.apple.com/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 1) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - / - NetLocation - www.apple.com - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLString - http://www.apple.com/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com/ - absoluteURLString - http://www.apple.com/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/../ - deletingLastPathExtension - http://www.apple.com/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://www.apple.com/ - scheme - http - standardizedURL - http://www.apple.com/ - user - <null> - + <null url> In-Title @@ -36197,149 +11154,8 @@ CFURLCreateWithString In-Url http://www.apple.com/dir - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (24, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (24, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 4) (20, 4) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (24, 0) - ComponentResourceSpecifier - (-1, 0) (24, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLString - http://www.apple.com/dir - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir - absoluteURLString - http://www.apple.com/dir - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir - scheme - http - standardizedURL - http://www.apple.com/dir - user - <null> - + <null url> In-Title @@ -36348,149 +11164,8 @@ CFURLCreateWithString In-Url http://www.apple.com/dir/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 5) (20, 5) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLString - http://www.apple.com/dir/ - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir/ - absoluteURLString - http://www.apple.com/dir/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir/ - scheme - http - standardizedURL - http://www.apple.com/dir/ - user - <null> - + <null url> In-Title @@ -36499,145 +11174,8 @@ CFURLCreateWithString In-Url http://www.apple.com:80 - Out-CFResults - - AbsoluteURLString - http://www.apple.com:80 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 13) (4, 17) - ComponentNetLocation - (7, 16) (4, 19) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (23, 0) (23, 0) - ComponentPort - (21, 2) (20, 3) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com:80../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com:80 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com:80 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLString - http://www.apple.com:80 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com:80 - absoluteURLString - http://www.apple.com:80 - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com:80../ - deletingLastPathExtension - http://www.apple.com:80 - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - 80 - query - <null> - relativePath - - relativeString - http://www.apple.com:80 - scheme - http - standardizedURL - http://www.apple.com:80 - user - <null> - + <null url> In-Title @@ -36646,151 +11184,8 @@ CFURLCreateWithString In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AbsoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (20, 13) (19, 15) - ComponentNetLocation - (7, 29) (4, 32) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (13, 6) (12, 8) - ComponentPath - (36, 5) (36, 5) - ComponentPort - (34, 2) (33, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 12) (4, 16) - DeletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:nothin@www.apple.com:42/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - darin:nothin@www.apple.com:42 - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - nothin - Path - /dir/ - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLData - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLString - http://darin:nothin@www.apple.com:42/dir/ - UserName - darin - WindowsPath - \dir - Out-NSResults - - absoluteString - http://darin:nothin@www.apple.com:42/dir/ - absoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - baseURLString - <null> - deletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - deletingLastPathExtension - http://darin:nothin@www.apple.com:42/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - nothin - path - /dir - pathComponents - - / - dir - - pathExtension - - port - 42 - query - <null> - relativePath - /dir - relativeString - http://darin:nothin@www.apple.com:42/dir/ - scheme - http - standardizedURL - http://darin:nothin@www.apple.com:42/dir/ - user - darin - + <null url> In-Title @@ -36799,148 +11194,8 @@ CFURLCreateWithString In-Url http:/ - Out-CFResults - - AbsoluteURLString - http:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDov - - URLData - - aHR0cDov - - URLString - http:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:/ - absoluteURLString - http:/ - baseURLString - <null> - deletingLastPathComponent - http:/../ - deletingLastPathExtension - http:/ - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http:/ - scheme - http - standardizedURL - http:/// - user - <null> - + <null url> In-Title @@ -36949,151 +11204,8 @@ CFURLCreateWithString In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com/query?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (48, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 6) (20, 7) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (27, 21) (26, 22) - ComponentResourceSpecifier - (27, 21) (26, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/query?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3F1ZXJ5 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - query - NetLocation - www.apple.com - POSIXPath - /query - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /query - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - query - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLString - http://www.apple.com/query?email=darin@apple.com - UserName - <null> - WindowsPath - \query - Out-NSResults - - absoluteString - http://www.apple.com/query?email=darin@apple.com - absoluteURLString - http://www.apple.com/query?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com/query?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - query - password - <null> - path - /query - pathComponents - - / - query - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - /query - relativeString - http://www.apple.com/query?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com/query?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -37102,147 +11214,8 @@ CFURLCreateWithString In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (42, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (21, 21) (20, 22) - ComponentResourceSpecifier - (21, 21) (20, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLString - http://www.apple.com?email=darin@apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com?email=darin@apple.com - absoluteURLString - http://www.apple.com?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - - relativeString - http://www.apple.com?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -37251,145 +11224,8 @@ CFURLCreateWithString In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 0) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - - NetLocation - WWW.ZOO.COM - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - <null> - URLBytes - - SFRUUDovL1dXVy5aT08uQ09N - - URLData - - SFRUUDovL1dXVy5aT08uQ09N - - URLString - HTTP://WWW.ZOO.COM - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM - absoluteURLString - HTTP://WWW.ZOO.COM - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - HTTP://WWW.ZOO.COM - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM - user - <null> - + <null url> In-Title @@ -37398,148 +11234,8 @@ CFURLCreateWithString In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 1) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - / - NetLocation - WWW.ZOO.COM - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLData - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLString - HTTP://WWW.ZOO.COM/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ - absoluteURLString - HTTP://WWW.ZOO.COM/ - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - HTTP://WWW.ZOO.COM/ - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ - user - <null> - + <null url> In-Title @@ -37548,149 +11244,8 @@ CFURLCreateWithString In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ED - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 3) (18, 3) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ED - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L0VE - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - ED - NetLocation - WWW.ZOO.COM - POSIXPath - /ED - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /ED - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - ED - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLData - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLString - HTTP://WWW.ZOO.COM/ED - UserName - <null> - WindowsPath - \ED - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ED - absoluteURLString - HTTP://WWW.ZOO.COM/ED - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ED - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - ED - password - <null> - path - /ED - pathComponents - - / - ED - - pathExtension - - port - <null> - query - <null> - relativePath - /ED - relativeString - HTTP://WWW.ZOO.COM/ED - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ED - user - <null> - + <null url> In-Title @@ -37699,155 +11254,8 @@ CFURLCreateWithString In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AbsoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (99, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (45, 43) (44, 45) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 29) (15, 30) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (89, 10) (88, 11) - ComponentResourceSpecifier - (45, 54) (44, 55) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BjL2NhdGFsb2cvU2VnYVByb2R1Y3Quamh0bWw= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - sega.com - IsAbsolute - - LastPathComponent - SegaProduct.jhtml - NetLocation - sega.com - POSIXPath - /pc/catalog/SegaProduct.jhtml - ParameterString-Escaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - ParameterString-Unescaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - Password - <null> - Path - /pc/catalog/SegaProduct.jhtml - PathExtension - jhtml - PortNumber - -1 - QueryString-Escaped - PRODID=193 - QueryString-Unescaped - PRODID=193 - ResourceSpecifier - ;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Scheme - http - StrictPath - pc/catalog/SegaProduct.jhtml - URLBytes - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLData - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - UserName - <null> - WindowsPath - \pc\catalog\SegaProduct.jhtml - Out-NSResults - - absoluteString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - absoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - baseURLString - <null> - deletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - deletingLastPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - fragment - <null> - host - sega.com - isFileURL - NO - lastPathComponent - SegaProduct.jhtml - password - <null> - path - /pc/catalog/SegaProduct.jhtml - pathComponents - - / - pc - catalog - SegaProduct.jhtml - - pathExtension - jhtml - port - <null> - query - PRODID=193 - relativePath - /pc/catalog/SegaProduct.jhtml - relativeString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - scheme - http - standardizedURL - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - user - <null> - + <null url> In-Title @@ -37856,153 +11264,8 @@ CFURLCreateWithString In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AbsoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (75, 0) - ComponentHost - (7, 17) (4, 20) - ComponentNetLocation - (7, 17) (4, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (24, 7) (24, 8) - ComponentPort - (-1, 0) (24, 0) - ComponentQuery - (32, 43) (31, 44) - ComponentResourceSpecifier - (32, 43) (31, 44) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2dyb3Vwcw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - groups.google.com - IsAbsolute - - LastPathComponent - groups - NetLocation - groups.google.com - POSIXPath - /groups - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /groups - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - QueryString-Unescaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - ResourceSpecifier - ?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Scheme - http - StrictPath - groups - URLBytes - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLData - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - UserName - <null> - WindowsPath - \groups - Out-NSResults - - absoluteString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - absoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - baseURLString - <null> - deletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - deletingLastPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - fragment - <null> - host - groups.google.com - isFileURL - NO - lastPathComponent - groups - password - <null> - path - /groups - pathComponents - - / - groups - - pathExtension - - port - <null> - query - as_uauthors=joe@blow.com&as_scoring=d&hl=en - relativePath - /groups - relativeString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - scheme - http - standardizedURL - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - user - <null> - + <null url> In-Title @@ -38011,152 +11274,8 @@ CFURLCreateWithString In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com/some/page.html#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (34, 8) (33, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 15) (18, 16) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (34, 8) (33, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com/some/#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com/some/page#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGFnZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - page.html - NetLocation - my.site.com - POSIXPath - /some/page.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/page.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - some/page.html - URLBytes - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLString - http://my.site.com/some/page.html#fragment - UserName - <null> - WindowsPath - \some\page.html - Out-NSResults - - absoluteString - http://my.site.com/some/page.html#fragment - absoluteURLString - http://my.site.com/some/page.html#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com/some/#fragment - deletingLastPathExtension - http://my.site.com/some/page#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - page.html - password - <null> - path - /some/page.html - pathComponents - - / - some - page.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /some/page.html - relativeString - http://my.site.com/some/page.html#fragment - scheme - http - standardizedURL - http://my.site.com/some/page.html#fragment - user - <null> - + <null url> In-Title @@ -38165,145 +11284,8 @@ CFURLCreateWithString In-Url http://my.site.com#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 8) (18, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (19, 8) (18, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com../#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - - NetLocation - my.site.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLString - http://my.site.com#fragment - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://my.site.com#fragment - absoluteURLString - http://my.site.com#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com../#fragment - deletingLastPathExtension - http://my.site.com#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://my.site.com#fragment - scheme - http - standardizedURL - http://my.site.com#fragment - user - <null> - + <null url> In-Title @@ -38312,155 +11294,8 @@ CFURLCreateWithString In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AbsoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 8) (59, 9) - ComponentHost - (19, 4) (18, 6) - ComponentNetLocation - (9, 16) (6, 19) - ComponentParameterString - (47, 6) (46, 8) - ComponentPassword - (14, 4) (13, 6) - ComponentPath - (25, 21) (25, 22) - ComponentPort - (24, 1) (23, 2) - ComponentQuery - (54, 5) (53, 7) - ComponentResourceSpecifier - (47, 21) (46, 22) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 4) (6, 8) - ComponentUserInfo - (9, 9) (6, 13) - DeletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhdGgvcGF0aDIvZmlsZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - host - IsAbsolute - - LastPathComponent - file.html - NetLocation - user:pass@host:1 - POSIXPath - /path/path2/file.html - ParameterString-Escaped - params - ParameterString-Unescaped - params - Password - pass - Path - /path/path2/file.html - PathExtension - html - PortNumber - 1 - QueryString-Escaped - query - QueryString-Unescaped - query - ResourceSpecifier - ;params?query#fragment - Scheme - scheme - StrictPath - path/path2/file.html - URLBytes - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLData - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - UserName - user - WindowsPath - \path\path2\file.html - Out-NSResults - - absoluteString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - absoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - baseURLString - <null> - deletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - deletingLastPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - fragment - fragment - host - host - isFileURL - NO - lastPathComponent - file.html - password - pass - path - /path/path2/file.html - pathComponents - - / - path - path2 - file.html - - pathExtension - html - port - 1 - query - query - relativePath - /path/path2/file.html - relativeString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - scheme - scheme - standardizedURL - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - user - user - + <null url> In-Title @@ -38469,149 +11304,8 @@ CFURLCreateWithString In-Url http://test.com/a%20space - Out-CFResults - - AbsoluteURLString - http://test.com/a%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/a%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Egc3BhY2U= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - a space - NetLocation - test.com - POSIXPath - /a space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - a%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLString - http://test.com/a%20space - UserName - <null> - WindowsPath - \a space - Out-NSResults - - absoluteString - http://test.com/a%20space - absoluteURLString - http://test.com/a%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/a%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - a space - password - <null> - path - /a space - pathComponents - - / - a space - - pathExtension - - port - <null> - query - <null> - relativePath - /a space - relativeString - http://test.com/a%20space - scheme - http - standardizedURL - http://test.com/a%20space - user - <null> - + <null url> In-Title @@ -38620,149 +11314,8 @@ CFURLCreateWithString In-Url http://test.com/aBrace%7B - Out-CFResults - - AbsoluteURLString - http://test.com/aBrace%7B - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aBrace%7B - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FCcmFjZXs= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aBrace{ - NetLocation - test.com - POSIXPath - /aBrace{ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aBrace%7B - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aBrace%7B - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLData - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLString - http://test.com/aBrace%7B - UserName - <null> - WindowsPath - \aBrace{ - Out-NSResults - - absoluteString - http://test.com/aBrace%7B - absoluteURLString - http://test.com/aBrace%7B - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aBrace%7B - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aBrace{ - password - <null> - path - /aBrace{ - pathComponents - - / - aBrace{ - - pathExtension - - port - <null> - query - <null> - relativePath - /aBrace{ - relativeString - http://test.com/aBrace%7B - scheme - http - standardizedURL - http://test.com/aBrace%7B - user - <null> - + <null url> In-Title @@ -38771,149 +11324,8 @@ CFURLCreateWithString In-Url http://test.com/aJ%4a - Out-CFResults - - AbsoluteURLString - http://test.com/aJ%4a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 6) (15, 6) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aJ%4a - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FKSg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aJJ - NetLocation - test.com - POSIXPath - /aJJ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aJ%4a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aJ%4a - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLData - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLString - http://test.com/aJ%4a - UserName - <null> - WindowsPath - \aJJ - Out-NSResults - - absoluteString - http://test.com/aJ%4a - absoluteURLString - http://test.com/aJ%4a - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aJ%4a - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aJJ - password - <null> - path - /aJJ - pathComponents - - / - aJJ - - pathExtension - - port - <null> - query - <null> - relativePath - /aJJ - relativeString - http://test.com/aJ%4a - scheme - http - standardizedURL - http://test.com/aJ%4a - user - <null> - + <null url> In-Title @@ -38922,158 +11334,8 @@ CFURLCreateWithString In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AbsoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (133, 14) (132, 15) - ComponentHost - (35, 18) (34, 20) - ComponentNetLocation - (9, 47) (6, 50) - ComponentParameterString - (79, 15) (78, 17) - ComponentPassword - (20, 14) (19, 16) - ComponentPath - (56, 22) (56, 23) - ComponentPort - (54, 2) (53, 3) - ComponentQuery - (95, 37) (94, 39) - ComponentResourceSpecifier - (79, 68) (78, 69) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 10) (6, 14) - ComponentUserInfo - (9, 25) (6, 29) - DeletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhYFh0aC9uYWBYbWU= - - Fragment-Escaped - frag%60%58ment - Fragment-Unescaped - frag`Xment - HasDirectoryPath - - HostName - host`Xname.com - IsAbsolute - - LastPathComponent - na`Xme - NetLocation - us%60%58er:pass%60%58word@host%60%58name.com:80 - POSIXPath - /pa`Xth/na`Xme - ParameterString-Escaped - par%60%58ameter - ParameterString-Unescaped - par`Xameter - Password - pass`Xword - Path - /pa%60%58th/na%60%58me - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - qu%60%58ery=val%60%58ue&foo%60%58=bar - QueryString-Unescaped - qu`Xery=val`Xue&foo`X=bar - ResourceSpecifier - ;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Scheme - scheme - StrictPath - pa%60%58th/na%60%58me - URLBytes - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLData - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - UserName - us`Xer - WindowsPath - \pa`Xth\na`Xme - Out-NSResults - - absoluteString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - absoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - baseURLString - <null> - deletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - deletingLastPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - fragment - frag%60%58ment - host - host`Xname.com - isFileURL - NO - lastPathComponent - na`Xme - password - pass%60%58word - path - /pa`Xth/na`Xme - pathComponents - - / - pa`Xth - na`Xme - - pathExtension - - port - 80 - query - qu%60%58ery=val%60%58ue&foo%60%58=bar - relativePath - /pa`Xth/na`Xme - relativeString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - scheme - scheme - standardizedURL - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - user - us`Xer - + <null url> In-Title @@ -39082,8 +11344,6 @@ CFURLCreateWithString In-Url http://test.com/unescaped space - Out-CFResults - <null url> Out-NSResults <null url> @@ -39094,8 +11354,6 @@ CFURLCreateWithString In-Url http://test.com/unescaped|pipe - Out-CFResults - <null url> Out-NSResults <null url> @@ -39106,147 +11364,8 @@ CFURLCreateWithString In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin%20adler@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (21, 13) (20, 14) - ComponentNetLocation - (7, 27) (4, 30) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (20, 0) - ComponentPath - (34, 0) (34, 0) - ComponentPort - (-1, 0) (34, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 13) (4, 17) - ComponentUserInfo - (7, 13) (4, 17) - DeletingLastPathComponent - http://darin%20adler@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin%20adler@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin%20adler@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLData - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLString - http://darin%20adler@www.apple.com - UserName - darin adler - WindowsPath - - Out-NSResults - - absoluteString - http://darin%20adler@www.apple.com - absoluteURLString - http://darin%20adler@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin%20adler@www.apple.com../ - deletingLastPathExtension - http://darin%20adler@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin%20adler@www.apple.com - scheme - http - standardizedURL - http://darin%20adler@www.apple.com - user - darin adler - + <null url> In-Title @@ -39255,147 +11374,8 @@ CFURLCreateWithString In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin:clever%20password@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (44, 0) - ComponentHost - (31, 13) (30, 14) - ComponentNetLocation - (7, 37) (4, 40) - ComponentParameterString - (-1, 0) (44, 0) - ComponentPassword - (13, 17) (12, 19) - ComponentPath - (44, 0) (44, 0) - ComponentPort - (-1, 0) (44, 0) - ComponentQuery - (-1, 0) (44, 0) - ComponentResourceSpecifier - (-1, 0) (44, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 23) (4, 27) - DeletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:clever%20password@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin:clever%20password@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - clever password - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLString - http://darin:clever%20password@www.apple.com - UserName - darin - WindowsPath - - Out-NSResults - - absoluteString - http://darin:clever%20password@www.apple.com - absoluteURLString - http://darin:clever%20password@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - deletingLastPathExtension - http://darin:clever%20password@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - clever%20password - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin:clever%20password@www.apple.com - scheme - http - standardizedURL - http://darin:clever%20password@www.apple.com - user - darin - + <null url> In-Title @@ -39404,145 +11384,8 @@ CFURLCreateWithString In-Url http://www.apple%20computer.com - Out-CFResults - - AbsoluteURLString - http://www.apple%20computer.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 24) (4, 27) - ComponentNetLocation - (7, 24) (4, 27) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (31, 0) (31, 0) - ComponentPort - (-1, 0) (31, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple%20computer.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple%20computer.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple computer.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple%20computer.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLData - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLString - http://www.apple%20computer.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple%20computer.com - absoluteURLString - http://www.apple%20computer.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple%20computer.com../ - deletingLastPathExtension - http://www.apple%20computer.com - fragment - <null> - host - www.apple computer.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple%20computer.com - scheme - http - standardizedURL - http://www.apple%20computer.com - user - <null> - + <null url> In-Title @@ -39551,149 +11394,8 @@ CFURLCreateWithString In-Url file:///%3F - Out-CFResults - - AbsoluteURLString - file:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %3F - URLBytes - - ZmlsZTovLy8lM0Y= - - URLData - - ZmlsZTovLy8lM0Y= - - URLString - file:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - file:///%3F - absoluteURLString - file:///%3F - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%3F - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - file:///%3F - scheme - file - standardizedURL - file:///%3F - user - <null> - + <null url> In-Title @@ -39702,149 +11404,8 @@ CFURLCreateWithString In-Url file:///%78 - Out-CFResults - - AbsoluteURLString - file:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %78 - URLBytes - - ZmlsZTovLy8lNzg= - - URLData - - ZmlsZTovLy8lNzg= - - URLString - file:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///%78 - absoluteURLString - file:///%78 - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%78 - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///%78 - scheme - file - standardizedURL - file:///%78 - user - <null> - + <null url> In-Title @@ -39853,148 +11414,8 @@ CFURLCreateWithString In-Url file:///? - Out-CFResults - - AbsoluteURLString - file:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8/ - - URLData - - ZmlsZTovLy8/ - - URLString - file:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:///? - absoluteURLString - file:///? - baseURLString - <null> - deletingLastPathComponent - file:///../? - deletingLastPathExtension - file:///? - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - file:///? - scheme - file - standardizedURL - file:///? - user - <null> - + <null url> In-Title @@ -40003,149 +11424,8 @@ CFURLCreateWithString In-Url file:///& - Out-CFResults - - AbsoluteURLString - file:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - & - URLBytes - - ZmlsZTovLy8m - - URLData - - ZmlsZTovLy8m - - URLString - file:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - file:///& - absoluteURLString - file:///& - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///& - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - file:///& - scheme - file - standardizedURL - file:///& - user - <null> - + <null url> In-Title @@ -40154,149 +11434,8 @@ CFURLCreateWithString In-Url file:///x - Out-CFResults - - AbsoluteURLString - file:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - x - URLBytes - - ZmlsZTovLy94 - - URLData - - ZmlsZTovLy94 - - URLString - file:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///x - absoluteURLString - file:///x - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///x - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///x - scheme - file - standardizedURL - file:///x - user - <null> - + <null url> In-Title @@ -40305,149 +11444,8 @@ CFURLCreateWithString In-Url http:///%3F - Out-CFResults - - AbsoluteURLString - http:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %3F - URLBytes - - aHR0cDovLy8lM0Y= - - URLData - - aHR0cDovLy8lM0Y= - - URLString - http:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - http:///%3F - absoluteURLString - http:///%3F - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - http:///%3F - scheme - http - standardizedURL - http:///%3F - user - <null> - + <null url> In-Title @@ -40456,149 +11454,8 @@ CFURLCreateWithString In-Url http:///%78 - Out-CFResults - - AbsoluteURLString - http:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %78 - URLBytes - - aHR0cDovLy8lNzg= - - URLData - - aHR0cDovLy8lNzg= - - URLString - http:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///%78 - absoluteURLString - http:///%78 - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///%78 - scheme - http - standardizedURL - http:///%78 - user - <null> - + <null url> In-Title @@ -40607,148 +11464,8 @@ CFURLCreateWithString In-Url http:///? - Out-CFResults - - AbsoluteURLString - http:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - http - StrictPath - - URLBytes - - aHR0cDovLy8/ - - URLData - - aHR0cDovLy8/ - - URLString - http:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:///? - absoluteURLString - http:///? - baseURLString - <null> - deletingLastPathComponent - http:///../? - deletingLastPathExtension - http:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - http:///? - scheme - http - standardizedURL - http:///? - user - <null> - + <null url> In-Title @@ -40757,149 +11474,8 @@ CFURLCreateWithString In-Url http:///& - Out-CFResults - - AbsoluteURLString - http:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - & - URLBytes - - aHR0cDovLy8m - - URLData - - aHR0cDovLy8m - - URLString - http:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - http:///& - absoluteURLString - http:///& - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - http:///& - scheme - http - standardizedURL - http:///& - user - <null> - + <null url> In-Title @@ -40908,149 +11484,8 @@ CFURLCreateWithString In-Url http:///x - Out-CFResults - - AbsoluteURLString - http:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - x - URLBytes - - aHR0cDovLy94 - - URLData - - aHR0cDovLy94 - - URLString - http:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///x - absoluteURLString - http:///x - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///x - scheme - http - standardizedURL - http:///x - user - <null> - + <null url> In-Title @@ -41059,149 +11494,8 @@ CFURLCreateWithString In-Url glorb:///%3F - Out-CFResults - - AbsoluteURLString - glorb:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %3F - URLBytes - - Z2xvcmI6Ly8vJTNG - - URLData - - Z2xvcmI6Ly8vJTNG - - URLString - glorb:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - glorb:///%3F - absoluteURLString - glorb:///%3F - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - glorb:///%3F - scheme - glorb - standardizedURL - glorb:///%3F - user - <null> - + <null url> In-Title @@ -41210,149 +11504,8 @@ CFURLCreateWithString In-Url glorb:///%78 - Out-CFResults - - AbsoluteURLString - glorb:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %78 - URLBytes - - Z2xvcmI6Ly8vJTc4 - - URLData - - Z2xvcmI6Ly8vJTc4 - - URLString - glorb:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///%78 - absoluteURLString - glorb:///%78 - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///%78 - scheme - glorb - standardizedURL - glorb:///%78 - user - <null> - + <null url> In-Title @@ -41361,148 +11514,8 @@ CFURLCreateWithString In-Url glorb:///? - Out-CFResults - - AbsoluteURLString - glorb:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 1) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (10, 0) (9, 1) - ComponentResourceSpecifier - (10, 0) (9, 1) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - glorb - StrictPath - - URLBytes - - Z2xvcmI6Ly8vPw== - - URLData - - Z2xvcmI6Ly8vPw== - - URLString - glorb:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - glorb:///? - absoluteURLString - glorb:///? - baseURLString - <null> - deletingLastPathComponent - glorb:///../? - deletingLastPathExtension - glorb:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - glorb:///? - scheme - glorb - standardizedURL - glorb:///? - user - <null> - + <null url> In-Title @@ -41511,149 +11524,8 @@ CFURLCreateWithString In-Url glorb:///& - Out-CFResults - - AbsoluteURLString - glorb:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - & - URLBytes - - Z2xvcmI6Ly8vJg== - - URLData - - Z2xvcmI6Ly8vJg== - - URLString - glorb:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - glorb:///& - absoluteURLString - glorb:///& - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - glorb:///& - scheme - glorb - standardizedURL - glorb:///& - user - <null> - + <null url> In-Title @@ -41662,149 +11534,8 @@ CFURLCreateWithString In-Url glorb:///x - Out-CFResults - - AbsoluteURLString - glorb:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - x - URLBytes - - Z2xvcmI6Ly8veA== - - URLData - - Z2xvcmI6Ly8veA== - - URLString - glorb:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///x - absoluteURLString - glorb:///x - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///x - scheme - glorb - standardizedURL - glorb:///x - user - <null> - + <null url> In-Title @@ -41813,142 +11544,8 @@ CFURLCreateWithString In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 20) (6, 21) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLString - mailto:mduerst@ifi.unizh.ch - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch - absoluteURLString - mailto:mduerst@ifi.unizh.ch - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch - user - <null> - + <null url> In-Title @@ -41957,144 +11554,8 @@ CFURLCreateWithString In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 36) (6, 37) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch?Subject=nothing - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - absoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch?Subject=nothing - user - <null> - + <null url> In-Title @@ -42103,144 +11564,8 @@ CFURLCreateWithString In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AbsoluteURLString - news:comp.infosystems.www.servers.unix - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 33) (4, 34) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - comp.infosystems.www.servers.unix - Scheme - news - StrictPath - <null> - URLBytes - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLData - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLString - news:comp.infosystems.www.servers.unix - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - news:comp.infosystems.www.servers.unix - absoluteURLString - news:comp.infosystems.www.servers.unix - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - news:comp.infosystems.www.servers.unix - scheme - news - standardizedURL - news:comp.infosystems.www.servers.unix - user - <null> - + <null url> In-Title @@ -42249,144 +11574,8 @@ CFURLCreateWithString In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AbsoluteURLString - uahsfcncvuhrtgvnahr - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 19) (0, 19) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - uahsfcncvuhrtgvnahr - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - uahsfcncvuhrtgvnahr - NetLocation - <null> - POSIXPath - uahsfcncvuhrtgvnahr - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - uahsfcncvuhrtgvnahr - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - uahsfcncvuhrtgvnahr - URLBytes - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLData - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLString - uahsfcncvuhrtgvnahr - UserName - <null> - WindowsPath - uahsfcncvuhrtgvnahr - Out-NSResults - - absoluteString - uahsfcncvuhrtgvnahr - absoluteURLString - uahsfcncvuhrtgvnahr - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - uahsfcncvuhrtgvnahr - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - uahsfcncvuhrtgvnahr - password - <null> - path - uahsfcncvuhrtgvnahr - pathComponents - - uahsfcncvuhrtgvnahr - - pathExtension - - port - <null> - query - <null> - relativePath - uahsfcncvuhrtgvnahr - relativeString - uahsfcncvuhrtgvnahr - scheme - <null> - standardizedURL - uahsfcncvuhrtgvnahr - user - <null> - + <null url> In-Title @@ -42395,145 +11584,8 @@ CFURLCreateWithString In-Url http://10.1.1.1 - Out-CFResults - - AbsoluteURLString - http://10.1.1.1 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 0) (15, 0) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://10.1.1.1../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://10.1.1.1 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - 10.1.1.1 - IsAbsolute - - LastPathComponent - - NetLocation - 10.1.1.1 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovLzEwLjEuMS4x - - URLData - - aHR0cDovLzEwLjEuMS4x - - URLString - http://10.1.1.1 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://10.1.1.1 - absoluteURLString - http://10.1.1.1 - baseURLString - <null> - deletingLastPathComponent - http://10.1.1.1../ - deletingLastPathExtension - http://10.1.1.1 - fragment - <null> - host - 10.1.1.1 - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://10.1.1.1 - scheme - http - standardizedURL - http://10.1.1.1 - user - <null> - + <null url> In-Title @@ -42542,150 +11594,8 @@ CFURLCreateWithString In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (7, 26) (4, 29) - ComponentNetLocation - (7, 26) (4, 29) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (33, 1) (33, 1) - ComponentPort - (-1, 0) (33, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLString - http://[fe80::20a:27ff:feae:8b9e]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e]/ - user - <null> - + <null url> In-Title @@ -42694,150 +11604,8 @@ CFURLCreateWithString In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (7, 32) (4, 35) - ComponentNetLocation - (7, 32) (4, 35) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (39, 1) (39, 1) - ComponentPort - (-1, 0) (39, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e%en0 - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e%25en0] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e%en0 - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - user - <null> - + <null url> In-Title @@ -42846,161 +11614,8 @@ CFURLCreateWithString In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AbsoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (175, 6) (174, 7) - ComponentHost - (7, 15) (4, 18) - ComponentNetLocation - (7, 15) (4, 18) - ComponentParameterString - (-1, 0) (53, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (22, 31) (22, 32) - ComponentPort - (-1, 0) (22, 0) - ComponentQuery - (54, 120) (53, 122) - ComponentResourceSpecifier - (54, 127) (53, 128) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FwcHMvZG9tYWlucGFyay9kb21haW5wYXJrLmNnaQ== - - Fragment-Escaped - FFFFFF - Fragment-Unescaped - FFFFFF - HasDirectoryPath - - HostName - apps5.oingo.com - IsAbsolute - - LastPathComponent - domainpark.cgi - NetLocation - apps5.oingo.com - POSIXPath - /apps/domainpark/domainpark.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /apps/domainpark/domainpark.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - QueryString-Unescaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - ResourceSpecifier - ?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Scheme - http - StrictPath - apps/domainpark/domainpark.cgi - URLBytes - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLData - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - UserName - <null> - WindowsPath - \apps\domainpark\domainpark.cgi - Out-NSResults - - absoluteString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - absoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - baseURLString - <null> - deletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - deletingLastPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - fragment - FFFFFF - host - apps5.oingo.com - isFileURL - NO - lastPathComponent - domainpark.cgi - password - <null> - path - /apps/domainpark/domainpark.cgi - pathComponents - - / - apps - domainpark - domainpark.cgi - - pathExtension - cgi - port - <null> - query - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - relativePath - /apps/domainpark/domainpark.cgi - relativeString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - scheme - http - standardizedURL - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - user - <null> - + <null url> In-Title @@ -43009,159 +11624,8 @@ CFURLCreateWithString In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AbsoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (169, 0) - ComponentHost - (7, 18) (4, 21) - ComponentNetLocation - (7, 18) (4, 21) - ComponentParameterString - (32, 137) (31, 138) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (25, 6) (25, 7) - ComponentPort - (-1, 0) (25, 0) - ComponentQuery - (-1, 0) (169, 0) - ComponentResourceSpecifier - (32, 137) (31, 138) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NsaWNr - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ad.doubleclick.net - IsAbsolute - - LastPathComponent - click - NetLocation - ad.doubleclick.net - POSIXPath - /click - ParameterString-Escaped - h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - ParameterString-Unescaped - h=v2|2e88|0|0|*|o;4461766;0-0;0;7314133;255-0|0;1407955|1406690|1;;?http://meninblack2.station.sony.com/playgames.jsp - Password - <null> - Path - /click - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Scheme - http - StrictPath - click - URLBytes - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLData - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - UserName - <null> - WindowsPath - \click - Out-NSResults - - absoluteString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - absoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - baseURLString - <null> - deletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - deletingLastPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - fragment - <null> - host - ad.doubleclick.net - isFileURL - NO - lastPathComponent - click - password - <null> - path - /click - pathComponents - - / - click - - pathExtension - - port - <null> - query - <null> - relativePath - /click - relativeString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - scheme - http - standardizedURL - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - user - <null> - + <null url> In-Title @@ -43170,154 +11634,8 @@ CFURLCreateWithString In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/../index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (37, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (37, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 22) (15, 22) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (37, 0) - ComponentResourceSpecifier - (-1, 0) (37, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/../index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi4vaW5kZXguaHRtbA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/../index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/../index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/../index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLString - http://host.com/foo/bar/../index.html - UserName - <null> - WindowsPath - \foo\bar\..\index.html - Out-NSResults - - absoluteString - http://host.com/foo/bar/../index.html - absoluteURLString - http://host.com/foo/bar/../index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/bar/../ - deletingLastPathExtension - http://host.com/foo/bar/../index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/bar/../index.html - pathComponents - - / - foo - bar - .. - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/bar/../index.html - relativeString - http://host.com/foo/bar/../index.html - scheme - http - standardizedURL - http://host.com/foo/index.html - user - <null> - + <null url> In-Title @@ -43326,154 +11644,8 @@ CFURLCreateWithString In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/./index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (36, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (36, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 21) (15, 21) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (36, 0) - ComponentResourceSpecifier - (-1, 0) (36, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/./index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi9pbmRleC5odG1s - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/./index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/./index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/./index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLString - http://host.com/foo/bar/./index.html - UserName - <null> - WindowsPath - \foo\bar\.\index.html - Out-NSResults - - absoluteString - http://host.com/foo/bar/./index.html - absoluteURLString - http://host.com/foo/bar/./index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/bar/./ - deletingLastPathExtension - http://host.com/foo/bar/./index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/bar/./index.html - pathComponents - - / - foo - bar - . - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/bar/./index.html - relativeString - http://host.com/foo/bar/./index.html - scheme - http - standardizedURL - http://host.com/foo/bar/index.html - user - <null> - + <null url> In-Title @@ -43482,150 +11654,8 @@ CFURLCreateWithString In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http:/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http:/cgi-bin/?ft=0 - deletingLastPathExtension - http:/cgi-bin/Count?ft=0 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http:/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http:///cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Title @@ -43634,149 +11664,8 @@ CFURLCreateWithString In-Url file:///// - Out-CFResults - - AbsoluteURLString - file:///// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - // - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /// - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - // - URLBytes - - ZmlsZTovLy8vLw== - - URLData - - ZmlsZTovLy8vLw== - - URLString - file:///// - UserName - <null> - WindowsPath - \\ - Out-NSResults - - absoluteString - file:///// - absoluteURLString - file:///// - baseURLString - <null> - deletingLastPathComponent - file://///../ - deletingLastPathExtension - file:///// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - // - pathComponents - - / - / - - pathExtension - - port - <null> - query - <null> - relativePath - // - relativeString - file:///// - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -43785,149 +11674,8 @@ CFURLCreateWithString In-Url file:/Volumes - Out-CFResults - - AbsoluteURLString - file:/Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 8) (4, 9) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovVm9sdW1lcw== - - URLData - - ZmlsZTovVm9sdW1lcw== - - URLString - file:/Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:/Volumes - absoluteURLString - file:/Volumes - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:/Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -43936,145 +11684,8 @@ CFURLCreateWithString In-Url /Volumes - Out-CFResults - - AbsoluteURLString - /Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /Volumes - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - Volumes - URLBytes - - L1ZvbHVtZXM= - - URLData - - L1ZvbHVtZXM= - - URLString - /Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - /Volumes - absoluteURLString - /Volumes - baseURLString - <null> - deletingLastPathComponent - / - deletingLastPathExtension - /Volumes - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - /Volumes - scheme - <null> - standardizedURL - /Volumes - user - <null> - + <null url> In-Title @@ -44083,144 +11694,8 @@ CFURLCreateWithString In-Url . - Out-CFResults - - AbsoluteURLString - . - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - . - absoluteURLString - . - baseURLString - <null> - deletingLastPathComponent - ../ - deletingLastPathExtension - - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - . - password - <null> - path - . - pathComponents - - . - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - . - scheme - <null> - standardizedURL - - user - <null> - + <null url> In-Title @@ -44229,145 +11704,8 @@ CFURLCreateWithString In-Url ./a - Out-CFResults - - AbsoluteURLString - ./a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ./a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ./a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ./a - URLBytes - - Li9h - - URLData - - Li9h - - URLString - ./a - UserName - <null> - WindowsPath - .\a - Out-NSResults - - absoluteString - ./a - absoluteURLString - ./a - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - ./a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ./a - pathComponents - - . - a - - pathExtension - - port - <null> - query - <null> - relativePath - ./a - relativeString - ./a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -44376,145 +11714,8 @@ CFURLCreateWithString In-Url ../a - Out-CFResults - - AbsoluteURLString - ../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../a - URLBytes - - Li4vYQ== - - URLData - - Li4vYQ== - - URLString - ../a - UserName - <null> - WindowsPath - ..\a - Out-NSResults - - absoluteString - ../a - absoluteURLString - ../a - baseURLString - <null> - deletingLastPathComponent - ../ - deletingLastPathExtension - ../a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ../a - pathComponents - - .. - a - - pathExtension - - port - <null> - query - <null> - relativePath - ../a - relativeString - ../a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -44523,146 +11724,8 @@ CFURLCreateWithString In-Url ../../a - Out-CFResults - - AbsoluteURLString - ../../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../../a - URLBytes - - Li4vLi4vYQ== - - URLData - - Li4vLi4vYQ== - - URLString - ../../a - UserName - <null> - WindowsPath - ..\..\a - Out-NSResults - - absoluteString - ../../a - absoluteURLString - ../../a - baseURLString - <null> - deletingLastPathComponent - ../../ - deletingLastPathExtension - ../../a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ../../a - pathComponents - - .. - .. - a - - pathExtension - - port - <null> - query - <null> - relativePath - ../../a - relativeString - ../../a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -44671,142 +11734,8 @@ CFURLCreateWithString In-Url file: - Out-CFResults - - AbsoluteURLString - file: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTo= - - URLData - - ZmlsZTo= - - URLString - file: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file: - absoluteURLString - file: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file: - scheme - file - standardizedURL - file: - user - <null> - + <null url> In-Title @@ -44815,144 +11744,8 @@ CFURLCreateWithString In-Url / - Out-CFResults - - AbsoluteURLString - / - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - / - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - - URLBytes - - Lw== - - URLData - - Lw== - - URLString - / - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - / - absoluteURLString - / - baseURLString - <null> - deletingLastPathComponent - /../ - deletingLastPathExtension - / - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - / - scheme - <null> - standardizedURL - / - user - <null> - + <null url> In-Title @@ -44961,142 +11754,8 @@ CFURLCreateWithString In-Url http: - Out-CFResults - - AbsoluteURLString - http: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDo= - - URLData - - aHR0cDo= - - URLString - http: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http: - absoluteURLString - http: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http: - scheme - http - standardizedURL - http: - user - <null> - + <null url> In-Base @@ -45107,8 +11766,6 @@ CFURLCreateWithString In-Url unescaped space - Out-CFResults - <null url> Out-NSResults <null url> @@ -45121,150 +11778,8 @@ CFURLCreateWithString In-Url #zoo - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (1, 3) (0, 4) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 3) (0, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - zoo - Fragment-Unescaped - zoo - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - #zoo - Scheme - http - StrictPath - <null> - URLBytes - - I3pvbw== - - URLData - - I3pvbw== - - URLString - #zoo - UserName - user - WindowsPath - <null> - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - zoo - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - - relativeString - #zoo - scheme - http - standardizedURL - #zoo - user - user - + <null url> In-Base @@ -45275,151 +11790,8 @@ CFURLCreateWithString In-Url joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c= - - URLData - - am9lL2Jsb3c= - - URLString - joe/blow - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/ - deletingLastPathExtension - joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - joe/blow - relativeString - joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -45430,151 +11802,8 @@ CFURLCreateWithString In-Url joe/blow?john=doe - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (9, 8) (8, 9) - ComponentResourceSpecifier - (9, 8) (8, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/?john=doe - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow?john=doe - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - john=doe - QueryString-Unescaped - john=doe - ResourceSpecifier - ?john=doe - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c/am9obj1kb2U= - - URLData - - am9lL2Jsb3c/am9obj1kb2U= - - URLString - joe/blow?john=doe - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/?john=doe - deletingLastPathExtension - joe/blow?john=doe - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - john=doe - relativePath - joe/blow - relativeString - joe/blow?john=doe - scheme - http - standardizedURL - joe/blow?john=doe - user - user - + <null url> In-Base @@ -45585,151 +11814,8 @@ CFURLCreateWithString In-Url ./joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ./joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ./joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ./joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./joe/blow - URLBytes - - Li9qb2UvYmxvdw== - - URLData - - Li9qb2UvYmxvdw== - - URLString - ./joe/blow - UserName - user - WindowsPath - .\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - ./joe/ - deletingLastPathExtension - ./joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - ./joe/blow - relativeString - ./joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -45740,150 +11826,8 @@ CFURLCreateWithString In-Url ../joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 11) (0, 11) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ../joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ../joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ../joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../joe/blow - URLBytes - - Li4vam9lL2Jsb3c= - - URLData - - Li4vam9lL2Jsb3c= - - URLString - ../joe/blow - UserName - user - WindowsPath - ..\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - ../joe/ - deletingLastPathExtension - ../joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - ../joe/blow - relativeString - ../joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -45894,150 +11838,8 @@ CFURLCreateWithString In-Url /joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - L2pvZS9ibG93 - - URLData - - L2pvZS9ibG93 - - URLString - /joe/blow - UserName - user - WindowsPath - \joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - /joe/ - deletingLastPathExtension - /joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe/blow - relativeString - /joe/blow - scheme - http - standardizedURL - /joe/blow - user - user - + <null url> In-Base @@ -46048,151 +11850,8 @@ CFURLCreateWithString In-Url joe/blow#frag2 - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (9, 5) (8, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (9, 5) (8, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/#frag2 - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow#frag2 - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - frag2 - Fragment-Unescaped - frag2 - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #frag2 - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3cjZnJhZzI= - - URLData - - am9lL2Jsb3cjZnJhZzI= - - URLString - joe/blow#frag2 - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/#frag2 - deletingLastPathExtension - joe/blow#frag2 - fragment - frag2 - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - joe/blow - relativeString - joe/blow#frag2 - scheme - http - standardizedURL - joe/blow#frag2 - user - user - + <null url> In-Base @@ -46203,150 +11862,8 @@ CFURLCreateWithString In-Url ftp://my.server.com/some/document - Out-CFResults - - AbsoluteURLString - ftp://my.server.com/some/document - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (33, 0) - ComponentHost - (6, 13) (3, 16) - ComponentNetLocation - (6, 13) (3, 16) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (19, 14) (19, 14) - ComponentPort - (-1, 0) (19, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (-1, 0) (33, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://my.server.com/some/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://my.server.com/some/document - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvZG9jdW1lbnQ= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - my.server.com - IsAbsolute - - LastPathComponent - document - NetLocation - my.server.com - POSIXPath - /some/document - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/document - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - some/document - URLBytes - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLData - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLString - ftp://my.server.com/some/document - UserName - <null> - WindowsPath - \some\document - Out-NSResults - - absoluteString - ftp://my.server.com/some/document - absoluteURLString - ftp://my.server.com/some/document - baseURLString - <null> - deletingLastPathComponent - ftp://my.server.com/some/ - deletingLastPathExtension - ftp://my.server.com/some/document - fragment - <null> - host - my.server.com - isFileURL - NO - lastPathComponent - document - password - <null> - path - /some/document - pathComponents - - / - some - document - - pathExtension - - port - <null> - query - <null> - relativePath - /some/document - relativeString - ftp://my.server.com/some/document - scheme - ftp - standardizedURL - ftp://my.server.com/some/document - user - <null> - + <null url> In-Base @@ -46357,149 +11874,8 @@ CFURLCreateWithString In-Url /joe:blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe:blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe:blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZTpibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - joe:blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe:blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe:blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe:blow - URLBytes - - L2pvZTpibG93 - - URLData - - L2pvZTpibG93 - - URLString - /joe:blow - UserName - user - WindowsPath - \joe:blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe:blow - absoluteURLString - http://user:pass@hostname.com:42/joe:blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - / - deletingLastPathExtension - /joe:blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - joe:blow - password - pass - path - /joe:blow - pathComponents - - / - joe:blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe:blow - relativeString - /joe:blow - scheme - http - standardizedURL - /joe:blow - user - user - + <null url> In-Base @@ -46510,142 +11886,8 @@ CFURLCreateWithString In-Url joe:blow - Out-CFResults - - AbsoluteURLString - joe:blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (4, 4) (3, 5) - ComponentScheme - (0, 3) (0, 4) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - blow - Scheme - joe - StrictPath - <null> - URLBytes - - am9lOmJsb3c= - - URLData - - am9lOmJsb3c= - - URLString - joe:blow - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - joe:blow - absoluteURLString - joe:blow - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - joe:blow - scheme - joe - standardizedURL - joe:blow - user - <null> - + <null url> In-Base @@ -46656,8 +11898,6 @@ CFURLCreateWithString In-Url - Out-CFResults - <null url> Out-NSResults <null url> @@ -46670,150 +11910,8 @@ CFURLCreateWithString In-Url ??? - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param??? - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 2) (0, 3) - ComponentResourceSpecifier - (1, 2) (0, 3) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - ?? - QueryString-Unescaped - ?? - ResourceSpecifier - ??? - Scheme - http - StrictPath - <null> - URLBytes - - Pz8/ - - URLData - - Pz8/ - - URLString - ??? - UserName - user - WindowsPath - <null> - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param??? - absoluteURLString - http://user:pass@hostname.com:42/some/path;param??? - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - ?? - relativePath - - relativeString - ??? - scheme - http - standardizedURL - ??? - user - user - + <null url> In-Base @@ -46824,142 +11922,8 @@ CFURLCreateWithString In-Url g:h - Out-CFResults - - AbsoluteURLString - g:h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (0, 1) (0, 2) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - h - Scheme - g - StrictPath - <null> - URLBytes - - Zzpo - - URLData - - Zzpo - - URLString - g:h - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - g:h - absoluteURLString - g:h - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - g:h - scheme - g - standardizedURL - g:h - user - <null> - + <null url> In-Base @@ -46970,151 +11934,8 @@ CFURLCreateWithString In-Url g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - Zw== - - URLData - - Zw== - - URLString - g - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -47125,151 +11946,8 @@ CFURLCreateWithString In-Url ./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Li9n - - URLData - - Li9n - - URLString - ./g - UserName - <null> - WindowsPath - .\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - ./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./g - relativeString - ./g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -47280,151 +11958,8 @@ CFURLCreateWithString In-Url g/ - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/ - URLBytes - - Zy8= - - URLData - - Zy8= - - URLString - g/ - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g/ - scheme - http - standardizedURL - g/ - user - <null> - + <null url> In-Base @@ -47435,149 +11970,8 @@ CFURLCreateWithString In-Url /g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - L2c= - - URLData - - L2c= - - URLString - /g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - / - deletingLastPathExtension - /g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - /g - scheme - http - standardizedURL - /g - user - <null> - + <null url> In-Base @@ -47588,146 +11982,8 @@ CFURLCreateWithString In-Url //g - Out-CFResults - - AbsoluteURLString - http://g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (2, 1) (0, 3) - ComponentNetLocation - (2, 1) (0, 3) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (3, 0) (3, 0) - ComponentPort - (-1, 0) (3, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - //g../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - //g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - g - IsAbsolute - - LastPathComponent - - NetLocation - g - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - Ly9n - - URLData - - Ly9n - - URLString - //g - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://g - absoluteURLString - http://g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - //g../ - deletingLastPathExtension - //g - fragment - <null> - host - g - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - //g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -47738,151 +11994,8 @@ CFURLCreateWithString In-Url ?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 1) (0, 2) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - <null> - URLBytes - - P3k= - - URLData - - P3k= - - URLString - ?y - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?y - absoluteURLString - http://a/b/c/d;p?y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - y - relativePath - - relativeString - ?y - scheme - http - standardizedURL - ?y - user - <null> - + <null url> In-Base @@ -47893,151 +12006,8 @@ CFURLCreateWithString In-Url g?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 2) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - g - URLBytes - - Zz95 - - URLData - - Zz95 - - URLString - g?y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y - absoluteURLString - http://a/b/c/g?y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y - deletingLastPathExtension - g?y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g?y - scheme - http - standardizedURL - g?y - user - <null> - + <null url> In-Base @@ -48048,151 +12018,8 @@ CFURLCreateWithString In-Url #s - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (1, 1) (0, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - #s - Scheme - http - StrictPath - <null> - URLBytes - - I3M= - - URLData - - I3M= - - URLString - #s - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?q#s - absoluteURLString - http://a/b/c/d;p?q#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - s - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - - relativeString - #s - scheme - http - standardizedURL - #s - user - <null> - + <null url> In-Base @@ -48203,151 +12030,8 @@ CFURLCreateWithString In-Url g#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 1) (1, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s - Scheme - http - StrictPath - g - URLBytes - - ZyNz - - URLData - - ZyNz - - URLString - g#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s - absoluteURLString - http://a/b/c/g#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s - deletingLastPathExtension - g#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s - scheme - http - standardizedURL - g#s - user - <null> - + <null url> In-Base @@ -48358,151 +12042,8 @@ CFURLCreateWithString In-Url g?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (4, 1) (3, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 3) - ComponentResourceSpecifier - (2, 3) (1, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y#s - Scheme - http - StrictPath - g - URLBytes - - Zz95I3M= - - URLData - - Zz95I3M= - - URLString - g?y#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y#s - absoluteURLString - http://a/b/c/g?y#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y#s - deletingLastPathExtension - g?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g?y#s - scheme - http - standardizedURL - g?y#s - user - <null> - + <null url> In-Base @@ -48513,151 +12054,8 @@ CFURLCreateWithString In-Url ;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (1, 1) (0, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - <null> - URLBytes - - O3g= - - URLData - - O3g= - - URLString - ;x - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;x - absoluteURLString - http://a/b/c/d;x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - ;x - scheme - http - standardizedURL - ;x - user - <null> - + <null url> In-Base @@ -48668,151 +12066,8 @@ CFURLCreateWithString In-Url g;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - g - URLBytes - - Zzt4 - - URLData - - Zzt4 - - URLString - g;x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x - absoluteURLString - http://a/b/c/g;x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x - deletingLastPathExtension - g;x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x - scheme - http - standardizedURL - g;x - user - <null> - + <null url> In-Base @@ -48823,151 +12078,8 @@ CFURLCreateWithString In-Url g;x?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (6, 1) (5, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 3) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (4, 1) (3, 3) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ;x?y#s - Scheme - http - StrictPath - g - URLBytes - - Zzt4P3kjcw== - - URLData - - Zzt4P3kjcw== - - URLString - g;x?y#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x?y#s - absoluteURLString - http://a/b/c/g;x?y#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x?y#s - deletingLastPathExtension - g;x?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g;x?y#s - scheme - http - standardizedURL - g;x?y#s - user - <null> - + <null url> In-Base @@ -48978,149 +12090,8 @@ CFURLCreateWithString In-Url - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (0, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (-1, 0) (0, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - - URLData - - - URLString - - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?q - absoluteURLString - http://a/b/c/d;p?q - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - - relativeString - - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -49131,150 +12102,8 @@ CFURLCreateWithString In-Url . - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - . - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -49285,150 +12114,8 @@ CFURLCreateWithString In-Url ./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - / - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./ - URLBytes - - Li8= - - URLData - - Li8= - - URLString - ./ - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - / - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - ./ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -49439,149 +12126,8 @@ CFURLCreateWithString In-Url .. - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .. - URLBytes - - Li4= - - URLData - - Li4= - - URLString - .. - UserName - <null> - WindowsPath - .. - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - . - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - .. - relativeString - .. - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -49592,149 +12138,8 @@ CFURLCreateWithString In-Url ../ - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../ - URLBytes - - Li4v - - URLData - - Li4v - - URLString - ../ - UserName - <null> - WindowsPath - .. - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - ./ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - .. - relativeString - ../ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -49745,150 +12150,8 @@ CFURLCreateWithString In-Url ../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Li4vZw== - - URLData - - Li4vZw== - - URLString - ../g - UserName - <null> - WindowsPath - ..\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - ../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../g - relativeString - ../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -49899,148 +12162,8 @@ CFURLCreateWithString In-Url ../.. - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../.. - URLBytes - - Li4vLi4= - - URLData - - Li4vLi4= - - URLString - ../.. - UserName - <null> - WindowsPath - ..\.. - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - ../. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - ../.. - relativeString - ../.. - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -50051,148 +12174,8 @@ CFURLCreateWithString In-Url ../../ - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - .././ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../ - URLBytes - - Li4vLi4v - - URLData - - Li4vLi4v - - URLString - ../../ - UserName - <null> - WindowsPath - ..\.. - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - .././ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - ../.. - relativeString - ../../ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -50203,149 +12186,8 @@ CFURLCreateWithString In-Url ../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../g - URLBytes - - Li4vLi4vZw== - - URLData - - Li4vLi4vZw== - - URLString - ../../g - UserName - <null> - WindowsPath - ..\..\g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - ../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../g - relativeString - ../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -50356,150 +12198,8 @@ CFURLCreateWithString In-Url ../../../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../g - URLBytes - - Li4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vZw== - - URLString - ../../../g - UserName - <null> - WindowsPath - ..\..\..\g - Out-NSResults - - absoluteString - http://a/../g - absoluteURLString - http://a/../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - ../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../g - pathComponents - - / - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../../g - relativeString - ../../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -50510,151 +12210,8 @@ CFURLCreateWithString In-Url ../../../../g - Out-CFResults - - AbsoluteURLString - http://a/../../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 13) (0, 13) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../../g - URLBytes - - Li4vLi4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vLi4vZw== - - URLString - ../../../../g - UserName - <null> - WindowsPath - ..\..\..\..\g - Out-NSResults - - absoluteString - http://a/../../g - absoluteURLString - http://a/../../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../../ - deletingLastPathExtension - ../../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../../g - pathComponents - - / - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../../../g - relativeString - ../../../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -50665,150 +12222,8 @@ CFURLCreateWithString In-Url /./g - Out-CFResults - - AbsoluteURLString - http://a/./g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4vZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Ly4vZw== - - URLData - - Ly4vZw== - - URLString - /./g - UserName - <null> - WindowsPath - \.\g - Out-NSResults - - absoluteString - http://a/./g - absoluteURLString - http://a/./g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - /./ - deletingLastPathExtension - /./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /./g - pathComponents - - / - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /./g - relativeString - /./g - scheme - http - standardizedURL - /g - user - <null> - + <null url> In-Base @@ -50819,150 +12234,8 @@ CFURLCreateWithString In-Url /../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Ly4uL2c= - - URLData - - Ly4uL2c= - - URLString - /../g - UserName - <null> - WindowsPath - \..\g - Out-NSResults - - absoluteString - http://a/../g - absoluteURLString - http://a/../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - /../ - deletingLastPathExtension - /../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../g - pathComponents - - / - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /../g - relativeString - /../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -50973,151 +12246,8 @@ CFURLCreateWithString In-Url g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g. - URLBytes - - Zy4= - - URLData - - Zy4= - - URLString - g. - UserName - <null> - WindowsPath - g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - g. - relativeString - g. - scheme - http - standardizedURL - g. - user - <null> - + <null url> In-Base @@ -51128,151 +12258,8 @@ CFURLCreateWithString In-Url .g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - .g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .g - URLBytes - - Lmc= - - URLData - - Lmc= - - URLString - .g - UserName - <null> - WindowsPath - .g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - .g - relativeString - .g - scheme - http - standardizedURL - .g - user - <null> - + <null url> In-Base @@ -51283,151 +12270,8 @@ CFURLCreateWithString In-Url g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g.. - URLBytes - - Zy4u - - URLData - - Zy4u - - URLString - g.. - UserName - <null> - WindowsPath - g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - g.. - relativeString - g.. - scheme - http - standardizedURL - g.. - user - <null> - + <null url> In-Base @@ -51438,151 +12282,8 @@ CFURLCreateWithString In-Url ..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - ..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..g - URLBytes - - Li5n - - URLData - - Li5n - - URLString - ..g - UserName - <null> - WindowsPath - ..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - . - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - ..g - relativeString - ..g - scheme - http - standardizedURL - ..g - user - <null> - + <null url> In-Base @@ -51593,150 +12294,8 @@ CFURLCreateWithString In-Url ./../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./../g - URLBytes - - Li8uLi9n - - URLData - - Li8uLi9n - - URLString - ./../g - UserName - <null> - WindowsPath - .\..\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./../ - deletingLastPathExtension - ./../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./../g - relativeString - ./../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -51747,151 +12306,8 @@ CFURLCreateWithString In-Url ./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - ./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g/. - URLBytes - - Li9nLy4= - - URLData - - Li9nLy4= - - URLString - ./g/. - UserName - <null> - WindowsPath - .\g\. - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./g/../ - deletingLastPathExtension - ./g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./g/. - relativeString - ./g/. - scheme - http - standardizedURL - g/ - user - <null> - + <null url> In-Base @@ -51902,152 +12318,8 @@ CFURLCreateWithString In-Url g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/./h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/./h - URLBytes - - Zy8uL2g= - - URLData - - Zy8uL2g= - - URLString - g/./h - UserName - <null> - WindowsPath - g\.\h - Out-NSResults - - absoluteString - http://a/b/c/g/h - absoluteURLString - http://a/b/c/g/h - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - g/./ - deletingLastPathExtension - g/./h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/h - pathComponents - - / - b - c - g - h - - pathExtension - - port - <null> - query - <null> - relativePath - g/./h - relativeString - g/./h - scheme - http - standardizedURL - g/h - user - <null> - + <null url> In-Base @@ -52058,151 +12330,8 @@ CFURLCreateWithString In-Url g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/../h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9o - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/../h - URLBytes - - Zy8uLi9o - - URLData - - Zy8uLi9o - - URLString - g/../h - UserName - <null> - WindowsPath - g\..\h - Out-NSResults - - absoluteString - http://a/b/c/h - absoluteURLString - http://a/b/c/h - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - g/../ - deletingLastPathExtension - g/../h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/h - pathComponents - - / - b - c - h - - pathExtension - - port - <null> - query - <null> - relativePath - g/../h - relativeString - g/../h - scheme - http - standardizedURL - h - user - <null> - + <null url> In-Base @@ -52213,151 +12342,8 @@ CFURLCreateWithString In-Url g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 7) (1, 8) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (2, 7) (1, 8) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/./y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/./y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi95 - - URLData - - Zzt4PTEvLi95 - - URLString - g;x=1/./y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x=1/./y - deletingLastPathExtension - g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x=1/./y - scheme - http - standardizedURL - g;x=1/./y - user - <null> - + <null url> In-Base @@ -52368,151 +12354,8 @@ CFURLCreateWithString In-Url g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 8) (1, 9) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (2, 8) (1, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/../y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/../y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi4veQ== - - URLData - - Zzt4PTEvLi4veQ== - - URLString - g;x=1/../y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x=1/../y - deletingLastPathExtension - g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x=1/../y - scheme - http - standardizedURL - g;x=1/../y - user - <null> - + <null url> In-Base @@ -52523,151 +12366,8 @@ CFURLCreateWithString In-Url g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 5) (1, 6) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4veA== - - URLData - - Zz95Ly4veA== - - URLString - g?y/./x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y/./x - deletingLastPathExtension - g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - g - relativeString - g?y/./x - scheme - http - standardizedURL - g?y/./x - user - <null> - + <null url> In-Base @@ -52678,151 +12378,8 @@ CFURLCreateWithString In-Url g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 6) (1, 7) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4uL3g= - - URLData - - Zz95Ly4uL3g= - - URLString - g?y/../x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y/../x - deletingLastPathExtension - g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - g - relativeString - g?y/../x - scheme - http - standardizedURL - g?y/../x - user - <null> - + <null url> In-Base @@ -52833,151 +12390,8 @@ CFURLCreateWithString In-Url g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 5) (1, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4veA== - - URLData - - ZyNzLy4veA== - - URLString - g#s/./x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s/./x - deletingLastPathExtension - g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s/./x - scheme - http - standardizedURL - g#s/./x - user - <null> - + <null url> In-Base @@ -52988,151 +12402,8 @@ CFURLCreateWithString In-Url g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 6) (1, 7) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4uL3g= - - URLData - - ZyNzLy4uL3g= - - URLString - g#s/../x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s/../x - deletingLastPathExtension - g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s/../x - scheme - http - standardizedURL - g#s/../x - user - <null> - + <null url> In-Base @@ -53143,142 +12414,8 @@ CFURLCreateWithString In-Url http:g - Out-CFResults - - AbsoluteURLString - http:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDpn - - URLData - - aHR0cDpn - - URLString - http:g - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http:g - absoluteURLString - http:g - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http:g - scheme - http - standardizedURL - http:g - user - <null> - + <null url> In-Base @@ -53289,142 +12426,8 @@ CFURLCreateWithString In-Url file:g - Out-CFResults - - AbsoluteURLString - file:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTpn - - URLData - - ZmlsZTpn - - URLString - file:g - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:g - absoluteURLString - file:g - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:g - scheme - file - standardizedURL - file:g - user - <null> - + <null url> In-Base @@ -53435,149 +12438,8 @@ CFURLCreateWithString In-Url http:/g - Out-CFResults - - AbsoluteURLString - http:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovZw== - - URLData - - aHR0cDovZw== - - URLString - http:/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http:/g - absoluteURLString - http:/g - baseURLString - <null> - deletingLastPathComponent - http:/ - deletingLastPathExtension - http:/g - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http:/g - scheme - http - standardizedURL - http:///g - user - <null> - + <null url> In-Base @@ -53588,149 +12450,8 @@ CFURLCreateWithString In-Url file:/g - Out-CFResults - - AbsoluteURLString - file:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - g - URLBytes - - ZmlsZTovZw== - - URLData - - ZmlsZTovZw== - - URLString - file:/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - file:/g - absoluteURLString - file:/g - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/g - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - file:/g - scheme - file - standardizedURL - file:///g - user - <null> - + <null url> In-Base @@ -53741,150 +12462,8 @@ CFURLCreateWithString In-Url /Images/foo.gif - Out-CFResults - - AbsoluteURLString - http://macosx.apple.com/Images/foo.gif - BaseURLString - http://macosx.apple.com - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 15) (0, 15) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /Images/ - DeletingLastPathComponent-BaseURL - http://macosx.apple.com - DeletingPathExtension - /Images/foo - DeletingPathExtension-BaseURL - http://macosx.apple.com - FileSystemRepresentation - - L0ltYWdlcy9mb28uZ2lm - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - macosx.apple.com - IsAbsolute - - LastPathComponent - foo.gif - NetLocation - macosx.apple.com - POSIXPath - /Images/foo.gif - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Images/foo.gif - PathExtension - gif - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - Images/foo.gif - URLBytes - - L0ltYWdlcy9mb28uZ2lm - - URLData - - L0ltYWdlcy9mb28uZ2lm - - URLString - /Images/foo.gif - UserName - <null> - WindowsPath - \Images\foo.gif - Out-NSResults - - absoluteString - http://macosx.apple.com/Images/foo.gif - absoluteURLString - http://macosx.apple.com/Images/foo.gif - baseURLString - http://macosx.apple.com - deletingLastPathComponent - /Images/ - deletingLastPathExtension - /Images/foo - fragment - <null> - host - macosx.apple.com - isFileURL - NO - lastPathComponent - foo.gif - password - <null> - path - /Images/foo.gif - pathComponents - - / - Images - foo.gif - - pathExtension - gif - port - <null> - query - <null> - relativePath - /Images/foo.gif - relativeString - /Images/foo.gif - scheme - http - standardizedURL - /Images/foo.gif - user - <null> - + <null url> In-Base @@ -53895,151 +12474,8 @@ CFURLCreateWithString In-Url ../artist/720703 - Out-CFResults - - AbsoluteURLString - http://www.ticketmaster.com/../artist/720703 - BaseURLString - http://www.ticketmaster.com/search?keyword=tool - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 16) (0, 16) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../artist/ - DeletingLastPathComponent-BaseURL - http://www.ticketmaster.com/search?keyword=tool - DeletingPathExtension - ../artist/720703 - DeletingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - FileSystemRepresentation - - Ly4uL2FydGlzdC83MjA3MDM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.ticketmaster.com - IsAbsolute - - LastPathComponent - 720703 - NetLocation - www.ticketmaster.com - POSIXPath - ../artist/720703 - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../artist/720703 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../artist/720703 - URLBytes - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLData - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLString - ../artist/720703 - UserName - <null> - WindowsPath - ..\artist\720703 - Out-NSResults - - absoluteString - http://www.ticketmaster.com/../artist/720703 - absoluteURLString - http://www.ticketmaster.com/../artist/720703 - baseURLString - http://www.ticketmaster.com/search?keyword=tool - deletingLastPathComponent - ../artist/ - deletingLastPathExtension - ../artist/720703 - fragment - <null> - host - www.ticketmaster.com - isFileURL - NO - lastPathComponent - 720703 - password - <null> - path - /../artist/720703 - pathComponents - - / - .. - artist - 720703 - - pathExtension - - port - <null> - query - <null> - relativePath - ../artist/720703 - relativeString - ../artist/720703 - scheme - http - standardizedURL - artist/720703 - user - <null> - + <null url> In-Base @@ -54050,8 +12486,6 @@ CFURLCreateWithString In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - <null url> Out-NSResults <null url> @@ -54064,150 +12498,8 @@ CFURLCreateWithString In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http:/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http:/cgi-bin/?ft=0 - deletingLastPathExtension - http:/cgi-bin/Count?ft=0 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http:/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http:///cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Base @@ -54218,220 +12510,8 @@ CFURLCreateWithString In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AbsoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - BaseURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - CanBeDecomposed - - ComponentFragment - (-1, 0) (1114, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 34) (0, 35) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (35, 1079) (34, 1080) - ComponentResourceSpecifier - (35, 1079) (34, 1080) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingLastPathComponent-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - DeletingPathExtension - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - FileSystemRepresentation - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::7e6d:62ff:fe75:9e88%en0 - IsAbsolute - - LastPathComponent - items - NetLocation - [fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - POSIXPath - databases/76/containers/2891/items - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - databases/76/containers/2891/items - PathExtension - <null> - PortNumber - 3689 - QueryString-Escaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - QueryString-Unescaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - ResourceSpecifier - ?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Scheme - http - StrictPath - databases/76/containers/2891/items - URLBytes - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLData - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLString - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - UserName - <null> - WindowsPath - databases\76\containers\2891\items - Out-NSResults - - absoluteString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - absoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - baseURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - deletingLastPathComponent - databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - deletingLastPathExtension - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - fragment - <null> - host - fe80::7e6d:62ff:fe75:9e88%en0 - isFileURL - NO - lastPathComponent - items - password - <null> - path - /databases/76/containers/2891/items - pathComponents - - / - databases - 76 - containers - 2891 - items - - pathExtension - - port - 3689 - query - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - relativePath - databases/76/containers/2891/items - relativeString - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - scheme - http - standardizedURL - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - user - <null> - + <null url> In-Title @@ -54440,152 +12520,8 @@ CFURLCreateWithString In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults - - absoluteString - http://a/b/c/./g - absoluteURLString - http://a/b/c/./g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./ - deletingLastPathExtension - http://a/b/c/./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./g - pathComponents - - / - b - c - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g - relativeString - http://a/b/c/./g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -54594,151 +12530,8 @@ CFURLCreateWithString In-Url http://a/b/c/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/. - URLBytes - - aHR0cDovL2EvYi9jLy4= - - URLData - - aHR0cDovL2EvYi9jLy4= - - URLString - http://a/b/c/. - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults - - absoluteString - http://a/b/c/. - absoluteURLString - http://a/b/c/. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/. - pathComponents - - / - b - c - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/. - relativeString - http://a/b/c/. - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -54747,151 +12540,8 @@ CFURLCreateWithString In-Url http://a/b/c/./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/./ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./ - URLBytes - - aHR0cDovL2EvYi9jLy4v - - URLData - - aHR0cDovL2EvYi9jLy4v - - URLString - http://a/b/c/./ - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults - - absoluteString - http://a/b/c/./ - absoluteURLString - http://a/b/c/./ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c// - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/. - pathComponents - - / - b - c - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/. - relativeString - http://a/b/c/./ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -54900,151 +12550,8 @@ CFURLCreateWithString In-Url http://a/b/c/.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.. - URLBytes - - aHR0cDovL2EvYi9jLy4u - - URLData - - aHR0cDovL2EvYi9jLy4u - - URLString - http://a/b/c/.. - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults - - absoluteString - http://a/b/c/.. - absoluteURLString - http://a/b/c/.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/.. - pathComponents - - / - b - c - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.. - relativeString - http://a/b/c/.. - scheme - http - standardizedURL - http://a/b - user - <null> - + <null url> In-Title @@ -55053,151 +12560,8 @@ CFURLCreateWithString In-Url http://a/b/c/../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLw== - - URLString - http://a/b/c/../ - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults - - absoluteString - http://a/b/c/../ - absoluteURLString - http://a/b/c/../ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/./ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/.. - pathComponents - - / - b - c - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.. - relativeString - http://a/b/c/../ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Title @@ -55206,152 +12570,8 @@ CFURLCreateWithString In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults - - absoluteString - http://a/b/c/../g - absoluteURLString - http://a/b/c/../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../g - pathComponents - - / - b - c - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../g - relativeString - http://a/b/c/../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -55360,152 +12580,8 @@ CFURLCreateWithString In-Url http://a/b/c/../.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../.. - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4u - - URLData - - aHR0cDovL2EvYi9jLy4uLy4u - - URLString - http://a/b/c/../.. - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults - - absoluteString - http://a/b/c/../.. - absoluteURLString - http://a/b/c/../.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/../. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/../.. - pathComponents - - / - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../.. - relativeString - http://a/b/c/../.. - scheme - http - standardizedURL - http://a - user - <null> - + <null url> In-Title @@ -55514,152 +12590,8 @@ CFURLCreateWithString In-Url http://a/b/c/../../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/.././ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLString - http://a/b/c/../../ - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults - - absoluteString - http://a/b/c/../../ - absoluteURLString - http://a/b/c/../../ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/.././ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/../.. - pathComponents - - / - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../.. - relativeString - http://a/b/c/../../ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Title @@ -55668,153 +12600,8 @@ CFURLCreateWithString In-Url http://a/b/c/../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 12) (8, 12) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLString - http://a/b/c/../../g - UserName - <null> - WindowsPath - \b\c\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../g - absoluteURLString - http://a/b/c/../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../g - pathComponents - - / - b - c - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../g - relativeString - http://a/b/c/../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -55823,154 +12610,8 @@ CFURLCreateWithString In-Url http://a/b/c/../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 15) (8, 15) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../../g - absoluteURLString - http://a/b/c/../../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../../g - pathComponents - - / - b - c - .. - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../../g - relativeString - http://a/b/c/../../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -55979,155 +12620,8 @@ CFURLCreateWithString In-Url http://a/b/c/../../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 18) (8, 18) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../../../g - absoluteURLString - http://a/b/c/../../../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../../ - deletingLastPathExtension - http://a/b/c/../../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../../../g - pathComponents - - / - b - c - .. - .. - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../../../g - relativeString - http://a/b/c/../../../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -56136,152 +12630,8 @@ CFURLCreateWithString In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults - - absoluteString - http://a/b/c/./g - absoluteURLString - http://a/b/c/./g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./ - deletingLastPathExtension - http://a/b/c/./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./g - pathComponents - - / - b - c - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g - relativeString - http://a/b/c/./g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -56290,152 +12640,8 @@ CFURLCreateWithString In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults - - absoluteString - http://a/b/c/../g - absoluteURLString - http://a/b/c/../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../g - pathComponents - - / - b - c - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../g - relativeString - http://a/b/c/../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -56444,151 +12650,8 @@ CFURLCreateWithString In-Url http://a/b/c/g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - /b/c/g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g. - URLBytes - - aHR0cDovL2EvYi9jL2cu - - URLData - - aHR0cDovL2EvYi9jL2cu - - URLString - http://a/b/c/g. - UserName - <null> - WindowsPath - \b\c\g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g. - relativeString - http://a/b/c/g. - scheme - http - standardizedURL - http://a/b/c/g. - user - <null> - + <null url> In-Title @@ -56597,151 +12660,8 @@ CFURLCreateWithString In-Url http://a/b/c/.g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - /b/c/.g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.g - URLBytes - - aHR0cDovL2EvYi9jLy5n - - URLData - - aHR0cDovL2EvYi9jLy5n - - URLString - http://a/b/c/.g - UserName - <null> - WindowsPath - \b\c\.g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.g - relativeString - http://a/b/c/.g - scheme - http - standardizedURL - http://a/b/c/.g - user - <null> - + <null url> In-Title @@ -56750,151 +12670,8 @@ CFURLCreateWithString In-Url http://a/b/c/g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - /b/c/g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g.. - URLBytes - - aHR0cDovL2EvYi9jL2cuLg== - - URLData - - aHR0cDovL2EvYi9jL2cuLg== - - URLString - http://a/b/c/g.. - UserName - <null> - WindowsPath - \b\c\g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g.. - relativeString - http://a/b/c/g.. - scheme - http - standardizedURL - http://a/b/c/g.. - user - <null> - + <null url> In-Title @@ -56903,151 +12680,8 @@ CFURLCreateWithString In-Url http://a/b/c/..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - /b/c/..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/..g - URLBytes - - aHR0cDovL2EvYi9jLy4uZw== - - URLData - - aHR0cDovL2EvYi9jLy4uZw== - - URLString - http://a/b/c/..g - UserName - <null> - WindowsPath - \b\c\..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - /b/c/..g - relativeString - http://a/b/c/..g - scheme - http - standardizedURL - http://a/b/c/..g - user - <null> - + <null url> In-Title @@ -57056,153 +12690,8 @@ CFURLCreateWithString In-Url http://a/b/c/./../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./../g - URLBytes - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLString - http://a/b/c/./../g - UserName - <null> - WindowsPath - \b\c\.\..\g - Out-NSResults - - absoluteString - http://a/b/c/./../g - absoluteURLString - http://a/b/c/./../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./../ - deletingLastPathExtension - http://a/b/c/./../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./../g - pathComponents - - / - b - c - . - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./../g - relativeString - http://a/b/c/./../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -57211,153 +12700,8 @@ CFURLCreateWithString In-Url http://a/b/c/./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2cvLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g/. - URLBytes - - aHR0cDovL2EvYi9jLy4vZy8u - - URLData - - aHR0cDovL2EvYi9jLy4vZy8u - - URLString - http://a/b/c/./g/. - UserName - <null> - WindowsPath - \b\c\.\g\. - Out-NSResults - - absoluteString - http://a/b/c/./g/. - absoluteURLString - http://a/b/c/./g/. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./g/../ - deletingLastPathExtension - http://a/b/c/./g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/./g/. - pathComponents - - / - b - c - . - g - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g/. - relativeString - http://a/b/c/./g/. - scheme - http - standardizedURL - http://a/b/c/g/ - user - <null> - + <null url> In-Title @@ -57366,153 +12710,8 @@ CFURLCreateWithString In-Url http://a/b/c/g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/./h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/./h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4vaA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/./h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi9o - - URLData - - aHR0cDovL2EvYi9jL2cvLi9o - - URLString - http://a/b/c/g/./h - UserName - <null> - WindowsPath - \b\c\g\.\h - Out-NSResults - - absoluteString - http://a/b/c/g/./h - absoluteURLString - http://a/b/c/g/./h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/./ - deletingLastPathExtension - http://a/b/c/g/./h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/./h - pathComponents - - / - b - c - g - . - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/./h - relativeString - http://a/b/c/g/./h - scheme - http - standardizedURL - http://a/b/c/g/h - user - <null> - + <null url> In-Title @@ -57521,153 +12720,8 @@ CFURLCreateWithString In-Url http://a/b/c/g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/../h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/../h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4uL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/../h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLData - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLString - http://a/b/c/g/../h - UserName - <null> - WindowsPath - \b\c\g\..\h - Out-NSResults - - absoluteString - http://a/b/c/g/../h - absoluteURLString - http://a/b/c/g/../h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/../ - deletingLastPathExtension - http://a/b/c/g/../h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/../h - pathComponents - - / - b - c - g - .. - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/../h - relativeString - http://a/b/c/g/../h - scheme - http - standardizedURL - http://a/b/c/h - user - <null> - + <null url> In-Title @@ -57676,151 +12730,8 @@ CFURLCreateWithString In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (22, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 7) (14, 8) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (22, 0) - ComponentResourceSpecifier - (15, 7) (14, 8) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/./y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/./y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLString - http://a/b/c/g;x=1/./y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/./y - deletingLastPathExtension - http://a/b/c/g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/./y - scheme - http - standardizedURL - http://a/b/c/g;x=1/./y - user - <null> - + <null url> In-Title @@ -57829,151 +12740,8 @@ CFURLCreateWithString In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 8) (14, 9) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (15, 8) (14, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/../y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/../y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLString - http://a/b/c/g;x=1/../y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/../y - deletingLastPathExtension - http://a/b/c/g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/../y - scheme - http - standardizedURL - http://a/b/c/g;x=1/../y - user - <null> - + <null url> In-Title @@ -57982,151 +12750,8 @@ CFURLCreateWithString In-Url http://a/b/c/g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 5) (14, 6) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLString - http://a/b/c/g?y/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/./x - deletingLastPathExtension - http://a/b/c/g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/./x - scheme - http - standardizedURL - http://a/b/c/g?y/./x - user - <null> - + <null url> In-Title @@ -58135,151 +12760,8 @@ CFURLCreateWithString In-Url http://a/b/c/g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 6) (14, 7) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLString - http://a/b/c/g?y/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/../x - deletingLastPathExtension - http://a/b/c/g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/../x - scheme - http - standardizedURL - http://a/b/c/g?y/../x - user - <null> - + <null url> In-Title @@ -58288,151 +12770,8 @@ CFURLCreateWithString In-Url http://a/b/c/g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 5) (14, 6) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLString - http://a/b/c/g#s/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/./x - deletingLastPathExtension - http://a/b/c/g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/./x - scheme - http - standardizedURL - http://a/b/c/g#s/./x - user - <null> - + <null url> In-Title @@ -58441,151 +12780,8 @@ CFURLCreateWithString In-Url http://a/b/c/g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 6) (14, 7) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLString - http://a/b/c/g#s/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/../x - deletingLastPathExtension - http://a/b/c/g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/../x - scheme - http - standardizedURL - http://a/b/c/g#s/../x - user - <null> - + <null url> In-Title @@ -58594,151 +12790,8 @@ CFURLCreateWithString In-Url http://a/../../x - Out-CFResults - - AbsoluteURLString - http://a/../../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/../../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy4uL3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /../../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../x - URLBytes - - aHR0cDovL2EvLi4vLi4veA== - - URLData - - aHR0cDovL2EvLi4vLi4veA== - - URLString - http://a/../../x - UserName - <null> - WindowsPath - \..\..\x - Out-NSResults - - absoluteString - http://a/../../x - absoluteURLString - http://a/../../x - baseURLString - <null> - deletingLastPathComponent - http://a/../../ - deletingLastPathExtension - http://a/../../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - /../../x - pathComponents - - / - .. - .. - x - - pathExtension - - port - <null> - query - <null> - relativePath - /../../x - relativeString - http://a/../../x - scheme - http - standardizedURL - http://a/x - user - <null> - + <null url> In-Title @@ -58747,151 +12800,8 @@ CFURLCreateWithString In-Url http://a/..///../x - Out-CFResults - - AbsoluteURLString - http://a/..///../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/..///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/..///../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy8vLi4veA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /..///../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /..///../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..///../x - URLBytes - - aHR0cDovL2EvLi4vLy8uLi94 - - URLData - - aHR0cDovL2EvLi4vLy8uLi94 - - URLString - http://a/..///../x - UserName - <null> - WindowsPath - \..\\\..\x - Out-NSResults - - absoluteString - http://a/..///../x - absoluteURLString - http://a/..///../x - baseURLString - <null> - deletingLastPathComponent - http://a/..///../ - deletingLastPathExtension - http://a/..///../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - /..///../x - pathComponents - - / - .. - .. - x - - pathExtension - - port - <null> - query - <null> - relativePath - /..///../x - relativeString - http://a/..///../x - scheme - http - standardizedURL - http://a/x - user - <null> - + <null url> In-Title @@ -58900,151 +12810,8 @@ CFURLCreateWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AbsoluteURLString - file:///usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 14) (4, 17) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLString - file:///usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:///usr/local/bin - absoluteURLString - file:///usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:///usr/local/ - deletingLastPathExtension - file:///usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:///usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -59053,151 +12820,8 @@ CFURLCreateWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AbsoluteURLString - file:/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 14) (4, 15) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLData - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLString - file:/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:/usr/local/bin - absoluteURLString - file:/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:/usr/local/ - deletingLastPathExtension - file:/usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:/usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -59206,151 +12830,8 @@ CFURLCreateWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 14) (16, 14) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLString - file://localhost/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin - absoluteURLString - file://localhost/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin - scheme - file - standardizedURL - file://localhost/usr/local/bin - user - <null> - + <null url> In-Title @@ -59359,150 +12840,8 @@ CFURLCreateWithBytes In-Url file://usr/local/bin - Out-CFResults - - AbsoluteURLString - file://usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 10) (10, 10) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2xvY2FsL2Jpbg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - usr - IsAbsolute - - LastPathComponent - bin - NetLocation - usr - POSIXPath - /local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - local/bin - URLBytes - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLData - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLString - file://usr/local/bin - UserName - <null> - WindowsPath - \local\bin - Out-NSResults - - absoluteString - file://usr/local/bin - absoluteURLString - file://usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://usr/local/ - deletingLastPathExtension - file://usr/local/bin - fragment - <null> - host - usr - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /local/bin - pathComponents - - / - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /local/bin - relativeString - file://usr/local/bin - scheme - file - standardizedURL - file://usr/local/bin - user - <null> - + <null url> In-Title @@ -59511,147 +12850,8 @@ CFURLCreateWithBytes In-Url /usr/local/bin - Out-CFResults - - AbsoluteURLString - /usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 14) (0, 14) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /usr/local/bin - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - usr/local/bin - URLBytes - - L3Vzci9sb2NhbC9iaW4= - - URLData - - L3Vzci9sb2NhbC9iaW4= - - URLString - /usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - /usr/local/bin - absoluteURLString - /usr/local/bin - baseURLString - <null> - deletingLastPathComponent - /usr/local/ - deletingLastPathExtension - /usr/local/bin - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - /usr/local/bin - scheme - <null> - standardizedURL - /usr/local/bin - user - <null> - + <null url> In-Title @@ -59660,151 +12860,8 @@ CFURLCreateWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin/ - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - file://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin/ - absoluteURLString - file://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin/ - scheme - file - standardizedURL - file://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -59813,148 +12870,8 @@ CFURLCreateWithBytes In-Url file://localhost/ - Out-CFResults - - AbsoluteURLString - file://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLData - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLString - file://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost/ - absoluteURLString - file://localhost/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/../ - deletingLastPathExtension - file://localhost/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file://localhost/ - scheme - file - standardizedURL - file://localhost/ - user - <null> - + <null url> In-Title @@ -59963,145 +12880,8 @@ CFURLCreateWithBytes In-Url file://localhost - Out-CFResults - - AbsoluteURLString - file://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2xvY2FsaG9zdA== - - URLData - - ZmlsZTovL2xvY2FsaG9zdA== - - URLString - file://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost - absoluteURLString - file://localhost - baseURLString - <null> - deletingLastPathComponent - file://localhost../ - deletingLastPathExtension - file://localhost - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://localhost - scheme - file - standardizedURL - file://localhost - user - <null> - + <null url> In-Title @@ -60110,148 +12890,8 @@ CFURLCreateWithBytes In-Url file:/// - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -60260,142 +12900,8 @@ CFURLCreateWithBytes In-Url file:// - Out-CFResults - - AbsoluteURLString - file:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovLw== - - URLData - - ZmlsZTovLw== - - URLString - file:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:// - absoluteURLString - file:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -60404,148 +12910,8 @@ CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -60554,142 +12920,8 @@ CFURLCreateWithBytes In-Url FILE:// - Out-CFResults - - AbsoluteURLString - FILE:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - FILE - StrictPath - <null> - URLBytes - - RklMRTovLw== - - URLData - - RklMRTovLw== - - URLString - FILE:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - FILE:// - absoluteURLString - FILE:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - FILE:// - scheme - FILE - standardizedURL - FILE:/// - user - <null> - + <null url> In-Title @@ -60698,149 +12930,8 @@ CFURLCreateWithBytes In-Url file:///Volumes - Out-CFResults - - AbsoluteURLString - file:///Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovLy9Wb2x1bWVz - - URLData - - ZmlsZTovLy9Wb2x1bWVz - - URLString - file:///Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:///Volumes - absoluteURLString - file:///Volumes - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:///Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -60849,150 +12940,8 @@ CFURLCreateWithBytes In-Url file:///Users/darin - Out-CFResults - - AbsoluteURLString - file:///Users/darin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///Users/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Users/darin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1VzZXJzL2Rhcmlu - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - darin - NetLocation - <null> - POSIXPath - /Users/darin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Users/darin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Users/darin - URLBytes - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLData - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLString - file:///Users/darin - UserName - <null> - WindowsPath - \Users\darin - Out-NSResults - - absoluteString - file:///Users/darin - absoluteURLString - file:///Users/darin - baseURLString - <null> - deletingLastPathComponent - file:///Users/ - deletingLastPathExtension - file:///Users/darin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - darin - password - <null> - path - /Users/darin - pathComponents - - / - Users - darin - - pathExtension - - port - <null> - query - <null> - relativePath - /Users/darin - relativeString - file:///Users/darin - scheme - file - standardizedURL - file:///Users/darin - user - <null> - + <null url> In-Title @@ -61001,148 +12950,8 @@ CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -61151,145 +12960,8 @@ CFURLCreateWithBytes In-Url file://foo - Out-CFResults - - AbsoluteURLString - file://foo - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 0) (10, 0) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://foo../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://foo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - foo - IsAbsolute - - LastPathComponent - - NetLocation - foo - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2Zvbw== - - URLData - - ZmlsZTovL2Zvbw== - - URLString - file://foo - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://foo - absoluteURLString - file://foo - baseURLString - <null> - deletingLastPathComponent - file://foo../ - deletingLastPathExtension - file://foo - fragment - <null> - host - foo - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://foo - scheme - file - standardizedURL - file://foo - user - <null> - + <null url> In-Title @@ -61298,149 +12970,8 @@ CFURLCreateWithBytes In-Url file:///. - Out-CFResults - - AbsoluteURLString - file:///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - . - URLBytes - - ZmlsZTovLy8u - - URLData - - ZmlsZTovLy8u - - URLString - file:///. - UserName - <null> - WindowsPath - \. - Out-NSResults - - absoluteString - file:///. - absoluteURLString - file:///. - baseURLString - <null> - deletingLastPathComponent - file:///./../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /. - pathComponents - - / - . - - pathExtension - - port - <null> - query - <null> - relativePath - /. - relativeString - file:///. - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -61449,150 +12980,8 @@ CFURLCreateWithBytes In-Url file:///./. - Out-CFResults - - AbsoluteURLString - file:///./. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /./. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./. - URLBytes - - ZmlsZTovLy8uLy4= - - URLData - - ZmlsZTovLy8uLy4= - - URLString - file:///./. - UserName - <null> - WindowsPath - \.\. - Out-NSResults - - absoluteString - file:///./. - absoluteURLString - file:///./. - baseURLString - <null> - deletingLastPathComponent - file:///./../ - deletingLastPathExtension - file:///./ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /./. - pathComponents - - / - . - . - - pathExtension - - port - <null> - query - <null> - relativePath - /./. - relativeString - file:///./. - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -61601,150 +12990,8 @@ CFURLCreateWithBytes In-Url file:///.///. - Out-CFResults - - AbsoluteURLString - file:///.///. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 6) (4, 9) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///.///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vLy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - /.///. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /.///. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - .///. - URLBytes - - ZmlsZTovLy8uLy8vLg== - - URLData - - ZmlsZTovLy8uLy8vLg== - - URLString - file:///.///. - UserName - <null> - WindowsPath - \.\\\. - Out-NSResults - - absoluteString - file:///.///. - absoluteURLString - file:///.///. - baseURLString - <null> - deletingLastPathComponent - file:///.///../ - deletingLastPathExtension - file:///./// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - . - password - <null> - path - /.///. - pathComponents - - / - . - . - - pathExtension - - port - <null> - query - <null> - relativePath - /.///. - relativeString - file:///.///. - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -61753,150 +13000,8 @@ CFURLCreateWithBytes In-Url file:///a/.. - Out-CFResults - - AbsoluteURLString - file:///a/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 5) (4, 8) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/.. - URLBytes - - ZmlsZTovLy9hLy4u - - URLData - - ZmlsZTovLy9hLy4u - - URLString - file:///a/.. - UserName - <null> - WindowsPath - \a\.. - Out-NSResults - - absoluteString - file:///a/.. - absoluteURLString - file:///a/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/../../ - deletingLastPathExtension - file:///a/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/.. - pathComponents - - / - a - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/.. - relativeString - file:///a/.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -61905,151 +13010,8 @@ CFURLCreateWithBytes In-Url file:///a/b/.. - Out-CFResults - - AbsoluteURLString - file:///a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 7) (4, 10) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/.. - URLBytes - - ZmlsZTovLy9hL2IvLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4= - - URLString - file:///a/b/.. - UserName - <null> - WindowsPath - \a\b\.. - Out-NSResults - - absoluteString - file:///a/b/.. - absoluteURLString - file:///a/b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/../../ - deletingLastPathExtension - file:///a/b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/.. - relativeString - file:///a/b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -62058,151 +13020,8 @@ CFURLCreateWithBytes In-Url file:///a/b//.. - Out-CFResults - - AbsoluteURLString - file:///a/b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8vLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b//.. - URLBytes - - ZmlsZTovLy9hL2IvLy4u - - URLData - - ZmlsZTovLy9hL2IvLy4u - - URLString - file:///a/b//.. - UserName - <null> - WindowsPath - \a\b\\.. - Out-NSResults - - absoluteString - file:///a/b//.. - absoluteURLString - file:///a/b//.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b//../../ - deletingLastPathExtension - file:///a/b//. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b//.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b//.. - relativeString - file:///a/b//.. - scheme - file - standardizedURL - file:///a/b - user - <null> - + <null url> In-Title @@ -62211,152 +13030,8 @@ CFURLCreateWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AbsoluteURLString - file:///./a/b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///./a/b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///./a/b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4vYS9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /./a/b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./a/b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - ./a/b/.. - URLBytes - - ZmlsZTovLy8uL2EvYi8uLg== - - URLData - - ZmlsZTovLy8uL2EvYi8uLg== - - URLString - file:///./a/b/.. - UserName - <null> - WindowsPath - \.\a\b\.. - Out-NSResults - - absoluteString - file:///./a/b/.. - absoluteURLString - file:///./a/b/.. - baseURLString - <null> - deletingLastPathComponent - file:///./a/b/../../ - deletingLastPathExtension - file:///./a/b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /./a/b/.. - pathComponents - - / - . - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /./a/b/.. - relativeString - file:///./a/b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -62365,152 +13040,8 @@ CFURLCreateWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AbsoluteURLString - file:///a/./b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/./b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/./b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi9iLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/./b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/./b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/./b/.. - URLBytes - - ZmlsZTovLy9hLy4vYi8uLg== - - URLData - - ZmlsZTovLy9hLy4vYi8uLg== - - URLString - file:///a/./b/.. - UserName - <null> - WindowsPath - \a\.\b\.. - Out-NSResults - - absoluteString - file:///a/./b/.. - absoluteURLString - file:///a/./b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/./b/../../ - deletingLastPathExtension - file:///a/./b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/./b/.. - pathComponents - - / - a - . - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/./b/.. - relativeString - file:///a/./b/.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -62519,152 +13050,8 @@ CFURLCreateWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AbsoluteURLString - file:///a/b/./.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 9) (4, 12) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/./../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/./. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/./.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/./.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/./.. - URLBytes - - ZmlsZTovLy9hL2IvLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvLi8uLg== - - URLString - file:///a/b/./.. - UserName - <null> - WindowsPath - \a\b\.\.. - Out-NSResults - - absoluteString - file:///a/b/./.. - absoluteURLString - file:///a/b/./.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/./../../ - deletingLastPathExtension - file:///a/b/./. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/./.. - pathComponents - - / - a - b - . - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/./.. - relativeString - file:///a/b/./.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -62673,151 +13060,8 @@ CFURLCreateWithBytes In-Url file:///a///b//.. - Out-CFResults - - AbsoluteURLString - file:///a///b//.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a///b//../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a///b//. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLy9iLy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a///b//.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a///b//.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a///b//.. - URLBytes - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLData - - ZmlsZTovLy9hLy8vYi8vLi4= - - URLString - file:///a///b//.. - UserName - <null> - WindowsPath - \a\\\b\\.. - Out-NSResults - - absoluteString - file:///a///b//.. - absoluteURLString - file:///a///b//.. - baseURLString - <null> - deletingLastPathComponent - file:///a///b//../../ - deletingLastPathExtension - file:///a///b//. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a///b//.. - pathComponents - - / - a - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a///b//.. - relativeString - file:///a///b//.. - scheme - file - standardizedURL - file:///a///b - user - <null> - + <null url> In-Title @@ -62826,152 +13070,8 @@ CFURLCreateWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/../.. - URLBytes - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLData - - ZmlsZTovLy9hL2IvLi4vLi4= - - URLString - file:///a/b/../.. - UserName - <null> - WindowsPath - \a\b\..\.. - Out-NSResults - - absoluteString - file:///a/b/../.. - absoluteURLString - file:///a/b/../.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/../../../ - deletingLastPathExtension - file:///a/b/../. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/../.. - pathComponents - - / - a - b - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/../.. - relativeString - file:///a/b/../.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -62980,153 +13080,8 @@ CFURLCreateWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AbsoluteURLString - file:///a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYi9jLy4uLy4u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/c/../.. - URLBytes - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLData - - ZmlsZTovLy9hL2IvYy8uLi8uLg== - - URLString - file:///a/b/c/../.. - UserName - <null> - WindowsPath - \a\b\c\..\.. - Out-NSResults - - absoluteString - file:///a/b/c/../.. - absoluteURLString - file:///a/b/c/../.. - baseURLString - <null> - deletingLastPathComponent - file:///a/b/c/../../../ - deletingLastPathExtension - file:///a/b/c/../. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/b/c/../.. - pathComponents - - / - a - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b/c/../.. - relativeString - file:///a/b/c/../.. - scheme - file - standardizedURL - file:///a - user - <null> - + <null url> In-Title @@ -63135,152 +13090,8 @@ CFURLCreateWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AbsoluteURLString - file:///a/../b/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 10) (4, 13) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - .. - NetLocation - <null> - POSIXPath - /a/../b/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/.. - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4= - - URLString - file:///a/../b/.. - UserName - <null> - WindowsPath - \a\..\b\.. - Out-NSResults - - absoluteString - file:///a/../b/.. - absoluteURLString - file:///a/../b/.. - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../../ - deletingLastPathExtension - file:///a/../b/. - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - .. - password - <null> - path - /a/../b/.. - pathComponents - - / - a - .. - b - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/.. - relativeString - file:///a/../b/.. - scheme - file - standardizedURL - file:// - user - <null> - + <null url> In-Title @@ -63289,153 +13100,8 @@ CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults - - absoluteString - file:///a/../b/../c - absoluteURLString - file:///a/../b/../c - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../ - deletingLastPathExtension - file:///a/../b/../c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /a/../b/../c - pathComponents - - / - a - .. - b - .. - c - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/../c - relativeString - file:///a/../b/../c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -63444,153 +13110,8 @@ CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///a/../b/../c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/../b/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/../b/../c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLi4vYi8uLi9j - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /a/../b/../c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/../b/../c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/../b/../c - URLBytes - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLData - - ZmlsZTovLy9hLy4uL2IvLi4vYw== - - URLString - file:///a/../b/../c - UserName - <null> - WindowsPath - \a\..\b\..\c - Out-NSResults - - absoluteString - file:///a/../b/../c - absoluteURLString - file:///a/../b/../c - baseURLString - <null> - deletingLastPathComponent - file:///a/../b/../ - deletingLastPathExtension - file:///a/../b/../c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /a/../b/../c - pathComponents - - / - a - .. - b - .. - c - - pathExtension - - port - <null> - query - <null> - relativePath - /a/../b/../c - relativeString - file:///a/../b/../c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -63599,145 +13120,8 @@ CFURLCreateWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 0) (17, 0) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - - NetLocation - ftp.gnu.org - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - <null> - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLString - ftp://ftp.gnu.org - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org - absoluteURLString - ftp://ftp.gnu.org - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org../ - deletingLastPathExtension - ftp://ftp.gnu.org - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - ftp://ftp.gnu.org - scheme - ftp - standardizedURL - ftp://ftp.gnu.org - user - <null> - + <null url> In-Title @@ -63746,148 +13130,8 @@ CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 1) (17, 1) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - / - NetLocation - ftp.gnu.org - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLString - ftp://ftp.gnu.org/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/ - absoluteURLString - ftp://ftp.gnu.org/ - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/../ - deletingLastPathExtension - ftp://ftp.gnu.org/ - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - ftp://ftp.gnu.org/ - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/ - user - <null> - + <null url> In-Title @@ -63896,150 +13140,8 @@ CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 8) (17, 8) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/pub/gnu - absoluteURLString - ftp://ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/pub/gnu - user - <null> - + <null url> In-Title @@ -64048,150 +13150,8 @@ CFURLCreateWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (12, 11) (11, 12) - ComponentNetLocation - (6, 17) (3, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (11, 0) - ComponentPath - (23, 8) (23, 8) - ComponentPort - (-1, 0) (23, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 5) (3, 9) - DeletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://luser@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -64200,150 +13160,8 @@ CFURLCreateWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 11) (6, 12) - ComponentNetLocation - (6, 12) (3, 15) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (18, 8) (18, 8) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 0) (3, 4) - DeletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - @ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLData - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLString - ftp://@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -64352,152 +13170,8 @@ CFURLCreateWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (21, 11) (20, 12) - ComponentNetLocation - (6, 26) (3, 29) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (12, 8) (11, 10) - ComponentPath - (32, 8) (32, 8) - ComponentPort - (-1, 0) (32, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 14) (3, 18) - DeletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser:password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLString - ftp://luser:password@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser:password@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -64506,152 +13180,8 @@ CFURLCreateWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (35, 0) - ComponentHost - (16, 11) (15, 12) - ComponentNetLocation - (6, 21) (3, 24) - ComponentParameterString - (-1, 0) (35, 0) - ComponentPassword - (7, 8) (6, 10) - ComponentPath - (27, 8) (27, 8) - ComponentPort - (-1, 0) (27, 0) - ComponentQuery - (-1, 0) (35, 0) - ComponentResourceSpecifier - (-1, 0) (35, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 9) (3, 13) - DeletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - :password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLData - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLString - ftp://:password@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://:password@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -64660,150 +13190,8 @@ CFURLCreateWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (6, 11) (3, 15) - ComponentNetLocation - (6, 14) (3, 17) - ComponentParameterString - (-1, 0) (28, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (20, 8) (20, 8) - ComponentPort - (18, 2) (17, 3) - ComponentQuery - (-1, 0) (28, 0) - ComponentResourceSpecifier - (-1, 0) (28, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org:72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org:72/pub/gnu - absoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org:72/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org:72/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org:72/pub/gnu - user - <null> - + <null url> In-Title @@ -64812,150 +13200,8 @@ CFURLCreateWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 0) (3, 4) - ComponentNetLocation - (6, 3) (3, 6) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (9, 8) (9, 8) - ComponentPort - (7, 2) (6, 3) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - - IsAbsolute - - LastPathComponent - gnu - NetLocation - :72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLData - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLString - ftp://:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:72/pub/gnu - absoluteURLString - ftp://:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:72/pub/ - deletingLastPathExtension - ftp://:72/pub/gnu - fragment - <null> - host - - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:72/pub/gnu - scheme - ftp - standardizedURL - ftp://:72/pub/gnu - user - <null> - + <null url> In-Title @@ -64964,151 +13210,8 @@ CFURLCreateWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - http://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - usr/local/bin/ - URLBytes - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - http://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - http://localhost/usr/local/bin/ - absoluteURLString - http://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/usr/local/ - deletingLastPathExtension - http://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - http://localhost/usr/local/bin/ - scheme - http - standardizedURL - http://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -65117,148 +13220,8 @@ CFURLCreateWithBytes In-Url http://localhost/ - Out-CFResults - - AbsoluteURLString - http://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2xvY2FsaG9zdC8= - - URLData - - aHR0cDovL2xvY2FsaG9zdC8= - - URLString - http://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost/ - absoluteURLString - http://localhost/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/../ - deletingLastPathExtension - http://localhost/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://localhost/ - scheme - http - standardizedURL - http://localhost/ - user - <null> - + <null url> In-Title @@ -65267,145 +13230,8 @@ CFURLCreateWithBytes In-Url http://localhost - Out-CFResults - - AbsoluteURLString - http://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2xvY2FsaG9zdA== - - URLData - - aHR0cDovL2xvY2FsaG9zdA== - - URLString - http://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost - absoluteURLString - http://localhost - baseURLString - <null> - deletingLastPathComponent - http://localhost../ - deletingLastPathExtension - http://localhost - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://localhost - scheme - http - standardizedURL - http://localhost - user - <null> - + <null url> In-Title @@ -65414,145 +13240,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 0) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLString - http://www.apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com - absoluteURLString - http://www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../ - deletingLastPathExtension - http://www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple.com - scheme - http - standardizedURL - http://www.apple.com - user - <null> - + <null url> In-Title @@ -65561,148 +13250,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 1) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - / - NetLocation - www.apple.com - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLString - http://www.apple.com/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com/ - absoluteURLString - http://www.apple.com/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/../ - deletingLastPathExtension - http://www.apple.com/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://www.apple.com/ - scheme - http - standardizedURL - http://www.apple.com/ - user - <null> - + <null url> In-Title @@ -65711,149 +13260,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (24, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (24, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 4) (20, 4) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (24, 0) - ComponentResourceSpecifier - (-1, 0) (24, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLString - http://www.apple.com/dir - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir - absoluteURLString - http://www.apple.com/dir - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir - scheme - http - standardizedURL - http://www.apple.com/dir - user - <null> - + <null url> In-Title @@ -65862,149 +13270,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 5) (20, 5) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLString - http://www.apple.com/dir/ - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir/ - absoluteURLString - http://www.apple.com/dir/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir/ - scheme - http - standardizedURL - http://www.apple.com/dir/ - user - <null> - + <null url> In-Title @@ -66013,145 +13280,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com:80 - Out-CFResults - - AbsoluteURLString - http://www.apple.com:80 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 13) (4, 17) - ComponentNetLocation - (7, 16) (4, 19) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (23, 0) (23, 0) - ComponentPort - (21, 2) (20, 3) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com:80../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com:80 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com:80 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLString - http://www.apple.com:80 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com:80 - absoluteURLString - http://www.apple.com:80 - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com:80../ - deletingLastPathExtension - http://www.apple.com:80 - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - 80 - query - <null> - relativePath - - relativeString - http://www.apple.com:80 - scheme - http - standardizedURL - http://www.apple.com:80 - user - <null> - + <null url> In-Title @@ -66160,151 +13290,8 @@ CFURLCreateWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AbsoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (20, 13) (19, 15) - ComponentNetLocation - (7, 29) (4, 32) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (13, 6) (12, 8) - ComponentPath - (36, 5) (36, 5) - ComponentPort - (34, 2) (33, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 12) (4, 16) - DeletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:nothin@www.apple.com:42/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - darin:nothin@www.apple.com:42 - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - nothin - Path - /dir/ - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLData - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLString - http://darin:nothin@www.apple.com:42/dir/ - UserName - darin - WindowsPath - \dir - Out-NSResults - - absoluteString - http://darin:nothin@www.apple.com:42/dir/ - absoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - baseURLString - <null> - deletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - deletingLastPathExtension - http://darin:nothin@www.apple.com:42/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - nothin - path - /dir - pathComponents - - / - dir - - pathExtension - - port - 42 - query - <null> - relativePath - /dir - relativeString - http://darin:nothin@www.apple.com:42/dir/ - scheme - http - standardizedURL - http://darin:nothin@www.apple.com:42/dir/ - user - darin - + <null url> In-Title @@ -66313,148 +13300,8 @@ CFURLCreateWithBytes In-Url http:/ - Out-CFResults - - AbsoluteURLString - http:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDov - - URLData - - aHR0cDov - - URLString - http:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:/ - absoluteURLString - http:/ - baseURLString - <null> - deletingLastPathComponent - http:/../ - deletingLastPathExtension - http:/ - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http:/ - scheme - http - standardizedURL - http:/// - user - <null> - + <null url> In-Title @@ -66463,151 +13310,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com/query?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (48, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 6) (20, 7) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (27, 21) (26, 22) - ComponentResourceSpecifier - (27, 21) (26, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/query?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3F1ZXJ5 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - query - NetLocation - www.apple.com - POSIXPath - /query - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /query - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - query - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLString - http://www.apple.com/query?email=darin@apple.com - UserName - <null> - WindowsPath - \query - Out-NSResults - - absoluteString - http://www.apple.com/query?email=darin@apple.com - absoluteURLString - http://www.apple.com/query?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com/query?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - query - password - <null> - path - /query - pathComponents - - / - query - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - /query - relativeString - http://www.apple.com/query?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com/query?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -66616,147 +13320,8 @@ CFURLCreateWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (42, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (21, 21) (20, 22) - ComponentResourceSpecifier - (21, 21) (20, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLString - http://www.apple.com?email=darin@apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com?email=darin@apple.com - absoluteURLString - http://www.apple.com?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - - relativeString - http://www.apple.com?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -66765,145 +13330,8 @@ CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 0) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - - NetLocation - WWW.ZOO.COM - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - <null> - URLBytes - - SFRUUDovL1dXVy5aT08uQ09N - - URLData - - SFRUUDovL1dXVy5aT08uQ09N - - URLString - HTTP://WWW.ZOO.COM - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM - absoluteURLString - HTTP://WWW.ZOO.COM - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - HTTP://WWW.ZOO.COM - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM - user - <null> - + <null url> In-Title @@ -66912,148 +13340,8 @@ CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 1) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - / - NetLocation - WWW.ZOO.COM - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLData - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLString - HTTP://WWW.ZOO.COM/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ - absoluteURLString - HTTP://WWW.ZOO.COM/ - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - HTTP://WWW.ZOO.COM/ - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ - user - <null> - + <null url> In-Title @@ -67062,149 +13350,8 @@ CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ED - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 3) (18, 3) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ED - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L0VE - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - ED - NetLocation - WWW.ZOO.COM - POSIXPath - /ED - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /ED - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - ED - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLData - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLString - HTTP://WWW.ZOO.COM/ED - UserName - <null> - WindowsPath - \ED - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ED - absoluteURLString - HTTP://WWW.ZOO.COM/ED - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ED - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - ED - password - <null> - path - /ED - pathComponents - - / - ED - - pathExtension - - port - <null> - query - <null> - relativePath - /ED - relativeString - HTTP://WWW.ZOO.COM/ED - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ED - user - <null> - + <null url> In-Title @@ -67213,155 +13360,8 @@ CFURLCreateWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AbsoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (99, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (45, 43) (44, 45) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 29) (15, 30) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (89, 10) (88, 11) - ComponentResourceSpecifier - (45, 54) (44, 55) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BjL2NhdGFsb2cvU2VnYVByb2R1Y3Quamh0bWw= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - sega.com - IsAbsolute - - LastPathComponent - SegaProduct.jhtml - NetLocation - sega.com - POSIXPath - /pc/catalog/SegaProduct.jhtml - ParameterString-Escaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - ParameterString-Unescaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - Password - <null> - Path - /pc/catalog/SegaProduct.jhtml - PathExtension - jhtml - PortNumber - -1 - QueryString-Escaped - PRODID=193 - QueryString-Unescaped - PRODID=193 - ResourceSpecifier - ;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Scheme - http - StrictPath - pc/catalog/SegaProduct.jhtml - URLBytes - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLData - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - UserName - <null> - WindowsPath - \pc\catalog\SegaProduct.jhtml - Out-NSResults - - absoluteString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - absoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - baseURLString - <null> - deletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - deletingLastPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - fragment - <null> - host - sega.com - isFileURL - NO - lastPathComponent - SegaProduct.jhtml - password - <null> - path - /pc/catalog/SegaProduct.jhtml - pathComponents - - / - pc - catalog - SegaProduct.jhtml - - pathExtension - jhtml - port - <null> - query - PRODID=193 - relativePath - /pc/catalog/SegaProduct.jhtml - relativeString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - scheme - http - standardizedURL - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - user - <null> - + <null url> In-Title @@ -67370,153 +13370,8 @@ CFURLCreateWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AbsoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (75, 0) - ComponentHost - (7, 17) (4, 20) - ComponentNetLocation - (7, 17) (4, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (24, 7) (24, 8) - ComponentPort - (-1, 0) (24, 0) - ComponentQuery - (32, 43) (31, 44) - ComponentResourceSpecifier - (32, 43) (31, 44) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2dyb3Vwcw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - groups.google.com - IsAbsolute - - LastPathComponent - groups - NetLocation - groups.google.com - POSIXPath - /groups - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /groups - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - QueryString-Unescaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - ResourceSpecifier - ?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Scheme - http - StrictPath - groups - URLBytes - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLData - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - UserName - <null> - WindowsPath - \groups - Out-NSResults - - absoluteString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - absoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - baseURLString - <null> - deletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - deletingLastPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - fragment - <null> - host - groups.google.com - isFileURL - NO - lastPathComponent - groups - password - <null> - path - /groups - pathComponents - - / - groups - - pathExtension - - port - <null> - query - as_uauthors=joe@blow.com&as_scoring=d&hl=en - relativePath - /groups - relativeString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - scheme - http - standardizedURL - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - user - <null> - + <null url> In-Title @@ -67525,152 +13380,8 @@ CFURLCreateWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com/some/page.html#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (34, 8) (33, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 15) (18, 16) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (34, 8) (33, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com/some/#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com/some/page#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGFnZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - page.html - NetLocation - my.site.com - POSIXPath - /some/page.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/page.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - some/page.html - URLBytes - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLString - http://my.site.com/some/page.html#fragment - UserName - <null> - WindowsPath - \some\page.html - Out-NSResults - - absoluteString - http://my.site.com/some/page.html#fragment - absoluteURLString - http://my.site.com/some/page.html#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com/some/#fragment - deletingLastPathExtension - http://my.site.com/some/page#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - page.html - password - <null> - path - /some/page.html - pathComponents - - / - some - page.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /some/page.html - relativeString - http://my.site.com/some/page.html#fragment - scheme - http - standardizedURL - http://my.site.com/some/page.html#fragment - user - <null> - + <null url> In-Title @@ -67679,145 +13390,8 @@ CFURLCreateWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 8) (18, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (19, 8) (18, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com../#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - - NetLocation - my.site.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLString - http://my.site.com#fragment - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://my.site.com#fragment - absoluteURLString - http://my.site.com#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com../#fragment - deletingLastPathExtension - http://my.site.com#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://my.site.com#fragment - scheme - http - standardizedURL - http://my.site.com#fragment - user - <null> - + <null url> In-Title @@ -67826,155 +13400,8 @@ CFURLCreateWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AbsoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 8) (59, 9) - ComponentHost - (19, 4) (18, 6) - ComponentNetLocation - (9, 16) (6, 19) - ComponentParameterString - (47, 6) (46, 8) - ComponentPassword - (14, 4) (13, 6) - ComponentPath - (25, 21) (25, 22) - ComponentPort - (24, 1) (23, 2) - ComponentQuery - (54, 5) (53, 7) - ComponentResourceSpecifier - (47, 21) (46, 22) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 4) (6, 8) - ComponentUserInfo - (9, 9) (6, 13) - DeletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhdGgvcGF0aDIvZmlsZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - host - IsAbsolute - - LastPathComponent - file.html - NetLocation - user:pass@host:1 - POSIXPath - /path/path2/file.html - ParameterString-Escaped - params - ParameterString-Unescaped - params - Password - pass - Path - /path/path2/file.html - PathExtension - html - PortNumber - 1 - QueryString-Escaped - query - QueryString-Unescaped - query - ResourceSpecifier - ;params?query#fragment - Scheme - scheme - StrictPath - path/path2/file.html - URLBytes - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLData - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - UserName - user - WindowsPath - \path\path2\file.html - Out-NSResults - - absoluteString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - absoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - baseURLString - <null> - deletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - deletingLastPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - fragment - fragment - host - host - isFileURL - NO - lastPathComponent - file.html - password - pass - path - /path/path2/file.html - pathComponents - - / - path - path2 - file.html - - pathExtension - html - port - 1 - query - query - relativePath - /path/path2/file.html - relativeString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - scheme - scheme - standardizedURL - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - user - user - + <null url> In-Title @@ -67983,149 +13410,8 @@ CFURLCreateWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AbsoluteURLString - http://test.com/a%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/a%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Egc3BhY2U= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - a space - NetLocation - test.com - POSIXPath - /a space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - a%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLString - http://test.com/a%20space - UserName - <null> - WindowsPath - \a space - Out-NSResults - - absoluteString - http://test.com/a%20space - absoluteURLString - http://test.com/a%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/a%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - a space - password - <null> - path - /a space - pathComponents - - / - a space - - pathExtension - - port - <null> - query - <null> - relativePath - /a space - relativeString - http://test.com/a%20space - scheme - http - standardizedURL - http://test.com/a%20space - user - <null> - + <null url> In-Title @@ -68134,149 +13420,8 @@ CFURLCreateWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AbsoluteURLString - http://test.com/aBrace%7B - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aBrace%7B - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FCcmFjZXs= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aBrace{ - NetLocation - test.com - POSIXPath - /aBrace{ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aBrace%7B - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aBrace%7B - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLData - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLString - http://test.com/aBrace%7B - UserName - <null> - WindowsPath - \aBrace{ - Out-NSResults - - absoluteString - http://test.com/aBrace%7B - absoluteURLString - http://test.com/aBrace%7B - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aBrace%7B - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aBrace{ - password - <null> - path - /aBrace{ - pathComponents - - / - aBrace{ - - pathExtension - - port - <null> - query - <null> - relativePath - /aBrace{ - relativeString - http://test.com/aBrace%7B - scheme - http - standardizedURL - http://test.com/aBrace%7B - user - <null> - + <null url> In-Title @@ -68285,149 +13430,8 @@ CFURLCreateWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AbsoluteURLString - http://test.com/aJ%4a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 6) (15, 6) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aJ%4a - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FKSg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aJJ - NetLocation - test.com - POSIXPath - /aJJ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aJ%4a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aJ%4a - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLData - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLString - http://test.com/aJ%4a - UserName - <null> - WindowsPath - \aJJ - Out-NSResults - - absoluteString - http://test.com/aJ%4a - absoluteURLString - http://test.com/aJ%4a - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aJ%4a - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aJJ - password - <null> - path - /aJJ - pathComponents - - / - aJJ - - pathExtension - - port - <null> - query - <null> - relativePath - /aJJ - relativeString - http://test.com/aJ%4a - scheme - http - standardizedURL - http://test.com/aJ%4a - user - <null> - + <null url> In-Title @@ -68436,158 +13440,8 @@ CFURLCreateWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AbsoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (133, 14) (132, 15) - ComponentHost - (35, 18) (34, 20) - ComponentNetLocation - (9, 47) (6, 50) - ComponentParameterString - (79, 15) (78, 17) - ComponentPassword - (20, 14) (19, 16) - ComponentPath - (56, 22) (56, 23) - ComponentPort - (54, 2) (53, 3) - ComponentQuery - (95, 37) (94, 39) - ComponentResourceSpecifier - (79, 68) (78, 69) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 10) (6, 14) - ComponentUserInfo - (9, 25) (6, 29) - DeletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhYFh0aC9uYWBYbWU= - - Fragment-Escaped - frag%60%58ment - Fragment-Unescaped - frag`Xment - HasDirectoryPath - - HostName - host`Xname.com - IsAbsolute - - LastPathComponent - na`Xme - NetLocation - us%60%58er:pass%60%58word@host%60%58name.com:80 - POSIXPath - /pa`Xth/na`Xme - ParameterString-Escaped - par%60%58ameter - ParameterString-Unescaped - par`Xameter - Password - pass`Xword - Path - /pa%60%58th/na%60%58me - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - qu%60%58ery=val%60%58ue&foo%60%58=bar - QueryString-Unescaped - qu`Xery=val`Xue&foo`X=bar - ResourceSpecifier - ;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Scheme - scheme - StrictPath - pa%60%58th/na%60%58me - URLBytes - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLData - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - UserName - us`Xer - WindowsPath - \pa`Xth\na`Xme - Out-NSResults - - absoluteString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - absoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - baseURLString - <null> - deletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - deletingLastPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - fragment - frag%60%58ment - host - host`Xname.com - isFileURL - NO - lastPathComponent - na`Xme - password - pass%60%58word - path - /pa`Xth/na`Xme - pathComponents - - / - pa`Xth - na`Xme - - pathExtension - - port - 80 - query - qu%60%58ery=val%60%58ue&foo%60%58=bar - relativePath - /pa`Xth/na`Xme - relativeString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - scheme - scheme - standardizedURL - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - user - us`Xer - + <null url> In-Title @@ -68596,149 +13450,8 @@ CFURLCreateWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 16) (15, 16) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/unescaped%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3VuZXNjYXBlZCBzcGFjZQ== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped space - NetLocation - test.com - POSIXPath - /unescaped space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /unescaped%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCUyMHNwYWNl - - URLString - http://test.com/unescaped%20space - UserName - <null> - WindowsPath - \unescaped space - Out-NSResults - - absoluteString - http://test.com/unescaped%20space - absoluteURLString - http://test.com/unescaped%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/unescaped%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped space - password - <null> - path - /unescaped space - pathComponents - - / - unescaped space - - pathExtension - - port - <null> - query - <null> - relativePath - /unescaped space - relativeString - http://test.com/unescaped%20space - scheme - http - standardizedURL - http://test.com/unescaped%20space - user - <null> - + <null url> In-Title @@ -68747,149 +13460,8 @@ CFURLCreateWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%7Cpipe - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 15) (15, 15) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/unescaped%7Cpipe - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3VuZXNjYXBlZHxwaXBl - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped|pipe - NetLocation - test.com - POSIXPath - /unescaped|pipe - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /unescaped%7Cpipe - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%7Cpipe - URLBytes - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZHxwaXBl - - URLData - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCU3Q3BpcGU= - - URLString - http://test.com/unescaped%7Cpipe - UserName - <null> - WindowsPath - \unescaped|pipe - Out-NSResults - - absoluteString - http://test.com/unescaped%7Cpipe - absoluteURLString - http://test.com/unescaped%7Cpipe - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/unescaped%7Cpipe - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped|pipe - password - <null> - path - /unescaped|pipe - pathComponents - - / - unescaped|pipe - - pathExtension - - port - <null> - query - <null> - relativePath - /unescaped|pipe - relativeString - http://test.com/unescaped%7Cpipe - scheme - http - standardizedURL - http://test.com/unescaped%7Cpipe - user - <null> - + <null url> In-Title @@ -68898,147 +13470,8 @@ CFURLCreateWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin%20adler@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (21, 13) (20, 14) - ComponentNetLocation - (7, 27) (4, 30) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (20, 0) - ComponentPath - (34, 0) (34, 0) - ComponentPort - (-1, 0) (34, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 13) (4, 17) - ComponentUserInfo - (7, 13) (4, 17) - DeletingLastPathComponent - http://darin%20adler@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin%20adler@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin%20adler@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLData - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLString - http://darin%20adler@www.apple.com - UserName - darin adler - WindowsPath - - Out-NSResults - - absoluteString - http://darin%20adler@www.apple.com - absoluteURLString - http://darin%20adler@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin%20adler@www.apple.com../ - deletingLastPathExtension - http://darin%20adler@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin%20adler@www.apple.com - scheme - http - standardizedURL - http://darin%20adler@www.apple.com - user - darin adler - + <null url> In-Title @@ -69047,147 +13480,8 @@ CFURLCreateWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin:clever%20password@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (44, 0) - ComponentHost - (31, 13) (30, 14) - ComponentNetLocation - (7, 37) (4, 40) - ComponentParameterString - (-1, 0) (44, 0) - ComponentPassword - (13, 17) (12, 19) - ComponentPath - (44, 0) (44, 0) - ComponentPort - (-1, 0) (44, 0) - ComponentQuery - (-1, 0) (44, 0) - ComponentResourceSpecifier - (-1, 0) (44, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 23) (4, 27) - DeletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:clever%20password@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin:clever%20password@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - clever password - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLString - http://darin:clever%20password@www.apple.com - UserName - darin - WindowsPath - - Out-NSResults - - absoluteString - http://darin:clever%20password@www.apple.com - absoluteURLString - http://darin:clever%20password@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - deletingLastPathExtension - http://darin:clever%20password@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - clever%20password - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin:clever%20password@www.apple.com - scheme - http - standardizedURL - http://darin:clever%20password@www.apple.com - user - darin - + <null url> In-Title @@ -69196,145 +13490,8 @@ CFURLCreateWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AbsoluteURLString - http://www.apple%20computer.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 24) (4, 27) - ComponentNetLocation - (7, 24) (4, 27) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (31, 0) (31, 0) - ComponentPort - (-1, 0) (31, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple%20computer.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple%20computer.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple computer.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple%20computer.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLData - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLString - http://www.apple%20computer.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple%20computer.com - absoluteURLString - http://www.apple%20computer.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple%20computer.com../ - deletingLastPathExtension - http://www.apple%20computer.com - fragment - <null> - host - www.apple computer.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple%20computer.com - scheme - http - standardizedURL - http://www.apple%20computer.com - user - <null> - + <null url> In-Title @@ -69343,149 +13500,8 @@ CFURLCreateWithBytes In-Url file:///%3F - Out-CFResults - - AbsoluteURLString - file:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %3F - URLBytes - - ZmlsZTovLy8lM0Y= - - URLData - - ZmlsZTovLy8lM0Y= - - URLString - file:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - file:///%3F - absoluteURLString - file:///%3F - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%3F - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - file:///%3F - scheme - file - standardizedURL - file:///%3F - user - <null> - + <null url> In-Title @@ -69494,149 +13510,8 @@ CFURLCreateWithBytes In-Url file:///%78 - Out-CFResults - - AbsoluteURLString - file:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %78 - URLBytes - - ZmlsZTovLy8lNzg= - - URLData - - ZmlsZTovLy8lNzg= - - URLString - file:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///%78 - absoluteURLString - file:///%78 - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%78 - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///%78 - scheme - file - standardizedURL - file:///%78 - user - <null> - + <null url> In-Title @@ -69645,148 +13520,8 @@ CFURLCreateWithBytes In-Url file:///? - Out-CFResults - - AbsoluteURLString - file:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8/ - - URLData - - ZmlsZTovLy8/ - - URLString - file:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:///? - absoluteURLString - file:///? - baseURLString - <null> - deletingLastPathComponent - file:///../? - deletingLastPathExtension - file:///? - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - file:///? - scheme - file - standardizedURL - file:///? - user - <null> - + <null url> In-Title @@ -69795,149 +13530,8 @@ CFURLCreateWithBytes In-Url file:///& - Out-CFResults - - AbsoluteURLString - file:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - & - URLBytes - - ZmlsZTovLy8m - - URLData - - ZmlsZTovLy8m - - URLString - file:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - file:///& - absoluteURLString - file:///& - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///& - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - file:///& - scheme - file - standardizedURL - file:///& - user - <null> - + <null url> In-Title @@ -69946,149 +13540,8 @@ CFURLCreateWithBytes In-Url file:///x - Out-CFResults - - AbsoluteURLString - file:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - x - URLBytes - - ZmlsZTovLy94 - - URLData - - ZmlsZTovLy94 - - URLString - file:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///x - absoluteURLString - file:///x - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///x - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///x - scheme - file - standardizedURL - file:///x - user - <null> - + <null url> In-Title @@ -70097,149 +13550,8 @@ CFURLCreateWithBytes In-Url http:///%3F - Out-CFResults - - AbsoluteURLString - http:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %3F - URLBytes - - aHR0cDovLy8lM0Y= - - URLData - - aHR0cDovLy8lM0Y= - - URLString - http:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - http:///%3F - absoluteURLString - http:///%3F - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - http:///%3F - scheme - http - standardizedURL - http:///%3F - user - <null> - + <null url> In-Title @@ -70248,149 +13560,8 @@ CFURLCreateWithBytes In-Url http:///%78 - Out-CFResults - - AbsoluteURLString - http:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %78 - URLBytes - - aHR0cDovLy8lNzg= - - URLData - - aHR0cDovLy8lNzg= - - URLString - http:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///%78 - absoluteURLString - http:///%78 - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///%78 - scheme - http - standardizedURL - http:///%78 - user - <null> - + <null url> In-Title @@ -70399,148 +13570,8 @@ CFURLCreateWithBytes In-Url http:///? - Out-CFResults - - AbsoluteURLString - http:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - http - StrictPath - - URLBytes - - aHR0cDovLy8/ - - URLData - - aHR0cDovLy8/ - - URLString - http:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:///? - absoluteURLString - http:///? - baseURLString - <null> - deletingLastPathComponent - http:///../? - deletingLastPathExtension - http:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - http:///? - scheme - http - standardizedURL - http:///? - user - <null> - + <null url> In-Title @@ -70549,149 +13580,8 @@ CFURLCreateWithBytes In-Url http:///& - Out-CFResults - - AbsoluteURLString - http:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - & - URLBytes - - aHR0cDovLy8m - - URLData - - aHR0cDovLy8m - - URLString - http:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - http:///& - absoluteURLString - http:///& - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - http:///& - scheme - http - standardizedURL - http:///& - user - <null> - + <null url> In-Title @@ -70700,149 +13590,8 @@ CFURLCreateWithBytes In-Url http:///x - Out-CFResults - - AbsoluteURLString - http:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - x - URLBytes - - aHR0cDovLy94 - - URLData - - aHR0cDovLy94 - - URLString - http:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///x - absoluteURLString - http:///x - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///x - scheme - http - standardizedURL - http:///x - user - <null> - + <null url> In-Title @@ -70851,149 +13600,8 @@ CFURLCreateWithBytes In-Url glorb:///%3F - Out-CFResults - - AbsoluteURLString - glorb:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %3F - URLBytes - - Z2xvcmI6Ly8vJTNG - - URLData - - Z2xvcmI6Ly8vJTNG - - URLString - glorb:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - glorb:///%3F - absoluteURLString - glorb:///%3F - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - glorb:///%3F - scheme - glorb - standardizedURL - glorb:///%3F - user - <null> - + <null url> In-Title @@ -71002,149 +13610,8 @@ CFURLCreateWithBytes In-Url glorb:///%78 - Out-CFResults - - AbsoluteURLString - glorb:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %78 - URLBytes - - Z2xvcmI6Ly8vJTc4 - - URLData - - Z2xvcmI6Ly8vJTc4 - - URLString - glorb:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///%78 - absoluteURLString - glorb:///%78 - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///%78 - scheme - glorb - standardizedURL - glorb:///%78 - user - <null> - + <null url> In-Title @@ -71153,148 +13620,8 @@ CFURLCreateWithBytes In-Url glorb:///? - Out-CFResults - - AbsoluteURLString - glorb:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 1) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (10, 0) (9, 1) - ComponentResourceSpecifier - (10, 0) (9, 1) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - glorb - StrictPath - - URLBytes - - Z2xvcmI6Ly8vPw== - - URLData - - Z2xvcmI6Ly8vPw== - - URLString - glorb:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - glorb:///? - absoluteURLString - glorb:///? - baseURLString - <null> - deletingLastPathComponent - glorb:///../? - deletingLastPathExtension - glorb:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - glorb:///? - scheme - glorb - standardizedURL - glorb:///? - user - <null> - + <null url> In-Title @@ -71303,149 +13630,8 @@ CFURLCreateWithBytes In-Url glorb:///& - Out-CFResults - - AbsoluteURLString - glorb:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - & - URLBytes - - Z2xvcmI6Ly8vJg== - - URLData - - Z2xvcmI6Ly8vJg== - - URLString - glorb:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - glorb:///& - absoluteURLString - glorb:///& - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - glorb:///& - scheme - glorb - standardizedURL - glorb:///& - user - <null> - + <null url> In-Title @@ -71454,149 +13640,8 @@ CFURLCreateWithBytes In-Url glorb:///x - Out-CFResults - - AbsoluteURLString - glorb:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - x - URLBytes - - Z2xvcmI6Ly8veA== - - URLData - - Z2xvcmI6Ly8veA== - - URLString - glorb:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///x - absoluteURLString - glorb:///x - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///x - scheme - glorb - standardizedURL - glorb:///x - user - <null> - + <null url> In-Title @@ -71605,142 +13650,8 @@ CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 20) (6, 21) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLString - mailto:mduerst@ifi.unizh.ch - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch - absoluteURLString - mailto:mduerst@ifi.unizh.ch - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch - user - <null> - + <null url> In-Title @@ -71749,144 +13660,8 @@ CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 36) (6, 37) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch?Subject=nothing - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - absoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch?Subject=nothing - user - <null> - + <null url> In-Title @@ -71895,144 +13670,8 @@ CFURLCreateWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AbsoluteURLString - news:comp.infosystems.www.servers.unix - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 33) (4, 34) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - comp.infosystems.www.servers.unix - Scheme - news - StrictPath - <null> - URLBytes - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLData - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLString - news:comp.infosystems.www.servers.unix - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - news:comp.infosystems.www.servers.unix - absoluteURLString - news:comp.infosystems.www.servers.unix - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - news:comp.infosystems.www.servers.unix - scheme - news - standardizedURL - news:comp.infosystems.www.servers.unix - user - <null> - + <null url> In-Title @@ -72041,144 +13680,8 @@ CFURLCreateWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AbsoluteURLString - uahsfcncvuhrtgvnahr - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 19) (0, 19) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - uahsfcncvuhrtgvnahr - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - uahsfcncvuhrtgvnahr - NetLocation - <null> - POSIXPath - uahsfcncvuhrtgvnahr - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - uahsfcncvuhrtgvnahr - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - uahsfcncvuhrtgvnahr - URLBytes - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLData - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLString - uahsfcncvuhrtgvnahr - UserName - <null> - WindowsPath - uahsfcncvuhrtgvnahr - Out-NSResults - - absoluteString - uahsfcncvuhrtgvnahr - absoluteURLString - uahsfcncvuhrtgvnahr - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - uahsfcncvuhrtgvnahr - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - uahsfcncvuhrtgvnahr - password - <null> - path - uahsfcncvuhrtgvnahr - pathComponents - - uahsfcncvuhrtgvnahr - - pathExtension - - port - <null> - query - <null> - relativePath - uahsfcncvuhrtgvnahr - relativeString - uahsfcncvuhrtgvnahr - scheme - <null> - standardizedURL - uahsfcncvuhrtgvnahr - user - <null> - + <null url> In-Title @@ -72187,145 +13690,8 @@ CFURLCreateWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AbsoluteURLString - http://10.1.1.1 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 0) (15, 0) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://10.1.1.1../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://10.1.1.1 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - 10.1.1.1 - IsAbsolute - - LastPathComponent - - NetLocation - 10.1.1.1 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovLzEwLjEuMS4x - - URLData - - aHR0cDovLzEwLjEuMS4x - - URLString - http://10.1.1.1 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://10.1.1.1 - absoluteURLString - http://10.1.1.1 - baseURLString - <null> - deletingLastPathComponent - http://10.1.1.1../ - deletingLastPathExtension - http://10.1.1.1 - fragment - <null> - host - 10.1.1.1 - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://10.1.1.1 - scheme - http - standardizedURL - http://10.1.1.1 - user - <null> - + <null url> In-Title @@ -72334,150 +13700,8 @@ CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (7, 26) (4, 29) - ComponentNetLocation - (7, 26) (4, 29) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (33, 1) (33, 1) - ComponentPort - (-1, 0) (33, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLString - http://[fe80::20a:27ff:feae:8b9e]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e]/ - user - <null> - + <null url> In-Title @@ -72486,150 +13710,8 @@ CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (7, 32) (4, 35) - ComponentNetLocation - (7, 32) (4, 35) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (39, 1) (39, 1) - ComponentPort - (-1, 0) (39, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e%en0 - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e%25en0] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e%en0 - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - user - <null> - + <null url> In-Title @@ -72638,161 +13720,8 @@ CFURLCreateWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AbsoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (175, 6) (174, 7) - ComponentHost - (7, 15) (4, 18) - ComponentNetLocation - (7, 15) (4, 18) - ComponentParameterString - (-1, 0) (53, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (22, 31) (22, 32) - ComponentPort - (-1, 0) (22, 0) - ComponentQuery - (54, 120) (53, 122) - ComponentResourceSpecifier - (54, 127) (53, 128) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FwcHMvZG9tYWlucGFyay9kb21haW5wYXJrLmNnaQ== - - Fragment-Escaped - FFFFFF - Fragment-Unescaped - FFFFFF - HasDirectoryPath - - HostName - apps5.oingo.com - IsAbsolute - - LastPathComponent - domainpark.cgi - NetLocation - apps5.oingo.com - POSIXPath - /apps/domainpark/domainpark.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /apps/domainpark/domainpark.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - QueryString-Unescaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - ResourceSpecifier - ?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Scheme - http - StrictPath - apps/domainpark/domainpark.cgi - URLBytes - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLData - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - UserName - <null> - WindowsPath - \apps\domainpark\domainpark.cgi - Out-NSResults - - absoluteString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - absoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - baseURLString - <null> - deletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - deletingLastPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - fragment - FFFFFF - host - apps5.oingo.com - isFileURL - NO - lastPathComponent - domainpark.cgi - password - <null> - path - /apps/domainpark/domainpark.cgi - pathComponents - - / - apps - domainpark - domainpark.cgi - - pathExtension - cgi - port - <null> - query - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - relativePath - /apps/domainpark/domainpark.cgi - relativeString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - scheme - http - standardizedURL - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - user - <null> - + <null url> In-Title @@ -72801,159 +13730,8 @@ CFURLCreateWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AbsoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (169, 0) - ComponentHost - (7, 18) (4, 21) - ComponentNetLocation - (7, 18) (4, 21) - ComponentParameterString - (32, 137) (31, 138) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (25, 6) (25, 7) - ComponentPort - (-1, 0) (25, 0) - ComponentQuery - (-1, 0) (169, 0) - ComponentResourceSpecifier - (32, 137) (31, 138) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NsaWNr - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ad.doubleclick.net - IsAbsolute - - LastPathComponent - click - NetLocation - ad.doubleclick.net - POSIXPath - /click - ParameterString-Escaped - h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - ParameterString-Unescaped - h=v2|2e88|0|0|*|o;4461766;0-0;0;7314133;255-0|0;1407955|1406690|1;;?http://meninblack2.station.sony.com/playgames.jsp - Password - <null> - Path - /click - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Scheme - http - StrictPath - click - URLBytes - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLData - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - UserName - <null> - WindowsPath - \click - Out-NSResults - - absoluteString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - absoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - baseURLString - <null> - deletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - deletingLastPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - fragment - <null> - host - ad.doubleclick.net - isFileURL - NO - lastPathComponent - click - password - <null> - path - /click - pathComponents - - / - click - - pathExtension - - port - <null> - query - <null> - relativePath - /click - relativeString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - scheme - http - standardizedURL - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - user - <null> - + <null url> In-Title @@ -72962,154 +13740,8 @@ CFURLCreateWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/../index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (37, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (37, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 22) (15, 22) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (37, 0) - ComponentResourceSpecifier - (-1, 0) (37, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/../index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi4vaW5kZXguaHRtbA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/../index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/../index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/../index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi4vaW5kZXgu - aHRtbA== - - URLString - http://host.com/foo/bar/../index.html - UserName - <null> - WindowsPath - \foo\bar\..\index.html - Out-NSResults - - absoluteString - http://host.com/foo/bar/../index.html - absoluteURLString - http://host.com/foo/bar/../index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/bar/../ - deletingLastPathExtension - http://host.com/foo/bar/../index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/bar/../index.html - pathComponents - - / - foo - bar - .. - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/bar/../index.html - relativeString - http://host.com/foo/bar/../index.html - scheme - http - standardizedURL - http://host.com/foo/index.html - user - <null> - + <null url> In-Title @@ -73118,154 +13750,8 @@ CFURLCreateWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/./index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (36, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (36, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 21) (15, 21) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (36, 0) - ComponentResourceSpecifier - (-1, 0) (36, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/./index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvLi9pbmRleC5odG1s - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/./index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/./index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/./index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvLi9pbmRleC5o - dG1s - - URLString - http://host.com/foo/bar/./index.html - UserName - <null> - WindowsPath - \foo\bar\.\index.html - Out-NSResults - - absoluteString - http://host.com/foo/bar/./index.html - absoluteURLString - http://host.com/foo/bar/./index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/bar/./ - deletingLastPathExtension - http://host.com/foo/bar/./index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/bar/./index.html - pathComponents - - / - foo - bar - . - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/bar/./index.html - relativeString - http://host.com/foo/bar/./index.html - scheme - http - standardizedURL - http://host.com/foo/bar/index.html - user - <null> - + <null url> In-Title @@ -73274,150 +13760,8 @@ CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http:/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http:/cgi-bin/?ft=0 - deletingLastPathExtension - http:/cgi-bin/Count?ft=0 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http:/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http:///cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Title @@ -73426,149 +13770,8 @@ CFURLCreateWithBytes In-Url file:///// - Out-CFResults - - AbsoluteURLString - file:///// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - // - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /// - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - // - URLBytes - - ZmlsZTovLy8vLw== - - URLData - - ZmlsZTovLy8vLw== - - URLString - file:///// - UserName - <null> - WindowsPath - \\ - Out-NSResults - - absoluteString - file:///// - absoluteURLString - file:///// - baseURLString - <null> - deletingLastPathComponent - file://///../ - deletingLastPathExtension - file:///// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - // - pathComponents - - / - / - - pathExtension - - port - <null> - query - <null> - relativePath - // - relativeString - file:///// - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -73577,149 +13780,8 @@ CFURLCreateWithBytes In-Url file:/Volumes - Out-CFResults - - AbsoluteURLString - file:/Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 8) (4, 9) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovVm9sdW1lcw== - - URLData - - ZmlsZTovVm9sdW1lcw== - - URLString - file:/Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:/Volumes - absoluteURLString - file:/Volumes - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:/Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -73728,145 +13790,8 @@ CFURLCreateWithBytes In-Url /Volumes - Out-CFResults - - AbsoluteURLString - /Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /Volumes - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - Volumes - URLBytes - - L1ZvbHVtZXM= - - URLData - - L1ZvbHVtZXM= - - URLString - /Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - /Volumes - absoluteURLString - /Volumes - baseURLString - <null> - deletingLastPathComponent - / - deletingLastPathExtension - /Volumes - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - /Volumes - scheme - <null> - standardizedURL - /Volumes - user - <null> - + <null url> In-Title @@ -73875,144 +13800,8 @@ CFURLCreateWithBytes In-Url . - Out-CFResults - - AbsoluteURLString - . - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - . - absoluteURLString - . - baseURLString - <null> - deletingLastPathComponent - ../ - deletingLastPathExtension - - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - . - password - <null> - path - . - pathComponents - - . - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - . - scheme - <null> - standardizedURL - - user - <null> - + <null url> In-Title @@ -74021,145 +13810,8 @@ CFURLCreateWithBytes In-Url ./a - Out-CFResults - - AbsoluteURLString - ./a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ./a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ./a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ./a - URLBytes - - Li9h - - URLData - - Li9h - - URLString - ./a - UserName - <null> - WindowsPath - .\a - Out-NSResults - - absoluteString - ./a - absoluteURLString - ./a - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - ./a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ./a - pathComponents - - . - a - - pathExtension - - port - <null> - query - <null> - relativePath - ./a - relativeString - ./a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -74168,145 +13820,8 @@ CFURLCreateWithBytes In-Url ../a - Out-CFResults - - AbsoluteURLString - ../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../a - URLBytes - - Li4vYQ== - - URLData - - Li4vYQ== - - URLString - ../a - UserName - <null> - WindowsPath - ..\a - Out-NSResults - - absoluteString - ../a - absoluteURLString - ../a - baseURLString - <null> - deletingLastPathComponent - ../ - deletingLastPathExtension - ../a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ../a - pathComponents - - .. - a - - pathExtension - - port - <null> - query - <null> - relativePath - ../a - relativeString - ../a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -74315,146 +13830,8 @@ CFURLCreateWithBytes In-Url ../../a - Out-CFResults - - AbsoluteURLString - ../../a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ../../a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - ../../a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - ../../a - URLBytes - - Li4vLi4vYQ== - - URLData - - Li4vLi4vYQ== - - URLString - ../../a - UserName - <null> - WindowsPath - ..\..\a - Out-NSResults - - absoluteString - ../../a - absoluteURLString - ../../a - baseURLString - <null> - deletingLastPathComponent - ../../ - deletingLastPathExtension - ../../a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - ../../a - pathComponents - - .. - .. - a - - pathExtension - - port - <null> - query - <null> - relativePath - ../../a - relativeString - ../../a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -74463,142 +13840,8 @@ CFURLCreateWithBytes In-Url file: - Out-CFResults - - AbsoluteURLString - file: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTo= - - URLData - - ZmlsZTo= - - URLString - file: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file: - absoluteURLString - file: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file: - scheme - file - standardizedURL - file: - user - <null> - + <null url> In-Title @@ -74607,144 +13850,8 @@ CFURLCreateWithBytes In-Url / - Out-CFResults - - AbsoluteURLString - / - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - / - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - - URLBytes - - Lw== - - URLData - - Lw== - - URLString - / - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - / - absoluteURLString - / - baseURLString - <null> - deletingLastPathComponent - /../ - deletingLastPathExtension - / - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - / - scheme - <null> - standardizedURL - / - user - <null> - + <null url> In-Title @@ -74753,142 +13860,8 @@ CFURLCreateWithBytes In-Url http: - Out-CFResults - - AbsoluteURLString - http: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDo= - - URLData - - aHR0cDo= - - URLString - http: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http: - absoluteURLString - http: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http: - scheme - http - standardizedURL - http: - user - <null> - + <null url> In-Base @@ -74899,149 +13872,8 @@ CFURLCreateWithBytes In-Url unescaped space - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%20space - BaseURLString - http://test.com/ - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 15) (0, 15) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://test.com/ - DeletingPathExtension - unescaped%20space - DeletingPathExtension-BaseURL - http://test.com/ - FileSystemRepresentation - - L3VuZXNjYXBlZCBzcGFjZQ== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped space - NetLocation - test.com - POSIXPath - unescaped space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - unescaped%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%20space - URLBytes - - dW5lc2NhcGVkIHNwYWNl - - URLData - - dW5lc2NhcGVkJTIwc3BhY2U= - - URLString - unescaped%20space - UserName - <null> - WindowsPath - unescaped space - Out-NSResults - - absoluteString - http://test.com/unescaped%20space - absoluteURLString - http://test.com/unescaped%20space - baseURLString - http://test.com/ - deletingLastPathComponent - ./ - deletingLastPathExtension - unescaped%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped space - password - <null> - path - /unescaped space - pathComponents - - / - unescaped space - - pathExtension - - port - <null> - query - <null> - relativePath - unescaped space - relativeString - unescaped%20space - scheme - http - standardizedURL - unescaped%20space - user - <null> - + <null url> In-Base @@ -75052,150 +13884,8 @@ CFURLCreateWithBytes In-Url #zoo - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (1, 3) (0, 4) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 3) (0, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - zoo - Fragment-Unescaped - zoo - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - #zoo - Scheme - http - StrictPath - <null> - URLBytes - - I3pvbw== - - URLData - - I3pvbw== - - URLString - #zoo - UserName - user - WindowsPath - <null> - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#zoo - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - zoo - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - - relativeString - #zoo - scheme - http - standardizedURL - #zoo - user - user - + <null url> In-Base @@ -75206,151 +13896,8 @@ CFURLCreateWithBytes In-Url joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c= - - URLData - - am9lL2Jsb3c= - - URLString - joe/blow - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/ - deletingLastPathExtension - joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - joe/blow - relativeString - joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -75361,151 +13908,8 @@ CFURLCreateWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (9, 8) (8, 9) - ComponentResourceSpecifier - (9, 8) (8, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/?john=doe - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow?john=doe - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - john=doe - QueryString-Unescaped - john=doe - ResourceSpecifier - ?john=doe - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3c/am9obj1kb2U= - - URLData - - am9lL2Jsb3c/am9obj1kb2U= - - URLString - joe/blow?john=doe - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/?john=doe - deletingLastPathExtension - joe/blow?john=doe - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - john=doe - relativePath - joe/blow - relativeString - joe/blow?john=doe - scheme - http - standardizedURL - joe/blow?john=doe - user - user - + <null url> In-Base @@ -75516,151 +13920,8 @@ CFURLCreateWithBytes In-Url ./joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ./joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ./joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ./joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./joe/blow - URLBytes - - Li9qb2UvYmxvdw== - - URLData - - Li9qb2UvYmxvdw== - - URLString - ./joe/blow - UserName - user - WindowsPath - .\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - ./joe/ - deletingLastPathExtension - ./joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - ./joe/blow - relativeString - ./joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -75671,150 +13932,8 @@ CFURLCreateWithBytes In-Url ../joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 11) (0, 11) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - ../joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - ../joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - ../joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../joe/blow - URLBytes - - Li4vam9lL2Jsb3c= - - URLData - - Li4vam9lL2Jsb3c= - - URLString - ../joe/blow - UserName - user - WindowsPath - ..\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - ../joe/ - deletingLastPathExtension - ../joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - ../joe/blow - relativeString - ../joe/blow - scheme - http - standardizedURL - joe/blow - user - user - + <null url> In-Base @@ -75825,150 +13944,8 @@ CFURLCreateWithBytes In-Url /joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /joe/ - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe/blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - L2pvZS9ibG93 - - URLData - - L2pvZS9ibG93 - - URLString - /joe/blow - UserName - user - WindowsPath - \joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - /joe/ - deletingLastPathExtension - /joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe/blow - relativeString - /joe/blow - scheme - http - standardizedURL - /joe/blow - user - user - + <null url> In-Base @@ -75979,151 +13956,8 @@ CFURLCreateWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (9, 5) (8, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (9, 5) (8, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - joe/#frag2 - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - joe/blow#frag2 - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - frag2 - Fragment-Unescaped - frag2 - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #frag2 - Scheme - http - StrictPath - joe/blow - URLBytes - - am9lL2Jsb3cjZnJhZzI= - - URLData - - am9lL2Jsb3cjZnJhZzI= - - URLString - joe/blow#frag2 - UserName - user - WindowsPath - joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - joe/#frag2 - deletingLastPathExtension - joe/blow#frag2 - fragment - frag2 - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - joe/blow - relativeString - joe/blow#frag2 - scheme - http - standardizedURL - joe/blow#frag2 - user - user - + <null url> In-Base @@ -76134,150 +13968,8 @@ CFURLCreateWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AbsoluteURLString - ftp://my.server.com/some/document - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (33, 0) - ComponentHost - (6, 13) (3, 16) - ComponentNetLocation - (6, 13) (3, 16) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (19, 14) (19, 14) - ComponentPort - (-1, 0) (19, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (-1, 0) (33, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://my.server.com/some/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://my.server.com/some/document - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvZG9jdW1lbnQ= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - my.server.com - IsAbsolute - - LastPathComponent - document - NetLocation - my.server.com - POSIXPath - /some/document - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/document - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - some/document - URLBytes - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLData - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLString - ftp://my.server.com/some/document - UserName - <null> - WindowsPath - \some\document - Out-NSResults - - absoluteString - ftp://my.server.com/some/document - absoluteURLString - ftp://my.server.com/some/document - baseURLString - <null> - deletingLastPathComponent - ftp://my.server.com/some/ - deletingLastPathExtension - ftp://my.server.com/some/document - fragment - <null> - host - my.server.com - isFileURL - NO - lastPathComponent - document - password - <null> - path - /some/document - pathComponents - - / - some - document - - pathExtension - - port - <null> - query - <null> - relativePath - /some/document - relativeString - ftp://my.server.com/some/document - scheme - ftp - standardizedURL - ftp://my.server.com/some/document - user - <null> - + <null url> In-Base @@ -76288,149 +13980,8 @@ CFURLCreateWithBytes In-Url /joe:blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe:blow - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 9) (0, 9) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension - /joe:blow - DeletingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - FileSystemRepresentation - - L2pvZTpibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - joe:blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe:blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe:blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe:blow - URLBytes - - L2pvZTpibG93 - - URLData - - L2pvZTpibG93 - - URLString - /joe:blow - UserName - user - WindowsPath - \joe:blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe:blow - absoluteURLString - http://user:pass@hostname.com:42/joe:blow - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - / - deletingLastPathExtension - /joe:blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - joe:blow - password - pass - path - /joe:blow - pathComponents - - / - joe:blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe:blow - relativeString - /joe:blow - scheme - http - standardizedURL - /joe:blow - user - user - + <null url> In-Base @@ -76441,142 +13992,8 @@ CFURLCreateWithBytes In-Url joe:blow - Out-CFResults - - AbsoluteURLString - joe:blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (4, 4) (3, 5) - ComponentScheme - (0, 3) (0, 4) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - blow - Scheme - joe - StrictPath - <null> - URLBytes - - am9lOmJsb3c= - - URLData - - am9lOmJsb3c= - - URLString - joe:blow - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - joe:blow - absoluteURLString - joe:blow - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - joe:blow - scheme - joe - standardizedURL - joe:blow - user - <null> - + <null url> In-Base @@ -76587,148 +14004,8 @@ CFURLCreateWithBytes In-Url - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (0, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (-1, 0) (0, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - - URLData - - - URLString - - UserName - user - WindowsPath - <null> - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - - relativeString - - scheme - http - standardizedURL - - user - user - + <null url> In-Base @@ -76739,150 +14016,8 @@ CFURLCreateWithBytes In-Url ??? - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param??? - BaseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 2) (0, 3) - ComponentResourceSpecifier - (1, 2) (0, 3) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - - NetLocation - user:pass@hostname.com:42 - POSIXPath - <null> - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - <null> - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - ?? - QueryString-Unescaped - ?? - ResourceSpecifier - ??? - Scheme - http - StrictPath - <null> - URLBytes - - Pz8/ - - URLData - - Pz8/ - - URLString - ??? - UserName - user - WindowsPath - <null> - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param??? - absoluteURLString - http://user:pass@hostname.com:42/some/path;param??? - baseURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - ?? - relativePath - - relativeString - ??? - scheme - http - standardizedURL - ??? - user - user - + <null url> In-Base @@ -76893,142 +14028,8 @@ CFURLCreateWithBytes In-Url g:h - Out-CFResults - - AbsoluteURLString - g:h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (0, 1) (0, 2) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - h - Scheme - g - StrictPath - <null> - URLBytes - - Zzpo - - URLData - - Zzpo - - URLString - g:h - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - g:h - absoluteURLString - g:h - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - g:h - scheme - g - standardizedURL - g:h - user - <null> - + <null url> In-Base @@ -77039,151 +14040,8 @@ CFURLCreateWithBytes In-Url g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - Zw== - - URLData - - Zw== - - URLString - g - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -77194,151 +14052,8 @@ CFURLCreateWithBytes In-Url ./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Li9n - - URLData - - Li9n - - URLString - ./g - UserName - <null> - WindowsPath - .\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - ./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./g - relativeString - ./g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -77349,151 +14064,8 @@ CFURLCreateWithBytes In-Url g/ - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/ - URLBytes - - Zy8= - - URLData - - Zy8= - - URLString - g/ - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g/ - scheme - http - standardizedURL - g/ - user - <null> - + <null url> In-Base @@ -77504,149 +14076,8 @@ CFURLCreateWithBytes In-Url /g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - L2c= - - URLData - - L2c= - - URLString - /g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - / - deletingLastPathExtension - /g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - /g - scheme - http - standardizedURL - /g - user - <null> - + <null url> In-Base @@ -77657,146 +14088,8 @@ CFURLCreateWithBytes In-Url //g - Out-CFResults - - AbsoluteURLString - http://g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (2, 1) (0, 3) - ComponentNetLocation - (2, 1) (0, 3) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (3, 0) (3, 0) - ComponentPort - (-1, 0) (3, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - //g../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - //g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - g - IsAbsolute - - LastPathComponent - - NetLocation - g - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - Ly9n - - URLData - - Ly9n - - URLString - //g - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://g - absoluteURLString - http://g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - //g../ - deletingLastPathExtension - //g - fragment - <null> - host - g - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - //g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -77807,151 +14100,8 @@ CFURLCreateWithBytes In-Url ?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (1, 1) (0, 2) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - <null> - URLBytes - - P3k= - - URLData - - P3k= - - URLString - ?y - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?y - absoluteURLString - http://a/b/c/d;p?y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - y - relativePath - - relativeString - ?y - scheme - http - standardizedURL - ?y - user - <null> - + <null url> In-Base @@ -77962,151 +14112,8 @@ CFURLCreateWithBytes In-Url g?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 2) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - g - URLBytes - - Zz95 - - URLData - - Zz95 - - URLString - g?y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y - absoluteURLString - http://a/b/c/g?y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y - deletingLastPathExtension - g?y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g?y - scheme - http - standardizedURL - g?y - user - <null> - + <null url> In-Base @@ -78117,151 +14124,8 @@ CFURLCreateWithBytes In-Url #s - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (1, 1) (0, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - #s - Scheme - http - StrictPath - <null> - URLBytes - - I3M= - - URLData - - I3M= - - URLString - #s - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?q#s - absoluteURLString - http://a/b/c/d;p?q#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - s - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - - relativeString - #s - scheme - http - standardizedURL - #s - user - <null> - + <null url> In-Base @@ -78272,151 +14136,8 @@ CFURLCreateWithBytes In-Url g#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 1) (1, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s - Scheme - http - StrictPath - g - URLBytes - - ZyNz - - URLData - - ZyNz - - URLString - g#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s - absoluteURLString - http://a/b/c/g#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s - deletingLastPathExtension - g#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s - scheme - http - standardizedURL - g#s - user - <null> - + <null url> In-Base @@ -78427,151 +14148,8 @@ CFURLCreateWithBytes In-Url g?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (4, 1) (3, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 1) (1, 3) - ComponentResourceSpecifier - (2, 3) (1, 4) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y#s - Scheme - http - StrictPath - g - URLBytes - - Zz95I3M= - - URLData - - Zz95I3M= - - URLString - g?y#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y#s - absoluteURLString - http://a/b/c/g?y#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y#s - deletingLastPathExtension - g?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g?y#s - scheme - http - standardizedURL - g?y#s - user - <null> - + <null url> In-Base @@ -78582,151 +14160,8 @@ CFURLCreateWithBytes In-Url ;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (1, 1) (0, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (1, 1) (0, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - <null> - URLBytes - - O3g= - - URLData - - O3g= - - URLString - ;x - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;x - absoluteURLString - http://a/b/c/d;x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - ;x - scheme - http - standardizedURL - ;x - user - <null> - + <null url> In-Base @@ -78737,151 +14172,8 @@ CFURLCreateWithBytes In-Url g;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 2) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - g - URLBytes - - Zzt4 - - URLData - - Zzt4 - - URLString - g;x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x - absoluteURLString - http://a/b/c/g;x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x - deletingLastPathExtension - g;x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x - scheme - http - standardizedURL - g;x - user - <null> - + <null url> In-Base @@ -78892,151 +14184,8 @@ CFURLCreateWithBytes In-Url g;x?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x?y#s - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (6, 1) (5, 2) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 1) (1, 3) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (4, 1) (3, 3) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x?y#s - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x?y#s - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ;x?y#s - Scheme - http - StrictPath - g - URLBytes - - Zzt4P3kjcw== - - URLData - - Zzt4P3kjcw== - - URLString - g;x?y#s - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x?y#s - absoluteURLString - http://a/b/c/g;x?y#s - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x?y#s - deletingLastPathExtension - g;x?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - g - relativeString - g;x?y#s - scheme - http - standardizedURL - g;x?y#s - user - <null> - + <null url> In-Base @@ -79047,149 +14196,8 @@ CFURLCreateWithBytes In-Url - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (0, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (0, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (-1, 0) (0, 0) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (0, 0) - ComponentResourceSpecifier - (-1, 0) (0, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - - NetLocation - a - POSIXPath - <null> - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - - URLData - - - URLString - - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http://a/b/c/d;p?q - absoluteURLString - http://a/b/c/d;p?q - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - - relativeString - - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -79200,150 +14208,8 @@ CFURLCreateWithBytes In-Url . - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - . - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -79354,150 +14220,8 @@ CFURLCreateWithBytes In-Url ./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - / - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./ - URLBytes - - Li8= - - URLData - - Li8= - - URLString - ./ - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - / - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - ./ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -79508,149 +14232,8 @@ CFURLCreateWithBytes In-Url .. - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .. - URLBytes - - Li4= - - URLData - - Li4= - - URLString - .. - UserName - <null> - WindowsPath - .. - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - . - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - .. - relativeString - .. - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -79661,149 +14244,8 @@ CFURLCreateWithBytes In-Url ../ - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - .. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../ - URLBytes - - Li4v - - URLData - - Li4v - - URLString - ../ - UserName - <null> - WindowsPath - .. - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - ./ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - .. - relativeString - ../ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -79814,150 +14256,8 @@ CFURLCreateWithBytes In-Url ../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Li4vZw== - - URLData - - Li4vZw== - - URLString - ../g - UserName - <null> - WindowsPath - ..\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../ - deletingLastPathExtension - ../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../g - relativeString - ../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -79968,148 +14268,8 @@ CFURLCreateWithBytes In-Url ../.. - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../.. - URLBytes - - Li4vLi4= - - URLData - - Li4vLi4= - - URLString - ../.. - UserName - <null> - WindowsPath - ..\.. - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - ../. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - ../.. - relativeString - ../.. - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -80120,148 +14280,8 @@ CFURLCreateWithBytes In-Url ../../ - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - .././ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - ../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../ - URLBytes - - Li4vLi4v - - URLData - - Li4vLi4v - - URLString - ../../ - UserName - <null> - WindowsPath - ..\.. - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - .././ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - ../.. - relativeString - ../../ - scheme - http - standardizedURL - - user - <null> - + <null url> In-Base @@ -80272,149 +14292,8 @@ CFURLCreateWithBytes In-Url ../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 7) (0, 7) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../g - URLBytes - - Li4vLi4vZw== - - URLData - - Li4vLi4vZw== - - URLString - ../../g - UserName - <null> - WindowsPath - ..\..\g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../ - deletingLastPathExtension - ../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../g - relativeString - ../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -80425,150 +14304,8 @@ CFURLCreateWithBytes In-Url ../../../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 10) (0, 10) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../g - URLBytes - - Li4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vZw== - - URLString - ../../../g - UserName - <null> - WindowsPath - ..\..\..\g - Out-NSResults - - absoluteString - http://a/../g - absoluteURLString - http://a/../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../ - deletingLastPathExtension - ../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../g - pathComponents - - / - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../../g - relativeString - ../../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -80579,151 +14316,8 @@ CFURLCreateWithBytes In-Url ../../../../g - Out-CFResults - - AbsoluteURLString - http://a/../../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 13) (0, 13) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../../../../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ../../../../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../../../g - URLBytes - - Li4vLi4vLi4vLi4vZw== - - URLData - - Li4vLi4vLi4vLi4vZw== - - URLString - ../../../../g - UserName - <null> - WindowsPath - ..\..\..\..\g - Out-NSResults - - absoluteString - http://a/../../g - absoluteURLString - http://a/../../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ../../../../ - deletingLastPathExtension - ../../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../../g - pathComponents - - / - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - ../../../../g - relativeString - ../../../../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -80734,150 +14328,8 @@ CFURLCreateWithBytes In-Url /./g - Out-CFResults - - AbsoluteURLString - http://a/./g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (4, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (4, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 4) (0, 4) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (4, 0) - ComponentResourceSpecifier - (-1, 0) (4, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /./g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4vZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g - URLBytes - - Ly4vZw== - - URLData - - Ly4vZw== - - URLString - /./g - UserName - <null> - WindowsPath - \.\g - Out-NSResults - - absoluteString - http://a/./g - absoluteURLString - http://a/./g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - /./ - deletingLastPathExtension - /./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /./g - pathComponents - - / - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /./g - relativeString - /./g - scheme - http - standardizedURL - /g - user - <null> - + <null url> In-Base @@ -80888,150 +14340,8 @@ CFURLCreateWithBytes In-Url /../g - Out-CFResults - - AbsoluteURLString - http://a/../g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - /../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - Ly4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../g - URLBytes - - Ly4uL2c= - - URLData - - Ly4uL2c= - - URLString - /../g - UserName - <null> - WindowsPath - \..\g - Out-NSResults - - absoluteString - http://a/../g - absoluteURLString - http://a/../g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - /../ - deletingLastPathExtension - /../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /../g - pathComponents - - / - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /../g - relativeString - /../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -81042,151 +14352,8 @@ CFURLCreateWithBytes In-Url g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g. - URLBytes - - Zy4= - - URLData - - Zy4= - - URLString - g. - UserName - <null> - WindowsPath - g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - g. - relativeString - g. - scheme - http - standardizedURL - g. - user - <null> - + <null url> In-Base @@ -81197,151 +14364,8 @@ CFURLCreateWithBytes In-Url .g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (2, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (2, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 2) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (2, 0) - ComponentResourceSpecifier - (-1, 0) (2, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - .g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - .g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - .g - URLBytes - - Lmc= - - URLData - - Lmc= - - URLString - .g - UserName - <null> - WindowsPath - .g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - .g - relativeString - .g - scheme - http - standardizedURL - .g - user - <null> - + <null url> In-Base @@ -81352,151 +14376,8 @@ CFURLCreateWithBytes In-Url g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g. - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g.. - URLBytes - - Zy4u - - URLData - - Zy4u - - URLString - g.. - UserName - <null> - WindowsPath - g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - g.. - relativeString - g.. - scheme - http - standardizedURL - g.. - user - <null> - + <null url> In-Base @@ -81507,151 +14388,8 @@ CFURLCreateWithBytes In-Url ..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (3, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (3, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 3) (0, 3) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (3, 0) - ComponentResourceSpecifier - (-1, 0) (3, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - . - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - ..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..g - URLBytes - - Li5n - - URLData - - Li5n - - URLString - ..g - UserName - <null> - WindowsPath - ..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./ - deletingLastPathExtension - . - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - ..g - relativeString - ..g - scheme - http - standardizedURL - ..g - user - <null> - + <null url> In-Base @@ -81662,150 +14400,8 @@ CFURLCreateWithBytes In-Url ./../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./../g - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - ./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./../g - URLBytes - - Li8uLi9n - - URLData - - Li8uLi9n - - URLString - ./../g - UserName - <null> - WindowsPath - .\..\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./../ - deletingLastPathExtension - ./../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./../g - relativeString - ./../g - scheme - http - standardizedURL - g - user - <null> - + <null url> In-Base @@ -81816,151 +14412,8 @@ CFURLCreateWithBytes In-Url ./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - ./g/ - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - ./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ./g/. - URLBytes - - Li9nLy4= - - URLData - - Li9nLy4= - - URLString - ./g/. - UserName - <null> - WindowsPath - .\g\. - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./g/../ - deletingLastPathExtension - ./g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - ./g/. - relativeString - ./g/. - scheme - http - standardizedURL - g/ - user - <null> - + <null url> In-Base @@ -81971,152 +14424,8 @@ CFURLCreateWithBytes In-Url g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (5, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (5, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 5) (0, 5) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (5, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/./ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/./h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9nL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/./h - URLBytes - - Zy8uL2g= - - URLData - - Zy8uL2g= - - URLString - g/./h - UserName - <null> - WindowsPath - g\.\h - Out-NSResults - - absoluteString - http://a/b/c/g/h - absoluteURLString - http://a/b/c/g/h - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - g/./ - deletingLastPathExtension - g/./h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/h - pathComponents - - / - b - c - g - h - - pathExtension - - port - <null> - query - <null> - relativePath - g/./h - relativeString - g/./h - scheme - http - standardizedURL - g/h - user - <null> - + <null url> In-Base @@ -82127,151 +14436,8 @@ CFURLCreateWithBytes In-Url g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/h - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 6) (0, 6) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - g/../ - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g/../h - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9o - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g/../h - URLBytes - - Zy8uLi9o - - URLData - - Zy8uLi9o - - URLString - g/../h - UserName - <null> - WindowsPath - g\..\h - Out-NSResults - - absoluteString - http://a/b/c/h - absoluteURLString - http://a/b/c/h - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - g/../ - deletingLastPathExtension - g/../h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/h - pathComponents - - / - b - c - h - - pathExtension - - port - <null> - query - <null> - relativePath - g/../h - relativeString - g/../h - scheme - http - standardizedURL - h - user - <null> - + <null url> In-Base @@ -82282,151 +14448,8 @@ CFURLCreateWithBytes In-Url g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 7) (1, 8) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (2, 7) (1, 8) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/./y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/./y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi95 - - URLData - - Zzt4PTEvLi95 - - URLString - g;x=1/./y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x=1/./y - deletingLastPathExtension - g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x=1/./y - scheme - http - standardizedURL - g;x=1/./y - user - <null> - + <null url> In-Base @@ -82437,151 +14460,8 @@ CFURLCreateWithBytes In-Url g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (2, 8) (1, 9) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (2, 8) (1, 9) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./;x=1/../y - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g;x=1/../y - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - g - URLBytes - - Zzt4PTEvLi4veQ== - - URLData - - Zzt4PTEvLi4veQ== - - URLString - g;x=1/../y - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./;x=1/../y - deletingLastPathExtension - g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g;x=1/../y - scheme - http - standardizedURL - g;x=1/../y - user - <null> - + <null url> In-Base @@ -82592,151 +14472,8 @@ CFURLCreateWithBytes In-Url g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 5) (1, 6) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4veA== - - URLData - - Zz95Ly4veA== - - URLString - g?y/./x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y/./x - deletingLastPathExtension - g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - g - relativeString - g?y/./x - scheme - http - standardizedURL - g?y/./x - user - <null> - + <null url> In-Base @@ -82747,151 +14484,8 @@ CFURLCreateWithBytes In-Url g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (2, 6) (1, 7) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./?y/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g?y/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - g - URLBytes - - Zz95Ly4uL3g= - - URLData - - Zz95Ly4uL3g= - - URLString - g?y/../x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./?y/../x - deletingLastPathExtension - g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - g - relativeString - g?y/../x - scheme - http - standardizedURL - g?y/../x - user - <null> - + <null url> In-Base @@ -82902,151 +14496,8 @@ CFURLCreateWithBytes In-Url g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 5) (1, 6) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 5) (1, 6) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/./x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/./x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4veA== - - URLData - - ZyNzLy4veA== - - URLString - g#s/./x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s/./x - deletingLastPathExtension - g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s/./x - scheme - http - standardizedURL - g#s/./x - user - <null> - + <null url> In-Base @@ -83057,151 +14508,8 @@ CFURLCreateWithBytes In-Url g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - http://a/b/c/d;p?q - CanBeDecomposed - - ComponentFragment - (2, 6) (1, 7) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 2) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (2, 6) (1, 7) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./#s/../x - DeletingLastPathComponent-BaseURL - http://a/b/c/d;p?q - DeletingPathExtension - g#s/../x - DeletingPathExtension-BaseURL - http://a/b/c/d;p?q - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - g - URLBytes - - ZyNzLy4uL3g= - - URLData - - ZyNzLy4uL3g= - - URLString - g#s/../x - UserName - <null> - WindowsPath - g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - http://a/b/c/d;p?q - deletingLastPathComponent - ./#s/../x - deletingLastPathExtension - g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - g - relativeString - g#s/../x - scheme - http - standardizedURL - g#s/../x - user - <null> - + <null url> In-Base @@ -83212,142 +14520,8 @@ CFURLCreateWithBytes In-Url http:g - Out-CFResults - - AbsoluteURLString - http:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDpn - - URLData - - aHR0cDpn - - URLString - http:g - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http:g - absoluteURLString - http:g - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http:g - scheme - http - standardizedURL - http:g - user - <null> - + <null url> In-Base @@ -83358,142 +14532,8 @@ CFURLCreateWithBytes In-Url file:g - Out-CFResults - - AbsoluteURLString - file:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTpn - - URLData - - ZmlsZTpn - - URLString - file:g - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:g - absoluteURLString - file:g - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:g - scheme - file - standardizedURL - file:g - user - <null> - + <null url> In-Base @@ -83504,149 +14544,8 @@ CFURLCreateWithBytes In-Url http:/g - Out-CFResults - - AbsoluteURLString - http:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovZw== - - URLData - - aHR0cDovZw== - - URLString - http:/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http:/g - absoluteURLString - http:/g - baseURLString - <null> - deletingLastPathComponent - http:/ - deletingLastPathExtension - http:/g - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http:/g - scheme - http - standardizedURL - http:///g - user - <null> - + <null url> In-Base @@ -83657,149 +14556,8 @@ CFURLCreateWithBytes In-Url file:/g - Out-CFResults - - AbsoluteURLString - file:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - g - URLBytes - - ZmlsZTovZw== - - URLData - - ZmlsZTovZw== - - URLString - file:/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - file:/g - absoluteURLString - file:/g - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/g - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - file:/g - scheme - file - standardizedURL - file:///g - user - <null> - + <null url> In-Base @@ -83810,150 +14568,8 @@ CFURLCreateWithBytes In-Url /Images/foo.gif - Out-CFResults - - AbsoluteURLString - http://macosx.apple.com/Images/foo.gif - BaseURLString - http://macosx.apple.com - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 15) (0, 15) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /Images/ - DeletingLastPathComponent-BaseURL - http://macosx.apple.com - DeletingPathExtension - /Images/foo - DeletingPathExtension-BaseURL - http://macosx.apple.com - FileSystemRepresentation - - L0ltYWdlcy9mb28uZ2lm - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - macosx.apple.com - IsAbsolute - - LastPathComponent - foo.gif - NetLocation - macosx.apple.com - POSIXPath - /Images/foo.gif - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Images/foo.gif - PathExtension - gif - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - Images/foo.gif - URLBytes - - L0ltYWdlcy9mb28uZ2lm - - URLData - - L0ltYWdlcy9mb28uZ2lm - - URLString - /Images/foo.gif - UserName - <null> - WindowsPath - \Images\foo.gif - Out-NSResults - - absoluteString - http://macosx.apple.com/Images/foo.gif - absoluteURLString - http://macosx.apple.com/Images/foo.gif - baseURLString - http://macosx.apple.com - deletingLastPathComponent - /Images/ - deletingLastPathExtension - /Images/foo - fragment - <null> - host - macosx.apple.com - isFileURL - NO - lastPathComponent - foo.gif - password - <null> - path - /Images/foo.gif - pathComponents - - / - Images - foo.gif - - pathExtension - gif - port - <null> - query - <null> - relativePath - /Images/foo.gif - relativeString - /Images/foo.gif - scheme - http - standardizedURL - /Images/foo.gif - user - <null> - + <null url> In-Base @@ -83964,151 +14580,8 @@ CFURLCreateWithBytes In-Url ../artist/720703 - Out-CFResults - - AbsoluteURLString - http://www.ticketmaster.com/../artist/720703 - BaseURLString - http://www.ticketmaster.com/search?keyword=tool - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 16) (0, 16) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../artist/ - DeletingLastPathComponent-BaseURL - http://www.ticketmaster.com/search?keyword=tool - DeletingPathExtension - ../artist/720703 - DeletingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - FileSystemRepresentation - - Ly4uL2FydGlzdC83MjA3MDM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.ticketmaster.com - IsAbsolute - - LastPathComponent - 720703 - NetLocation - www.ticketmaster.com - POSIXPath - ../artist/720703 - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - ../artist/720703 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../artist/720703 - URLBytes - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLData - - Li4vYXJ0aXN0LzcyMDcwMw== - - URLString - ../artist/720703 - UserName - <null> - WindowsPath - ..\artist\720703 - Out-NSResults - - absoluteString - http://www.ticketmaster.com/../artist/720703 - absoluteURLString - http://www.ticketmaster.com/../artist/720703 - baseURLString - http://www.ticketmaster.com/search?keyword=tool - deletingLastPathComponent - ../artist/ - deletingLastPathExtension - ../artist/720703 - fragment - <null> - host - www.ticketmaster.com - isFileURL - NO - lastPathComponent - 720703 - password - <null> - path - /../artist/720703 - pathComponents - - / - .. - artist - 720703 - - pathExtension - - port - <null> - query - <null> - relativePath - ../artist/720703 - relativeString - ../artist/720703 - scheme - http - standardizedURL - artist/720703 - user - <null> - + <null url> In-Base @@ -84119,157 +14592,8 @@ CFURLCreateWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AbsoluteURLString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - BaseURLString - http://www.cnn.com - CanBeDecomposed - - ComponentFragment - (-1, 0) (64, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (64, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 64) (0, 64) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (64, 0) - ComponentResourceSpecifier - (-1, 0) (64, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - %20/interactive/world/0207/gallery.pope.tour/ - DeletingLastPathComponent-BaseURL - http://www.cnn.com - DeletingPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude - DeletingPathExtension-BaseURL - http://www.cnn.com - FileSystemRepresentation - - IC9pbnRlcmFjdGl2ZS93b3JsZC8wMjA3L2dhbGxlcnku - cG9wZS50b3VyL2ZyYW1lc2V0LmV4Y2x1ZGUuaHRtbA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.cnn.com - IsAbsolute - - LastPathComponent - frameset.exclude.html - NetLocation - www.cnn.com - POSIXPath - /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - URLBytes - - IC9pbnRlcmFjdGl2ZS93b3JsZC8wMjA3L2dhbGxlcnku - cG9wZS50b3VyL2ZyYW1lc2V0LmV4Y2x1ZGUuaHRtbA== - - URLData - - JTIwL2ludGVyYWN0aXZlL3dvcmxkLzAyMDcvZ2FsbGVy - eS5wb3BlLnRvdXIvZnJhbWVzZXQuZXhjbHVkZS5odG1s - - URLString - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - UserName - <null> - WindowsPath - \interactive\world\0207\gallery.pope.tour\frameset.exclude.html - Out-NSResults - - absoluteString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - absoluteURLString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - baseURLString - http://www.cnn.com - deletingLastPathComponent - %20/interactive/world/0207/gallery.pope.tour/ - deletingLastPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude - fragment - <null> - host - www.cnn.com - isFileURL - NO - lastPathComponent - frameset.exclude.html - password - <null> - path - / /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - pathComponents - - / - - interactive - world - 0207 - gallery.pope.tour - frameset.exclude.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - relativeString - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - scheme - http - standardizedURL - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - user - <null> - + <null url> In-Base @@ -84280,150 +14604,8 @@ CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http:/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http:/cgi-bin/?ft=0 - deletingLastPathExtension - http:/cgi-bin/Count?ft=0 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http:/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http:///cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Base @@ -84434,220 +14616,8 @@ CFURLCreateWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AbsoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - BaseURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - CanBeDecomposed - - ComponentFragment - (-1, 0) (1114, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 34) (0, 35) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (35, 1079) (34, 1080) - ComponentResourceSpecifier - (35, 1079) (34, 1080) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingLastPathComponent-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - DeletingPathExtension - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - FileSystemRepresentation - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::7e6d:62ff:fe75:9e88%en0 - IsAbsolute - - LastPathComponent - items - NetLocation - [fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - POSIXPath - databases/76/containers/2891/items - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - databases/76/containers/2891/items - PathExtension - <null> - PortNumber - 3689 - QueryString-Escaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - QueryString-Unescaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - ResourceSpecifier - ?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Scheme - http - StrictPath - databases/76/containers/2891/items - URLBytes - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLData - - ZGF0YWJhc2VzLzc2L2NvbnRhaW5lcnMvMjg5MS9pdGVt - cz9zb3J0PWRhdGVhZGRlZCZpbnZlcnQtc29ydC1vcmRl - cj0xJnNlc3Npb24taWQ9MTg2NjA0ODM1MSZxdWVyeT0o - KCdjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVkLW1lZGlh - LWtpbmQ6MScsJ2NvbS5hcHBsZS5pdHVuZXMuZXh0ZW5k - ZWQtbWVkaWEta2luZDozMicpKydkYWFwLnNvbmdkYXRh - a2luZDowJykmbWV0YT1kbWFwLnBlcnNpc3RlbnRpZCxk - bWFwLml0ZW1uYW1lLGRhYXAuc29uZ2FsYnVtLGNvbS5h - cHBsZS5pdHVuZXMuZXh0ZW5kZWQtbWVkaWEta2luZCxk - YWFwLnNvbmdhbGJ1bWlkLGRhYXAuc29uZ2Zvcm1hdCxj - b20uYXBwbGUuaXR1bmVzLmdhcGxlc3MtaGV1cixjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRlbCxjb20u - YXBwbGUuaXR1bmVzLmdhcGxlc3MtZW5jLWRyLGNvbS5h - cHBsZS5pdHVuZXMuZ2FwbGVzcy1kdXIsY29tLmFwcGxl - Lml0dW5lcy5nYXBsZXNzLXJlc3ksY29tLmFwcGxlLml0 - dW5lcy5ub3JtLXZvbHVtZSxkYWFwLnNvbmdib29rbWFy - ayxkYWFwLnNvbmdoYXNiZWVucGxheWVkLGRhYXAuc29u - Z3VzZXJwbGF5Y291bnQsZGFhcC5zb25ndGltZSxjb20u - YXBwbGUuaXR1bmVzLmlzLWhkLXZpZGVvLGRhYXAuc29u - Z2NvbnRlbnRyYXRpbmcsY29tLmFwcGxlLml0dW5lcy5j - b250ZW50LXJhdGluZyxkYWFwLnNvbmdjb250ZW50ZGVz - Y3JpcHRpb24sZGFhcC5zb25nbG9uZ2NvbnRlbnRkZXNj - cmlwdGlvbixjb20uYXBwbGUuaXR1bmVzLm1vdmllLWlu - Zm8teG1sLGRhYXAuc29uZ3N0YXJ0dGltZSxkYWFwLnNv - bmdzdG9wdGltZSxjb20uYXBwbGUuaXR1bmVzLmRybS1r - ZXkxLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVudGFsLXN0 - YXJ0LGNvbS5hcHBsZS5pdHVuZXMuZHJtLXVzZXItaWQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtZHVyYXRpb24s - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItc3RhcnQs - Y29tLmFwcGxlLml0dW5lcy5yZW50YWwtcGItZHVyYXRp - b24sZGFhcC5zb25nZGF0ZWFkZGVkLGNvbS5hcHBsZS5p - dHVuZXMuaXRtcy1zb25naWQsZGFhcC5zb25nZGlzYWJs - ZWQsZG1hcC5pdGVtaWQsY29tLmFwcGxlLml0dW5lcy5h - cnR3b3JrY2hlY2tzdW0maW5kZXg9MC05OQ== - - URLString - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - UserName - <null> - WindowsPath - databases\76\containers\2891\items - Out-NSResults - - absoluteString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - absoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - baseURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - deletingLastPathComponent - databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - deletingLastPathExtension - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - fragment - <null> - host - fe80::7e6d:62ff:fe75:9e88%en0 - isFileURL - NO - lastPathComponent - items - password - <null> - path - /databases/76/containers/2891/items - pathComponents - - / - databases - 76 - containers - 2891 - items - - pathExtension - - port - 3689 - query - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - relativePath - databases/76/containers/2891/items - relativeString - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - scheme - http - standardizedURL - databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - user - <null> - + <null url> In-Title @@ -84656,152 +14626,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults - - absoluteString - http://a/b/c/./g - absoluteURLString - http://a/b/c/./g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./ - deletingLastPathExtension - http://a/b/c/./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./g - pathComponents - - / - b - c - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g - relativeString - http://a/b/c/./g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -84810,151 +14636,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/. - URLBytes - - aHR0cDovL2EvYi9jLy4= - - URLData - - aHR0cDovL2EvYi9jLy4= - - URLString - http://a/b/c/. - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults - - absoluteString - http://a/b/c/. - absoluteURLString - http://a/b/c/. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/. - pathComponents - - / - b - c - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/. - relativeString - http://a/b/c/. - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -84963,151 +14646,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/./ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8u - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./ - URLBytes - - aHR0cDovL2EvYi9jLy4v - - URLData - - aHR0cDovL2EvYi9jLy4v - - URLString - http://a/b/c/./ - UserName - <null> - WindowsPath - \b\c\. - Out-NSResults - - absoluteString - http://a/b/c/./ - absoluteURLString - http://a/b/c/./ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c// - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/. - pathComponents - - / - b - c - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/. - relativeString - http://a/b/c/./ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -85116,151 +14656,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.. - URLBytes - - aHR0cDovL2EvYi9jLy4u - - URLData - - aHR0cDovL2EvYi9jLy4u - - URLString - http://a/b/c/.. - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults - - absoluteString - http://a/b/c/.. - absoluteURLString - http://a/b/c/.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/.. - pathComponents - - / - b - c - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.. - relativeString - http://a/b/c/.. - scheme - http - standardizedURL - http://a/b - user - <null> - + <null url> In-Title @@ -85269,151 +14666,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLw== - - URLString - http://a/b/c/../ - UserName - <null> - WindowsPath - \b\c\.. - Out-NSResults - - absoluteString - http://a/b/c/../ - absoluteURLString - http://a/b/c/../ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/./ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/.. - pathComponents - - / - b - c - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.. - relativeString - http://a/b/c/../ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Title @@ -85422,152 +14676,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults - - absoluteString - http://a/b/c/../g - absoluteURLString - http://a/b/c/../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../g - pathComponents - - / - b - c - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../g - relativeString - http://a/b/c/../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -85576,152 +14686,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/../.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../.. - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4u - - URLData - - aHR0cDovL2EvYi9jLy4uLy4u - - URLString - http://a/b/c/../.. - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults - - absoluteString - http://a/b/c/../.. - absoluteURLString - http://a/b/c/../.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/../. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/../.. - pathComponents - - / - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../.. - relativeString - http://a/b/c/../.. - scheme - http - standardizedURL - http://a - user - <null> - + <null url> In-Title @@ -85730,152 +14696,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/.././ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .. - NetLocation - a - POSIXPath - /b/c/../.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../ - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../ - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLw== - - URLString - http://a/b/c/../../ - UserName - <null> - WindowsPath - \b\c\..\.. - Out-NSResults - - absoluteString - http://a/b/c/../../ - absoluteURLString - http://a/b/c/../../ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/.././ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .. - password - <null> - path - /b/c/../.. - pathComponents - - / - b - c - .. - .. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../.. - relativeString - http://a/b/c/../../ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Title @@ -85884,153 +14706,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 12) (8, 12) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uL2c= - - URLString - http://a/b/c/../../g - UserName - <null> - WindowsPath - \b\c\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../g - absoluteURLString - http://a/b/c/../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../ - deletingLastPathExtension - http://a/b/c/../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../g - pathComponents - - / - b - c - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../g - relativeString - http://a/b/c/../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -86039,154 +14716,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 15) (8, 15) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../../g - absoluteURLString - http://a/b/c/../../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../ - deletingLastPathExtension - http://a/b/c/../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../../g - pathComponents - - / - b - c - .. - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../../g - relativeString - http://a/b/c/../../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -86195,155 +14726,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../../../../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 18) (8, 18) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../../../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../../../../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi8uLi8uLi8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../../../../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../../../../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../../../../g - URLBytes - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uLy4uLy4uLy4uL2c= - - URLString - http://a/b/c/../../../../g - UserName - <null> - WindowsPath - \b\c\..\..\..\..\g - Out-NSResults - - absoluteString - http://a/b/c/../../../../g - absoluteURLString - http://a/b/c/../../../../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../../../../ - deletingLastPathExtension - http://a/b/c/../../../../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../../../../g - pathComponents - - / - b - c - .. - .. - .. - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../../../../g - relativeString - http://a/b/c/../../../../g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -86352,152 +14736,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g - URLBytes - - aHR0cDovL2EvYi9jLy4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vZw== - - URLString - http://a/b/c/./g - UserName - <null> - WindowsPath - \b\c\.\g - Out-NSResults - - absoluteString - http://a/b/c/./g - absoluteURLString - http://a/b/c/./g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./ - deletingLastPathExtension - http://a/b/c/./g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./g - pathComponents - - / - b - c - . - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g - relativeString - http://a/b/c/./g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -86506,152 +14746,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 9) (8, 9) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLi9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/../g - URLBytes - - aHR0cDovL2EvYi9jLy4uL2c= - - URLData - - aHR0cDovL2EvYi9jLy4uL2c= - - URLString - http://a/b/c/../g - UserName - <null> - WindowsPath - \b\c\..\g - Out-NSResults - - absoluteString - http://a/b/c/../g - absoluteURLString - http://a/b/c/../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/../ - deletingLastPathExtension - http://a/b/c/../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/../g - pathComponents - - / - b - c - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/../g - relativeString - http://a/b/c/../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -86660,151 +14756,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - /b/c/g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g. - URLBytes - - aHR0cDovL2EvYi9jL2cu - - URLData - - aHR0cDovL2EvYi9jL2cu - - URLString - http://a/b/c/g. - UserName - <null> - WindowsPath - \b\c\g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g. - relativeString - http://a/b/c/g. - scheme - http - standardizedURL - http://a/b/c/g. - user - <null> - + <null url> In-Title @@ -86813,151 +14766,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - /b/c/.g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.g - URLBytes - - aHR0cDovL2EvYi9jLy5n - - URLData - - aHR0cDovL2EvYi9jLy5n - - URLString - http://a/b/c/.g - UserName - <null> - WindowsPath - \b\c\.g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.g - relativeString - http://a/b/c/.g - scheme - http - standardizedURL - http://a/b/c/.g - user - <null> - + <null url> In-Title @@ -86966,151 +14776,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - /b/c/g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g.. - URLBytes - - aHR0cDovL2EvYi9jL2cuLg== - - URLData - - aHR0cDovL2EvYi9jL2cuLg== - - URLString - http://a/b/c/g.. - UserName - <null> - WindowsPath - \b\c\g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g.. - relativeString - http://a/b/c/g.. - scheme - http - standardizedURL - http://a/b/c/g.. - user - <null> - + <null url> In-Title @@ -87119,151 +14786,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - /b/c/..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/..g - URLBytes - - aHR0cDovL2EvYi9jLy4uZw== - - URLData - - aHR0cDovL2EvYi9jLy4uZw== - - URLString - http://a/b/c/..g - UserName - <null> - WindowsPath - \b\c\..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - /b/c/..g - relativeString - http://a/b/c/..g - scheme - http - standardizedURL - http://a/b/c/..g - user - <null> - + <null url> In-Title @@ -87272,153 +14796,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AbsoluteURLString - http://a/b/c/./../g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./../g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLy4uL2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/./../g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./../g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./../g - URLBytes - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLData - - aHR0cDovL2EvYi9jLy4vLi4vZw== - - URLString - http://a/b/c/./../g - UserName - <null> - WindowsPath - \b\c\.\..\g - Out-NSResults - - absoluteString - http://a/b/c/./../g - absoluteURLString - http://a/b/c/./../g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./../ - deletingLastPathExtension - http://a/b/c/./../g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/./../g - pathComponents - - / - b - c - . - .. - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./../g - relativeString - http://a/b/c/./../g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -87427,153 +14806,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/./g/. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/./g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/./g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uL2cvLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - . - NetLocation - a - POSIXPath - /b/c/./g/. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/./g/. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/./g/. - URLBytes - - aHR0cDovL2EvYi9jLy4vZy8u - - URLData - - aHR0cDovL2EvYi9jLy4vZy8u - - URLString - http://a/b/c/./g/. - UserName - <null> - WindowsPath - \b\c\.\g\. - Out-NSResults - - absoluteString - http://a/b/c/./g/. - absoluteURLString - http://a/b/c/./g/. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/./g/../ - deletingLastPathExtension - http://a/b/c/./g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - . - password - <null> - path - /b/c/./g/. - pathComponents - - / - b - c - . - g - . - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/./g/. - relativeString - http://a/b/c/./g/. - scheme - http - standardizedURL - http://a/b/c/g/ - user - <null> - + <null url> In-Title @@ -87582,153 +14816,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/./h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/./h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4vaA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/./h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/./h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/./h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi9o - - URLData - - aHR0cDovL2EvYi9jL2cvLi9o - - URLString - http://a/b/c/g/./h - UserName - <null> - WindowsPath - \b\c\g\.\h - Out-NSResults - - absoluteString - http://a/b/c/g/./h - absoluteURLString - http://a/b/c/g/./h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/./ - deletingLastPathExtension - http://a/b/c/g/./h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/./h - pathComponents - - / - b - c - g - . - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/./h - relativeString - http://a/b/c/g/./h - scheme - http - standardizedURL - http://a/b/c/g/h - user - <null> - + <null url> In-Title @@ -87737,153 +14826,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/../h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 11) (8, 11) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/../h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLy4uL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/../h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/../h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/../h - URLBytes - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLData - - aHR0cDovL2EvYi9jL2cvLi4vaA== - - URLString - http://a/b/c/g/../h - UserName - <null> - WindowsPath - \b\c\g\..\h - Out-NSResults - - absoluteString - http://a/b/c/g/../h - absoluteURLString - http://a/b/c/g/../h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/../ - deletingLastPathExtension - http://a/b/c/g/../h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/../h - pathComponents - - / - b - c - g - .. - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/../h - relativeString - http://a/b/c/g/../h - scheme - http - standardizedURL - http://a/b/c/h - user - <null> - + <null url> In-Title @@ -87892,151 +14836,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (22, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 7) (14, 8) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (22, 0) - ComponentResourceSpecifier - (15, 7) (14, 8) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/./y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/./y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLString - http://a/b/c/g;x=1/./y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/./y - deletingLastPathExtension - http://a/b/c/g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/./y - scheme - http - standardizedURL - http://a/b/c/g;x=1/./y - user - <null> - + <null url> In-Title @@ -88045,151 +14846,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 8) (14, 9) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (15, 8) (14, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/../y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/../y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLString - http://a/b/c/g;x=1/../y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/../y - deletingLastPathExtension - http://a/b/c/g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/../y - scheme - http - standardizedURL - http://a/b/c/g;x=1/../y - user - <null> - + <null url> In-Title @@ -88198,151 +14856,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 5) (14, 6) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLString - http://a/b/c/g?y/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/./x - deletingLastPathExtension - http://a/b/c/g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/./x - scheme - http - standardizedURL - http://a/b/c/g?y/./x - user - <null> - + <null url> In-Title @@ -88351,151 +14866,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 6) (14, 7) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLString - http://a/b/c/g?y/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/../x - deletingLastPathExtension - http://a/b/c/g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/../x - scheme - http - standardizedURL - http://a/b/c/g?y/../x - user - <null> - + <null url> In-Title @@ -88504,151 +14876,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 5) (14, 6) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLString - http://a/b/c/g#s/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/./x - deletingLastPathExtension - http://a/b/c/g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/./x - scheme - http - standardizedURL - http://a/b/c/g#s/./x - user - <null> - + <null url> In-Title @@ -88657,151 +14886,8 @@ CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 6) (14, 7) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLString - http://a/b/c/g#s/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/../x - deletingLastPathExtension - http://a/b/c/g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/../x - scheme - http - standardizedURL - http://a/b/c/g#s/../x - user - <null> - + <null url> In-Title @@ -88810,151 +14896,8 @@ CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AbsoluteURLString - http://a/../../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/../../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy4uL3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /../../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /../../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ../../x - URLBytes - - aHR0cDovL2EvLi4vLi4veA== - - URLData - - aHR0cDovL2EvLi4vLi4veA== - - URLString - http://a/../../x - UserName - <null> - WindowsPath - \..\..\x - Out-NSResults - - absoluteString - http://a/../../x - absoluteURLString - http://a/../../x - baseURLString - <null> - deletingLastPathComponent - http://a/../../ - deletingLastPathExtension - http://a/../../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - /../../x - pathComponents - - / - .. - .. - x - - pathExtension - - port - <null> - query - <null> - relativePath - /../../x - relativeString - http://a/../../x - scheme - http - standardizedURL - http://a/x - user - <null> - + <null url> In-Title @@ -88963,151 +14906,8 @@ CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AbsoluteURLString - http://a/..///../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 10) (8, 10) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/..///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/..///../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly4uLy8vLi4veA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /..///../x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /..///../x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - ..///../x - URLBytes - - aHR0cDovL2EvLi4vLy8uLi94 - - URLData - - aHR0cDovL2EvLi4vLy8uLi94 - - URLString - http://a/..///../x - UserName - <null> - WindowsPath - \..\\\..\x - Out-NSResults - - absoluteString - http://a/..///../x - absoluteURLString - http://a/..///../x - baseURLString - <null> - deletingLastPathComponent - http://a/..///../ - deletingLastPathExtension - http://a/..///../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - /..///../x - pathComponents - - / - .. - .. - x - - pathExtension - - port - <null> - query - <null> - relativePath - /..///../x - relativeString - http://a/..///../x - scheme - http - standardizedURL - http://a/x - user - <null> - + <null url> In-Title @@ -89116,151 +14916,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AbsoluteURLString - file:///usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 14) (4, 17) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovLy91c3IvbG9jYWwvYmlu - - URLString - file:///usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:///usr/local/bin - absoluteURLString - file:///usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:///usr/local/ - deletingLastPathExtension - file:///usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:///usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -89269,151 +14926,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AbsoluteURLString - file:/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 14) (4, 15) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLData - - ZmlsZTovdXNyL2xvY2FsL2Jpbg== - - URLString - file:/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file:/usr/local/bin - absoluteURLString - file:/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file:/usr/local/ - deletingLastPathExtension - file:/usr/local/bin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file:/usr/local/bin - scheme - file - standardizedURL - file:///usr/local/bin - user - <null> - + <null url> In-Title @@ -89422,151 +14936,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 14) (16, 14) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmlu - - URLString - file://localhost/usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin - absoluteURLString - file://localhost/usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin - scheme - file - standardizedURL - file://localhost/usr/local/bin - user - <null> - + <null url> In-Title @@ -89575,150 +14946,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://usr/local/bin - Out-CFResults - - AbsoluteURLString - file://usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 10) (10, 10) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://usr/local/bin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2xvY2FsL2Jpbg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - usr - IsAbsolute - - LastPathComponent - bin - NetLocation - usr - POSIXPath - /local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - local/bin - URLBytes - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLData - - ZmlsZTovL3Vzci9sb2NhbC9iaW4= - - URLString - file://usr/local/bin - UserName - <null> - WindowsPath - \local\bin - Out-NSResults - - absoluteString - file://usr/local/bin - absoluteURLString - file://usr/local/bin - baseURLString - <null> - deletingLastPathComponent - file://usr/local/ - deletingLastPathExtension - file://usr/local/bin - fragment - <null> - host - usr - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /local/bin - pathComponents - - / - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /local/bin - relativeString - file://usr/local/bin - scheme - file - standardizedURL - file://usr/local/bin - user - <null> - + <null url> In-Title @@ -89727,147 +14956,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /usr/local/bin - Out-CFResults - - AbsoluteURLString - /usr/local/bin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 14) (0, 14) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /usr/local/bin - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - bin - NetLocation - <null> - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - usr/local/bin - URLBytes - - L3Vzci9sb2NhbC9iaW4= - - URLData - - L3Vzci9sb2NhbC9iaW4= - - URLString - /usr/local/bin - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - /usr/local/bin - absoluteURLString - /usr/local/bin - baseURLString - <null> - deletingLastPathComponent - /usr/local/ - deletingLastPathExtension - /usr/local/bin - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - /usr/local/bin - scheme - <null> - standardizedURL - /usr/local/bin - user - <null> - + <null url> In-Title @@ -89876,151 +14966,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - file://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - usr/local/bin/ - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - ZmlsZTovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - file://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - file://localhost/usr/local/bin/ - absoluteURLString - file://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/usr/local/ - deletingLastPathExtension - file://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - file://localhost/usr/local/bin/ - scheme - file - standardizedURL - file://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -90029,148 +14976,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://localhost/ - Out-CFResults - - AbsoluteURLString - file://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLData - - ZmlsZTovL2xvY2FsaG9zdC8= - - URLString - file://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost/ - absoluteURLString - file://localhost/ - baseURLString - <null> - deletingLastPathComponent - file://localhost/../ - deletingLastPathExtension - file://localhost/ - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file://localhost/ - scheme - file - standardizedURL - file://localhost/ - user - <null> - + <null url> In-Title @@ -90179,145 +14986,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://localhost - Out-CFResults - - AbsoluteURLString - file://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2xvY2FsaG9zdA== - - URLData - - ZmlsZTovL2xvY2FsaG9zdA== - - URLString - file://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://localhost - absoluteURLString - file://localhost - baseURLString - <null> - deletingLastPathComponent - file://localhost../ - deletingLastPathExtension - file://localhost - fragment - <null> - host - localhost - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://localhost - scheme - file - standardizedURL - file://localhost - user - <null> - + <null url> In-Title @@ -90326,148 +14996,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/// - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -90476,142 +15006,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:// - Out-CFResults - - AbsoluteURLString - file:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovLw== - - URLData - - ZmlsZTovLw== - - URLString - file:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:// - absoluteURLString - file:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -90620,148 +15016,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -90770,142 +15026,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url FILE:// - Out-CFResults - - AbsoluteURLString - FILE:// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (-1, 0) (7, 0) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 4) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - FILE - StrictPath - <null> - URLBytes - - RklMRTovLw== - - URLData - - RklMRTovLw== - - URLString - FILE:// - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - FILE:// - absoluteURLString - FILE:// - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - FILE:// - scheme - FILE - standardizedURL - FILE:/// - user - <null> - + <null url> In-Title @@ -90914,149 +15036,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///Volumes - Out-CFResults - - AbsoluteURLString - file:///Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 8) (4, 11) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovLy9Wb2x1bWVz - - URLData - - ZmlsZTovLy9Wb2x1bWVz - - URLString - file:///Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:///Volumes - absoluteURLString - file:///Volumes - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:///Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -91065,150 +15046,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///Users/darin - Out-CFResults - - AbsoluteURLString - file:///Users/darin - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 12) (4, 15) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///Users/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///Users/darin - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1VzZXJzL2Rhcmlu - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - darin - NetLocation - <null> - POSIXPath - /Users/darin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Users/darin - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Users/darin - URLBytes - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLData - - ZmlsZTovLy9Vc2Vycy9kYXJpbg== - - URLString - file:///Users/darin - UserName - <null> - WindowsPath - \Users\darin - Out-NSResults - - absoluteString - file:///Users/darin - absoluteURLString - file:///Users/darin - baseURLString - <null> - deletingLastPathComponent - file:///Users/ - deletingLastPathExtension - file:///Users/darin - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - darin - password - <null> - path - /Users/darin - pathComponents - - / - Users - darin - - pathExtension - - port - <null> - query - <null> - relativePath - /Users/darin - relativeString - file:///Users/darin - scheme - file - standardizedURL - file:///Users/darin - user - <null> - + <null url> In-Title @@ -91217,148 +15056,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/ - Out-CFResults - - AbsoluteURLString - file:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTov - - URLData - - ZmlsZTov - - URLString - file:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/ - absoluteURLString - file:/ - baseURLString - <null> - deletingLastPathComponent - file:/../ - deletingLastPathExtension - file:/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/ - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -91367,145 +15066,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file://foo - Out-CFResults - - AbsoluteURLString - file://foo - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 3) (4, 6) - ComponentNetLocation - (7, 3) (4, 6) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (10, 0) (10, 0) - ComponentPort - (-1, 0) (10, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://foo../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file://foo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - foo - IsAbsolute - - LastPathComponent - - NetLocation - foo - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTovL2Zvbw== - - URLData - - ZmlsZTovL2Zvbw== - - URLString - file://foo - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file://foo - absoluteURLString - file://foo - baseURLString - <null> - deletingLastPathComponent - file://foo../ - deletingLastPathExtension - file://foo - fragment - <null> - host - foo - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file://foo - scheme - file - standardizedURL - file://foo - user - <null> - + <null url> In-Title @@ -91514,148 +15076,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///. - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -91664,148 +15086,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///./. - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -91814,149 +15096,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///.///. - Out-CFResults - - AbsoluteURLString - file:///// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - // - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /// - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - // - URLBytes - - ZmlsZTovLy8vLw== - - URLData - - ZmlsZTovLy8vLw== - - URLString - file:///// - UserName - <null> - WindowsPath - \\ - Out-NSResults - - absoluteString - file:///// - absoluteURLString - file:///// - baseURLString - <null> - deletingLastPathComponent - file://///../ - deletingLastPathExtension - file:///// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - // - pathComponents - - / - / - - pathExtension - - port - <null> - query - <null> - relativePath - // - relativeString - file:///// - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -91965,148 +15106,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/.. - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -92115,149 +15116,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/b/.. - Out-CFResults - - AbsoluteURLString - file:///a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2E= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - /a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/ - URLBytes - - ZmlsZTovLy9hLw== - - URLData - - ZmlsZTovLy9hLw== - - URLString - file:///a/ - UserName - <null> - WindowsPath - \a - Out-NSResults - - absoluteString - file:///a/ - absoluteURLString - file:///a/ - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///a/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - a - password - <null> - path - /a - pathComponents - - / - a - - pathExtension - - port - <null> - query - <null> - relativePath - /a - relativeString - file:///a/ - scheme - file - standardizedURL - file:///a/ - user - <null> - + <null url> In-Title @@ -92266,150 +15126,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/b//.. - Out-CFResults - - AbsoluteURLString - file:///a/b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 5) (4, 8) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvYg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - b - NetLocation - <null> - POSIXPath - /a/b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/b/ - URLBytes - - ZmlsZTovLy9hL2Iv - - URLData - - ZmlsZTovLy9hL2Iv - - URLString - file:///a/b/ - UserName - <null> - WindowsPath - \a\b - Out-NSResults - - absoluteString - file:///a/b/ - absoluteURLString - file:///a/b/ - baseURLString - <null> - deletingLastPathComponent - file:///a/ - deletingLastPathExtension - file:///a/b/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - b - password - <null> - path - /a/b - pathComponents - - / - a - b - - pathExtension - - port - <null> - query - <null> - relativePath - /a/b - relativeString - file:///a/b/ - scheme - file - standardizedURL - file:///a/b/ - user - <null> - + <null url> In-Title @@ -92418,149 +15136,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AbsoluteURLString - file:///a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2E= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - /a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/ - URLBytes - - ZmlsZTovLy9hLw== - - URLData - - ZmlsZTovLy9hLw== - - URLString - file:///a/ - UserName - <null> - WindowsPath - \a - Out-NSResults - - absoluteString - file:///a/ - absoluteURLString - file:///a/ - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///a/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - a - password - <null> - path - /a - pathComponents - - / - a - - pathExtension - - port - <null> - query - <null> - relativePath - /a - relativeString - file:///a/ - scheme - file - standardizedURL - file:///a/ - user - <null> - + <null url> In-Title @@ -92569,149 +15146,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AbsoluteURLString - file:///a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2E= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - /a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/ - URLBytes - - ZmlsZTovLy9hLw== - - URLData - - ZmlsZTovLy9hLw== - - URLString - file:///a/ - UserName - <null> - WindowsPath - \a - Out-NSResults - - absoluteString - file:///a/ - absoluteURLString - file:///a/ - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///a/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - a - password - <null> - path - /a - pathComponents - - / - a - - pathExtension - - port - <null> - query - <null> - relativePath - /a - relativeString - file:///a/ - scheme - file - standardizedURL - file:///a/ - user - <null> - + <null url> In-Title @@ -92720,149 +15156,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AbsoluteURLString - file:///a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2E= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - /a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/ - URLBytes - - ZmlsZTovLy9hLw== - - URLData - - ZmlsZTovLy9hLw== - - URLString - file:///a/ - UserName - <null> - WindowsPath - \a - Out-NSResults - - absoluteString - file:///a/ - absoluteURLString - file:///a/ - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///a/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - a - password - <null> - path - /a - pathComponents - - / - a - - pathExtension - - port - <null> - query - <null> - relativePath - /a - relativeString - file:///a/ - scheme - file - standardizedURL - file:///a/ - user - <null> - + <null url> In-Title @@ -92871,150 +15166,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a///b//.. - Out-CFResults - - AbsoluteURLString - file:///a///b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 7) (4, 10) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///a/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a///b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2EvLy9i - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - b - NetLocation - <null> - POSIXPath - /a///b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a///b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a///b/ - URLBytes - - ZmlsZTovLy9hLy8vYi8= - - URLData - - ZmlsZTovLy9hLy8vYi8= - - URLString - file:///a///b/ - UserName - <null> - WindowsPath - \a\\\b - Out-NSResults - - absoluteString - file:///a///b/ - absoluteURLString - file:///a///b/ - baseURLString - <null> - deletingLastPathComponent - file:///a/// - deletingLastPathExtension - file:///a///b/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - b - password - <null> - path - /a///b - pathComponents - - / - a - b - - pathExtension - - port - <null> - query - <null> - relativePath - /a///b - relativeString - file:///a///b/ - scheme - file - standardizedURL - file:///a///b/ - user - <null> - + <null url> In-Title @@ -93023,148 +15176,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -93173,149 +15186,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AbsoluteURLString - file:///a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2E= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - /a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - a/ - URLBytes - - ZmlsZTovLy9hLw== - - URLData - - ZmlsZTovLy9hLw== - - URLString - file:///a/ - UserName - <null> - WindowsPath - \a - Out-NSResults - - absoluteString - file:///a/ - absoluteURLString - file:///a/ - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///a/ - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - a - password - <null> - path - /a - pathComponents - - / - a - - pathExtension - - port - <null> - query - <null> - relativePath - /a - relativeString - file:///a/ - scheme - file - standardizedURL - file:///a/ - user - <null> - + <null url> In-Title @@ -93324,148 +15196,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AbsoluteURLString - file:/// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 4) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8= - - URLData - - ZmlsZTovLy8= - - URLString - file:/// - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:/// - absoluteURLString - file:/// - baseURLString - <null> - deletingLastPathComponent - file:///../ - deletingLastPathExtension - file:/// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - file:/// - scheme - file - standardizedURL - file:/// - user - <null> - + <null url> In-Title @@ -93474,149 +15206,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2M= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - c - URLBytes - - ZmlsZTovLy9j - - URLData - - ZmlsZTovLy9j - - URLString - file:///c - UserName - <null> - WindowsPath - \c - Out-NSResults - - absoluteString - file:///c - absoluteURLString - file:///c - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /c - pathComponents - - / - c - - pathExtension - - port - <null> - query - <null> - relativePath - /c - relativeString - file:///c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -93625,149 +15216,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AbsoluteURLString - file:///c - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///c - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2M= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - c - NetLocation - <null> - POSIXPath - /c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /c - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - c - URLBytes - - ZmlsZTovLy9j - - URLData - - ZmlsZTovLy9j - - URLString - file:///c - UserName - <null> - WindowsPath - \c - Out-NSResults - - absoluteString - file:///c - absoluteURLString - file:///c - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///c - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - c - password - <null> - path - /c - pathComponents - - / - c - - pathExtension - - port - <null> - query - <null> - relativePath - /c - relativeString - file:///c - scheme - file - standardizedURL - file:///c - user - <null> - + <null url> In-Title @@ -93776,145 +15226,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 0) (17, 0) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - - NetLocation - ftp.gnu.org - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - <null> - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc= - - URLString - ftp://ftp.gnu.org - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org - absoluteURLString - ftp://ftp.gnu.org - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org../ - deletingLastPathExtension - ftp://ftp.gnu.org - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - ftp://ftp.gnu.org - scheme - ftp - standardizedURL - ftp://ftp.gnu.org - user - <null> - + <null url> In-Title @@ -93923,148 +15236,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 1) (17, 1) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - / - NetLocation - ftp.gnu.org - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcv - - URLString - ftp://ftp.gnu.org/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/ - absoluteURLString - ftp://ftp.gnu.org/ - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/../ - deletingLastPathExtension - ftp://ftp.gnu.org/ - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - ftp://ftp.gnu.org/ - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/ - user - <null> - + <null url> In-Title @@ -94073,150 +15246,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (6, 11) (3, 14) - ComponentNetLocation - (6, 11) (3, 14) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (17, 8) (17, 8) - ComponentPort - (-1, 0) (17, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org/pub/gnu - absoluteURLString - ftp://ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org/pub/gnu - user - <null> - + <null url> In-Title @@ -94225,150 +15256,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (12, 11) (11, 12) - ComponentNetLocation - (6, 17) (3, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (11, 0) - ComponentPath - (23, 8) (23, 8) - ComponentPort - (-1, 0) (23, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 5) (3, 9) - DeletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXJAZnRwLmdudS5vcmcvcHViL2dudQ== - - URLString - ftp://luser@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -94377,150 +15266,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (26, 0) - ComponentHost - (7, 11) (6, 12) - ComponentNetLocation - (6, 12) (3, 15) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (18, 8) (18, 8) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (26, 0) - ComponentResourceSpecifier - (-1, 0) (26, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 0) (3, 4) - DeletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - @ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLData - - ZnRwOi8vQGZ0cC5nbnUub3JnL3B1Yi9nbnU= - - URLString - ftp://@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -94529,152 +15276,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (21, 11) (20, 12) - ComponentNetLocation - (6, 26) (3, 29) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (12, 8) (11, 10) - ComponentPath - (32, 8) (32, 8) - ComponentPort - (-1, 0) (32, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 5) (3, 9) - ComponentUserInfo - (6, 14) (3, 18) - DeletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - luser:password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLData - - ZnRwOi8vbHVzZXI6cGFzc3dvcmRAZnRwLmdudS5vcmcv - cHViL2dudQ== - - URLString - ftp://luser:password@ftp.gnu.org/pub/gnu - UserName - luser - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://luser:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://luser:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://luser:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://luser:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://luser:password@ftp.gnu.org/pub/gnu - user - luser - + <null url> In-Title @@ -94683,152 +15286,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (35, 0) - ComponentHost - (16, 11) (15, 12) - ComponentNetLocation - (6, 21) (3, 24) - ComponentParameterString - (-1, 0) (35, 0) - ComponentPassword - (7, 8) (6, 10) - ComponentPath - (27, 8) (27, 8) - ComponentPort - (-1, 0) (27, 0) - ComponentQuery - (-1, 0) (35, 0) - ComponentResourceSpecifier - (-1, 0) (35, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (6, 0) (3, 4) - ComponentUserInfo - (6, 9) (3, 13) - DeletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - :password@ftp.gnu.org - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - password - Path - /pub/gnu - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLData - - ZnRwOi8vOnBhc3N3b3JkQGZ0cC5nbnUub3JnL3B1Yi9n - bnU= - - URLString - ftp://:password@ftp.gnu.org/pub/gnu - UserName - - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:password@ftp.gnu.org/pub/gnu - absoluteURLString - ftp://:password@ftp.gnu.org/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:password@ftp.gnu.org/pub/ - deletingLastPathExtension - ftp://:password@ftp.gnu.org/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - password - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - <null> - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:password@ftp.gnu.org/pub/gnu - scheme - ftp - standardizedURL - ftp://:password@ftp.gnu.org/pub/gnu - user - - + <null url> In-Title @@ -94837,150 +15296,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (6, 11) (3, 15) - ComponentNetLocation - (6, 14) (3, 17) - ComponentParameterString - (-1, 0) (28, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (20, 8) (20, 8) - ComponentPort - (18, 2) (17, 3) - ComponentQuery - (-1, 0) (28, 0) - ComponentResourceSpecifier - (-1, 0) (28, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://ftp.gnu.org:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ftp.gnu.org - IsAbsolute - - LastPathComponent - gnu - NetLocation - ftp.gnu.org:72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLData - - ZnRwOi8vZnRwLmdudS5vcmc6NzIvcHViL2dudQ== - - URLString - ftp://ftp.gnu.org:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://ftp.gnu.org:72/pub/gnu - absoluteURLString - ftp://ftp.gnu.org:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://ftp.gnu.org:72/pub/ - deletingLastPathExtension - ftp://ftp.gnu.org:72/pub/gnu - fragment - <null> - host - ftp.gnu.org - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://ftp.gnu.org:72/pub/gnu - scheme - ftp - standardizedURL - ftp://ftp.gnu.org:72/pub/gnu - user - <null> - + <null url> In-Title @@ -94989,150 +15306,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AbsoluteURLString - ftp://:72/pub/gnu - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (6, 0) (3, 4) - ComponentNetLocation - (6, 3) (3, 6) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (9, 8) (9, 8) - ComponentPort - (7, 2) (6, 3) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://:72/pub/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://:72/pub/gnu - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3B1Yi9nbnU= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - - IsAbsolute - - LastPathComponent - gnu - NetLocation - :72 - POSIXPath - /pub/gnu - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /pub/gnu - PathExtension - <null> - PortNumber - 72 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - pub/gnu - URLBytes - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLData - - ZnRwOi8vOjcyL3B1Yi9nbnU= - - URLString - ftp://:72/pub/gnu - UserName - <null> - WindowsPath - \pub\gnu - Out-NSResults - - absoluteString - ftp://:72/pub/gnu - absoluteURLString - ftp://:72/pub/gnu - baseURLString - <null> - deletingLastPathComponent - ftp://:72/pub/ - deletingLastPathExtension - ftp://:72/pub/gnu - fragment - <null> - host - - isFileURL - NO - lastPathComponent - gnu - password - <null> - path - /pub/gnu - pathComponents - - / - pub - gnu - - pathExtension - - port - 72 - query - <null> - relativePath - /pub/gnu - relativeString - ftp://:72/pub/gnu - scheme - ftp - standardizedURL - ftp://:72/pub/gnu - user - <null> - + <null url> In-Title @@ -95141,151 +15316,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AbsoluteURLString - http://localhost/usr/local/bin/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 15) (16, 15) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/usr/local/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/usr/local/bin/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3Vzci9sb2NhbC9iaW4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - bin - NetLocation - localhost - POSIXPath - /usr/local/bin - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /usr/local/bin/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - usr/local/bin/ - URLBytes - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLData - - aHR0cDovL2xvY2FsaG9zdC91c3IvbG9jYWwvYmluLw== - - URLString - http://localhost/usr/local/bin/ - UserName - <null> - WindowsPath - \usr\local\bin - Out-NSResults - - absoluteString - http://localhost/usr/local/bin/ - absoluteURLString - http://localhost/usr/local/bin/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/usr/local/ - deletingLastPathExtension - http://localhost/usr/local/bin/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - bin - password - <null> - path - /usr/local/bin - pathComponents - - / - usr - local - bin - - pathExtension - - port - <null> - query - <null> - relativePath - /usr/local/bin - relativeString - http://localhost/usr/local/bin/ - scheme - http - standardizedURL - http://localhost/usr/local/bin/ - user - <null> - + <null url> In-Title @@ -95294,148 +15326,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://localhost/ - Out-CFResults - - AbsoluteURLString - http://localhost/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (17, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (17, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 1) (16, 1) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (17, 0) - ComponentResourceSpecifier - (-1, 0) (17, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - / - NetLocation - localhost - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2xvY2FsaG9zdC8= - - URLData - - aHR0cDovL2xvY2FsaG9zdC8= - - URLString - http://localhost/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost/ - absoluteURLString - http://localhost/ - baseURLString - <null> - deletingLastPathComponent - http://localhost/../ - deletingLastPathExtension - http://localhost/ - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://localhost/ - scheme - http - standardizedURL - http://localhost/ - user - <null> - + <null url> In-Title @@ -95444,145 +15336,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://localhost - Out-CFResults - - AbsoluteURLString - http://localhost - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 9) (4, 12) - ComponentNetLocation - (7, 9) (4, 12) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (16, 0) (16, 0) - ComponentPort - (-1, 0) (16, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://localhost../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://localhost - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - localhost - IsAbsolute - - LastPathComponent - - NetLocation - localhost - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2xvY2FsaG9zdA== - - URLData - - aHR0cDovL2xvY2FsaG9zdA== - - URLString - http://localhost - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://localhost - absoluteURLString - http://localhost - baseURLString - <null> - deletingLastPathComponent - http://localhost../ - deletingLastPathExtension - http://localhost - fragment - <null> - host - localhost - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://localhost - scheme - http - standardizedURL - http://localhost - user - <null> - + <null url> In-Title @@ -95591,145 +15346,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 0) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (20, 0) - ComponentResourceSpecifier - (-1, 0) (20, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20= - - URLString - http://www.apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com - absoluteURLString - http://www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../ - deletingLastPathExtension - http://www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple.com - scheme - http - standardizedURL - http://www.apple.com - user - <null> - + <null url> In-Title @@ -95738,148 +15356,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 1) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - / - NetLocation - www.apple.com - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20v - - URLString - http://www.apple.com/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com/ - absoluteURLString - http://www.apple.com/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/../ - deletingLastPathExtension - http://www.apple.com/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://www.apple.com/ - scheme - http - standardizedURL - http://www.apple.com/ - user - <null> - + <null url> In-Title @@ -95888,149 +15366,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (24, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (24, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 4) (20, 4) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (24, 0) - ComponentResourceSpecifier - (-1, 0) (24, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGly - - URLString - http://www.apple.com/dir - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir - absoluteURLString - http://www.apple.com/dir - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir - scheme - http - standardizedURL - http://www.apple.com/dir - user - <null> - + <null url> In-Title @@ -96039,149 +15376,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AbsoluteURLString - http://www.apple.com/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 5) (20, 5) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - www.apple.com - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /dir/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vZGlyLw== - - URLString - http://www.apple.com/dir/ - UserName - <null> - WindowsPath - \dir - Out-NSResults - - absoluteString - http://www.apple.com/dir/ - absoluteURLString - http://www.apple.com/dir/ - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/ - deletingLastPathExtension - http://www.apple.com/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - <null> - path - /dir - pathComponents - - / - dir - - pathExtension - - port - <null> - query - <null> - relativePath - /dir - relativeString - http://www.apple.com/dir/ - scheme - http - standardizedURL - http://www.apple.com/dir/ - user - <null> - + <null url> In-Title @@ -96190,145 +15386,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com:80 - Out-CFResults - - AbsoluteURLString - http://www.apple.com:80 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 13) (4, 17) - ComponentNetLocation - (7, 16) (4, 19) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (23, 0) (23, 0) - ComponentPort - (21, 2) (20, 3) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (-1, 0) (23, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com:80../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com:80 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com:80 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb206ODA= - - URLString - http://www.apple.com:80 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com:80 - absoluteURLString - http://www.apple.com:80 - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com:80../ - deletingLastPathExtension - http://www.apple.com:80 - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - 80 - query - <null> - relativePath - - relativeString - http://www.apple.com:80 - scheme - http - standardizedURL - http://www.apple.com:80 - user - <null> - + <null url> In-Title @@ -96337,151 +15396,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AbsoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (20, 13) (19, 15) - ComponentNetLocation - (7, 29) (4, 32) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (13, 6) (12, 8) - ComponentPath - (36, 5) (36, 5) - ComponentPort - (34, 2) (33, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 12) (4, 16) - DeletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:nothin@www.apple.com:42/dir/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Rpcg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - dir - NetLocation - darin:nothin@www.apple.com:42 - POSIXPath - /dir - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - nothin - Path - /dir/ - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - dir/ - URLBytes - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLData - - aHR0cDovL2RhcmluOm5vdGhpbkB3d3cuYXBwbGUuY29t - OjQyL2Rpci8= - - URLString - http://darin:nothin@www.apple.com:42/dir/ - UserName - darin - WindowsPath - \dir - Out-NSResults - - absoluteString - http://darin:nothin@www.apple.com:42/dir/ - absoluteURLString - http://darin:nothin@www.apple.com:42/dir/ - baseURLString - <null> - deletingLastPathComponent - http://darin:nothin@www.apple.com:42/ - deletingLastPathExtension - http://darin:nothin@www.apple.com:42/dir/ - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - dir - password - nothin - path - /dir - pathComponents - - / - dir - - pathExtension - - port - 42 - query - <null> - relativePath - /dir - relativeString - http://darin:nothin@www.apple.com:42/dir/ - scheme - http - standardizedURL - http://darin:nothin@www.apple.com:42/dir/ - user - darin - + <null url> In-Title @@ -96490,148 +15406,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:/ - Out-CFResults - - AbsoluteURLString - http:/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (6, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (6, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 1) (4, 2) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (6, 0) - ComponentResourceSpecifier - (-1, 0) (6, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDov - - URLData - - aHR0cDov - - URLString - http:/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:/ - absoluteURLString - http:/ - baseURLString - <null> - deletingLastPathComponent - http:/../ - deletingLastPathExtension - http:/ - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http:/ - scheme - http - standardizedURL - http:/// - user - <null> - + <null url> In-Title @@ -96640,151 +15416,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com/query?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (48, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (26, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 6) (20, 7) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (27, 21) (26, 22) - ComponentResourceSpecifier - (27, 21) (26, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com/query?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3F1ZXJ5 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - query - NetLocation - www.apple.com - POSIXPath - /query - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /query - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - query - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20vcXVlcnk/ZW1haWw9 - ZGFyaW5AYXBwbGUuY29t - - URLString - http://www.apple.com/query?email=darin@apple.com - UserName - <null> - WindowsPath - \query - Out-NSResults - - absoluteString - http://www.apple.com/query?email=darin@apple.com - absoluteURLString - http://www.apple.com/query?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com/?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com/query?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - query - password - <null> - path - /query - pathComponents - - / - query - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - /query - relativeString - http://www.apple.com/query?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com/query?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -96793,147 +15426,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AbsoluteURLString - http://www.apple.com?email=darin@apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (42, 0) - ComponentHost - (7, 13) (4, 16) - ComponentNetLocation - (7, 13) (4, 16) - ComponentParameterString - (-1, 0) (20, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (20, 0) (20, 1) - ComponentPort - (-1, 0) (20, 0) - ComponentQuery - (21, 21) (20, 22) - ComponentResourceSpecifier - (21, 21) (20, 22) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple.com?email=darin@apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - email=darin@apple.com - QueryString-Unescaped - email=darin@apple.com - ResourceSpecifier - ?email=darin@apple.com - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLData - - aHR0cDovL3d3dy5hcHBsZS5jb20/ZW1haWw9ZGFyaW5A - YXBwbGUuY29t - - URLString - http://www.apple.com?email=darin@apple.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple.com?email=darin@apple.com - absoluteURLString - http://www.apple.com?email=darin@apple.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple.com../?email=darin@apple.com - deletingLastPathExtension - http://www.apple.com?email=darin@apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - email=darin@apple.com - relativePath - - relativeString - http://www.apple.com?email=darin@apple.com - scheme - http - standardizedURL - http://www.apple.com?email=darin@apple.com - user - <null> - + <null url> In-Title @@ -96942,145 +15436,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 0) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (-1, 0) (18, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - - NetLocation - WWW.ZOO.COM - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - <null> - URLBytes - - SFRUUDovL1dXVy5aT08uQ09N - - URLData - - SFRUUDovL1dXVy5aT08uQ09N - - URLString - HTTP://WWW.ZOO.COM - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM - absoluteURLString - HTTP://WWW.ZOO.COM - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - HTTP://WWW.ZOO.COM - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM - user - <null> - + <null url> In-Title @@ -97089,148 +15446,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 1) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - / - NetLocation - WWW.ZOO.COM - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLData - - SFRUUDovL1dXVy5aT08uQ09NLw== - - URLString - HTTP://WWW.ZOO.COM/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ - absoluteURLString - HTTP://WWW.ZOO.COM/ - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/../ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - HTTP://WWW.ZOO.COM/ - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ - user - <null> - + <null url> In-Title @@ -97239,149 +15456,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AbsoluteURLString - HTTP://WWW.ZOO.COM/ED - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 3) (18, 3) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - HTTP://WWW.ZOO.COM/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - HTTP://WWW.ZOO.COM/ED - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L0VE - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - WWW.ZOO.COM - IsAbsolute - - LastPathComponent - ED - NetLocation - WWW.ZOO.COM - POSIXPath - /ED - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /ED - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - HTTP - StrictPath - ED - URLBytes - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLData - - SFRUUDovL1dXVy5aT08uQ09NL0VE - - URLString - HTTP://WWW.ZOO.COM/ED - UserName - <null> - WindowsPath - \ED - Out-NSResults - - absoluteString - HTTP://WWW.ZOO.COM/ED - absoluteURLString - HTTP://WWW.ZOO.COM/ED - baseURLString - <null> - deletingLastPathComponent - HTTP://WWW.ZOO.COM/ - deletingLastPathExtension - HTTP://WWW.ZOO.COM/ED - fragment - <null> - host - WWW.ZOO.COM - isFileURL - NO - lastPathComponent - ED - password - <null> - path - /ED - pathComponents - - / - ED - - pathExtension - - port - <null> - query - <null> - relativePath - /ED - relativeString - HTTP://WWW.ZOO.COM/ED - scheme - HTTP - standardizedURL - HTTP://WWW.ZOO.COM/ED - user - <null> - + <null url> In-Title @@ -97390,155 +15466,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AbsoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (99, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (45, 43) (44, 45) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 29) (15, 30) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (89, 10) (88, 11) - ComponentResourceSpecifier - (45, 54) (44, 55) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BjL2NhdGFsb2cvU2VnYVByb2R1Y3Quamh0bWw= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - sega.com - IsAbsolute - - LastPathComponent - SegaProduct.jhtml - NetLocation - sega.com - POSIXPath - /pc/catalog/SegaProduct.jhtml - ParameterString-Escaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - ParameterString-Unescaped - $sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0 - Password - <null> - Path - /pc/catalog/SegaProduct.jhtml - PathExtension - jhtml - PortNumber - -1 - QueryString-Escaped - PRODID=193 - QueryString-Unescaped - PRODID=193 - ResourceSpecifier - ;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Scheme - http - StrictPath - pc/catalog/SegaProduct.jhtml - URLBytes - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLData - - aHR0cDovL3NlZ2EuY29tL3BjL2NhdGFsb2cvU2VnYVBy - b2R1Y3Quamh0bWw7JHNlc3Npb25pZCRNTUJBV1lJQUFC - SFM0Q1JTQlVLQ000WUtHSUdRVU1TMD9QUk9ESUQ9MTkz - - URLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - UserName - <null> - WindowsPath - \pc\catalog\SegaProduct.jhtml - Out-NSResults - - absoluteString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - absoluteURLString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - baseURLString - <null> - deletingLastPathComponent - http://sega.com/pc/catalog/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - deletingLastPathExtension - http://sega.com/pc/catalog/SegaProduct;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - fragment - <null> - host - sega.com - isFileURL - NO - lastPathComponent - SegaProduct.jhtml - password - <null> - path - /pc/catalog/SegaProduct.jhtml - pathComponents - - / - pc - catalog - SegaProduct.jhtml - - pathExtension - jhtml - port - <null> - query - PRODID=193 - relativePath - /pc/catalog/SegaProduct.jhtml - relativeString - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - scheme - http - standardizedURL - http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - user - <null> - + <null url> In-Title @@ -97547,153 +15476,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AbsoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (75, 0) - ComponentHost - (7, 17) (4, 20) - ComponentNetLocation - (7, 17) (4, 20) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (24, 7) (24, 8) - ComponentPort - (-1, 0) (24, 0) - ComponentQuery - (32, 43) (31, 44) - ComponentResourceSpecifier - (32, 43) (31, 44) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2dyb3Vwcw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - groups.google.com - IsAbsolute - - LastPathComponent - groups - NetLocation - groups.google.com - POSIXPath - /groups - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /groups - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - QueryString-Unescaped - as_uauthors=joe@blow.com&as_scoring=d&hl=en - ResourceSpecifier - ?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Scheme - http - StrictPath - groups - URLBytes - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLData - - aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9h - c191YXV0aG9ycz1qb2VAYmxvdy5jb20mYXNfc2Nvcmlu - Zz1kJmhsPWVu - - URLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - UserName - <null> - WindowsPath - \groups - Out-NSResults - - absoluteString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - absoluteURLString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - baseURLString - <null> - deletingLastPathComponent - http://groups.google.com/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - deletingLastPathExtension - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - fragment - <null> - host - groups.google.com - isFileURL - NO - lastPathComponent - groups - password - <null> - path - /groups - pathComponents - - / - groups - - pathExtension - - port - <null> - query - as_uauthors=joe@blow.com&as_scoring=d&hl=en - relativePath - /groups - relativeString - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - scheme - http - standardizedURL - http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - user - <null> - + <null url> In-Title @@ -97702,152 +15486,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com/some/page.html#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (34, 8) (33, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 15) (18, 16) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (34, 8) (33, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com/some/#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com/some/page#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGFnZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - page.html - NetLocation - my.site.com - POSIXPath - /some/page.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/page.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - some/page.html - URLBytes - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tL3NvbWUvcGFnZS5odG1s - I2ZyYWdtZW50 - - URLString - http://my.site.com/some/page.html#fragment - UserName - <null> - WindowsPath - \some\page.html - Out-NSResults - - absoluteString - http://my.site.com/some/page.html#fragment - absoluteURLString - http://my.site.com/some/page.html#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com/some/#fragment - deletingLastPathExtension - http://my.site.com/some/page#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - page.html - password - <null> - path - /some/page.html - pathComponents - - / - some - page.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /some/page.html - relativeString - http://my.site.com/some/page.html#fragment - scheme - http - standardizedURL - http://my.site.com/some/page.html#fragment - user - <null> - + <null url> In-Title @@ -97856,145 +15496,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AbsoluteURLString - http://my.site.com#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 8) (18, 9) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (18, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 0) (18, 1) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (18, 0) - ComponentResourceSpecifier - (19, 8) (18, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://my.site.com../#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://my.site.com#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - my.site.com - IsAbsolute - - LastPathComponent - - NetLocation - my.site.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #fragment - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLData - - aHR0cDovL215LnNpdGUuY29tI2ZyYWdtZW50 - - URLString - http://my.site.com#fragment - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://my.site.com#fragment - absoluteURLString - http://my.site.com#fragment - baseURLString - <null> - deletingLastPathComponent - http://my.site.com../#fragment - deletingLastPathExtension - http://my.site.com#fragment - fragment - fragment - host - my.site.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://my.site.com#fragment - scheme - http - standardizedURL - http://my.site.com#fragment - user - <null> - + <null url> In-Title @@ -98003,155 +15506,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AbsoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 8) (59, 9) - ComponentHost - (19, 4) (18, 6) - ComponentNetLocation - (9, 16) (6, 19) - ComponentParameterString - (47, 6) (46, 8) - ComponentPassword - (14, 4) (13, 6) - ComponentPath - (25, 21) (25, 22) - ComponentPort - (24, 1) (23, 2) - ComponentQuery - (54, 5) (53, 7) - ComponentResourceSpecifier - (47, 21) (46, 22) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 4) (6, 8) - ComponentUserInfo - (9, 9) (6, 13) - DeletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhdGgvcGF0aDIvZmlsZS5odG1s - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - host - IsAbsolute - - LastPathComponent - file.html - NetLocation - user:pass@host:1 - POSIXPath - /path/path2/file.html - ParameterString-Escaped - params - ParameterString-Unescaped - params - Password - pass - Path - /path/path2/file.html - PathExtension - html - PortNumber - 1 - QueryString-Escaped - query - QueryString-Unescaped - query - ResourceSpecifier - ;params?query#fragment - Scheme - scheme - StrictPath - path/path2/file.html - URLBytes - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLData - - c2NoZW1lOi8vdXNlcjpwYXNzQGhvc3Q6MS9wYXRoL3Bh - dGgyL2ZpbGUuaHRtbDtwYXJhbXM/cXVlcnkjZnJhZ21l - bnQ= - - URLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - UserName - user - WindowsPath - \path\path2\file.html - Out-NSResults - - absoluteString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - absoluteURLString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - baseURLString - <null> - deletingLastPathComponent - scheme://user:pass@host:1/path/path2/;params?query#fragment - deletingLastPathExtension - scheme://user:pass@host:1/path/path2/file;params?query#fragment - fragment - fragment - host - host - isFileURL - NO - lastPathComponent - file.html - password - pass - path - /path/path2/file.html - pathComponents - - / - path - path2 - file.html - - pathExtension - html - port - 1 - query - query - relativePath - /path/path2/file.html - relativeString - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - scheme - scheme - standardizedURL - scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - user - user - + <null url> In-Title @@ -98160,149 +15516,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AbsoluteURLString - http://test.com/a%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/a%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Egc3BhY2U= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - a space - NetLocation - test.com - POSIXPath - /a space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /a%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - a%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL2ElMjBzcGFjZQ== - - URLString - http://test.com/a%20space - UserName - <null> - WindowsPath - \a space - Out-NSResults - - absoluteString - http://test.com/a%20space - absoluteURLString - http://test.com/a%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/a%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - a space - password - <null> - path - /a space - pathComponents - - / - a space - - pathExtension - - port - <null> - query - <null> - relativePath - /a space - relativeString - http://test.com/a%20space - scheme - http - standardizedURL - http://test.com/a%20space - user - <null> - + <null url> In-Title @@ -98311,149 +15526,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AbsoluteURLString - http://test.com/aBrace%7B - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (25, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (25, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 10) (15, 10) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (25, 0) - ComponentResourceSpecifier - (-1, 0) (25, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aBrace%7B - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FCcmFjZXs= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aBrace{ - NetLocation - test.com - POSIXPath - /aBrace{ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aBrace%7B - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aBrace%7B - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLData - - aHR0cDovL3Rlc3QuY29tL2FCcmFjZSU3Qg== - - URLString - http://test.com/aBrace%7B - UserName - <null> - WindowsPath - \aBrace{ - Out-NSResults - - absoluteString - http://test.com/aBrace%7B - absoluteURLString - http://test.com/aBrace%7B - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aBrace%7B - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aBrace{ - password - <null> - path - /aBrace{ - pathComponents - - / - aBrace{ - - pathExtension - - port - <null> - query - <null> - relativePath - /aBrace{ - relativeString - http://test.com/aBrace%7B - scheme - http - standardizedURL - http://test.com/aBrace%7B - user - <null> - + <null url> In-Title @@ -98462,149 +15536,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AbsoluteURLString - http://test.com/aJ%4a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (21, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 6) (15, 6) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (21, 0) - ComponentResourceSpecifier - (-1, 0) (21, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/aJ%4a - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FKSg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - aJJ - NetLocation - test.com - POSIXPath - /aJJ - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /aJ%4a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - aJ%4a - URLBytes - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLData - - aHR0cDovL3Rlc3QuY29tL2FKJTRh - - URLString - http://test.com/aJ%4a - UserName - <null> - WindowsPath - \aJJ - Out-NSResults - - absoluteString - http://test.com/aJ%4a - absoluteURLString - http://test.com/aJ%4a - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/aJ%4a - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - aJJ - password - <null> - path - /aJJ - pathComponents - - / - aJJ - - pathExtension - - port - <null> - query - <null> - relativePath - /aJJ - relativeString - http://test.com/aJ%4a - scheme - http - standardizedURL - http://test.com/aJ%4a - user - <null> - + <null url> In-Title @@ -98613,158 +15546,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AbsoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (133, 14) (132, 15) - ComponentHost - (35, 18) (34, 20) - ComponentNetLocation - (9, 47) (6, 50) - ComponentParameterString - (79, 15) (78, 17) - ComponentPassword - (20, 14) (19, 16) - ComponentPath - (56, 22) (56, 23) - ComponentPort - (54, 2) (53, 3) - ComponentQuery - (95, 37) (94, 39) - ComponentResourceSpecifier - (79, 68) (78, 69) - ComponentScheme - (0, 6) (0, 9) - ComponentUser - (9, 10) (6, 14) - ComponentUserInfo - (9, 25) (6, 29) - DeletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3BhYFh0aC9uYWBYbWU= - - Fragment-Escaped - frag%60%58ment - Fragment-Unescaped - frag`Xment - HasDirectoryPath - - HostName - host`Xname.com - IsAbsolute - - LastPathComponent - na`Xme - NetLocation - us%60%58er:pass%60%58word@host%60%58name.com:80 - POSIXPath - /pa`Xth/na`Xme - ParameterString-Escaped - par%60%58ameter - ParameterString-Unescaped - par`Xameter - Password - pass`Xword - Path - /pa%60%58th/na%60%58me - PathExtension - <null> - PortNumber - 80 - QueryString-Escaped - qu%60%58ery=val%60%58ue&foo%60%58=bar - QueryString-Unescaped - qu`Xery=val`Xue&foo`X=bar - ResourceSpecifier - ;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Scheme - scheme - StrictPath - pa%60%58th/na%60%58me - URLBytes - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLData - - c2NoZW1lOi8vdXMlNjAlNThlcjpwYXNzJTYwJTU4d29y - ZEBob3N0JTYwJTU4bmFtZS5jb206ODAvcGElNjAlNTh0 - aC9uYSU2MCU1OG1lO3BhciU2MCU1OGFtZXRlcj9xdSU2 - MCU1OGVyeT12YWwlNjAlNTh1ZSZmb28lNjAlNTg9YmFy - I2ZyYWclNjAlNThtZW50 - - URLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - UserName - us`Xer - WindowsPath - \pa`Xth\na`Xme - Out-NSResults - - absoluteString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - absoluteURLString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - baseURLString - <null> - deletingLastPathComponent - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - deletingLastPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - fragment - frag%60%58ment - host - host`Xname.com - isFileURL - NO - lastPathComponent - na`Xme - password - pass%60%58word - path - /pa`Xth/na`Xme - pathComponents - - / - pa`Xth - na`Xme - - pathExtension - - port - 80 - query - qu%60%58ery=val%60%58ue&foo%60%58=bar - relativePath - /pa`Xth/na`Xme - relativeString - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - scheme - scheme - standardizedURL - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - user - us`Xer - + <null url> In-Title @@ -98773,149 +15556,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 16) (15, 16) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/unescaped%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3VuZXNjYXBlZCBzcGFjZQ== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped space - NetLocation - test.com - POSIXPath - /unescaped space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /unescaped%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCUyMHNwYWNl - - URLString - http://test.com/unescaped%20space - UserName - <null> - WindowsPath - \unescaped space - Out-NSResults - - absoluteString - http://test.com/unescaped%20space - absoluteURLString - http://test.com/unescaped%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/unescaped%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped space - password - <null> - path - /unescaped space - pathComponents - - / - unescaped space - - pathExtension - - port - <null> - query - <null> - relativePath - /unescaped space - relativeString - http://test.com/unescaped%20space - scheme - http - standardizedURL - http://test.com/unescaped%20space - user - <null> - + <null url> In-Title @@ -98924,149 +15566,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%7Cpipe - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 15) (15, 15) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/unescaped%7Cpipe - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3VuZXNjYXBlZHxwaXBl - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped|pipe - NetLocation - test.com - POSIXPath - /unescaped|pipe - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /unescaped%7Cpipe - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%7Cpipe - URLBytes - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZHxwaXBl - - URLData - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCU3Q3BpcGU= - - URLString - http://test.com/unescaped%7Cpipe - UserName - <null> - WindowsPath - \unescaped|pipe - Out-NSResults - - absoluteString - http://test.com/unescaped%7Cpipe - absoluteURLString - http://test.com/unescaped%7Cpipe - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/unescaped%7Cpipe - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped|pipe - password - <null> - path - /unescaped|pipe - pathComponents - - / - unescaped|pipe - - pathExtension - - port - <null> - query - <null> - relativePath - /unescaped|pipe - relativeString - http://test.com/unescaped%7Cpipe - scheme - http - standardizedURL - http://test.com/unescaped%7Cpipe - user - <null> - + <null url> In-Title @@ -99075,147 +15576,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin%20adler@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (21, 13) (20, 14) - ComponentNetLocation - (7, 27) (4, 30) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (20, 0) - ComponentPath - (34, 0) (34, 0) - ComponentPort - (-1, 0) (34, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 13) (4, 17) - ComponentUserInfo - (7, 13) (4, 17) - DeletingLastPathComponent - http://darin%20adler@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin%20adler@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin%20adler@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLData - - aHR0cDovL2RhcmluJTIwYWRsZXJAd3d3LmFwcGxlLmNv - bQ== - - URLString - http://darin%20adler@www.apple.com - UserName - darin adler - WindowsPath - - Out-NSResults - - absoluteString - http://darin%20adler@www.apple.com - absoluteURLString - http://darin%20adler@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin%20adler@www.apple.com../ - deletingLastPathExtension - http://darin%20adler@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin%20adler@www.apple.com - scheme - http - standardizedURL - http://darin%20adler@www.apple.com - user - darin adler - + <null url> In-Title @@ -99224,147 +15586,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AbsoluteURLString - http://darin:clever%20password@www.apple.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (44, 0) - ComponentHost - (31, 13) (30, 14) - ComponentNetLocation - (7, 37) (4, 40) - ComponentParameterString - (-1, 0) (44, 0) - ComponentPassword - (13, 17) (12, 19) - ComponentPath - (44, 0) (44, 0) - ComponentPort - (-1, 0) (44, 0) - ComponentQuery - (-1, 0) (44, 0) - ComponentResourceSpecifier - (-1, 0) (44, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 5) (4, 9) - ComponentUserInfo - (7, 23) (4, 27) - DeletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://darin:clever%20password@www.apple.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple.com - IsAbsolute - - LastPathComponent - - NetLocation - darin:clever%20password@www.apple.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - clever password - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLData - - aHR0cDovL2RhcmluOmNsZXZlciUyMHBhc3N3b3JkQHd3 - dy5hcHBsZS5jb20= - - URLString - http://darin:clever%20password@www.apple.com - UserName - darin - WindowsPath - - Out-NSResults - - absoluteString - http://darin:clever%20password@www.apple.com - absoluteURLString - http://darin:clever%20password@www.apple.com - baseURLString - <null> - deletingLastPathComponent - http://darin:clever%20password@www.apple.com../ - deletingLastPathExtension - http://darin:clever%20password@www.apple.com - fragment - <null> - host - www.apple.com - isFileURL - NO - lastPathComponent - - password - clever%20password - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://darin:clever%20password@www.apple.com - scheme - http - standardizedURL - http://darin:clever%20password@www.apple.com - user - darin - + <null url> In-Title @@ -99373,145 +15596,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AbsoluteURLString - http://www.apple%20computer.com - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 24) (4, 27) - ComponentNetLocation - (7, 24) (4, 27) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (31, 0) (31, 0) - ComponentPort - (-1, 0) (31, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.apple%20computer.com../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.apple%20computer.com - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.apple computer.com - IsAbsolute - - LastPathComponent - - NetLocation - www.apple%20computer.com - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLData - - aHR0cDovL3d3dy5hcHBsZSUyMGNvbXB1dGVyLmNvbQ== - - URLString - http://www.apple%20computer.com - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://www.apple%20computer.com - absoluteURLString - http://www.apple%20computer.com - baseURLString - <null> - deletingLastPathComponent - http://www.apple%20computer.com../ - deletingLastPathExtension - http://www.apple%20computer.com - fragment - <null> - host - www.apple computer.com - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://www.apple%20computer.com - scheme - http - standardizedURL - http://www.apple%20computer.com - user - <null> - + <null url> In-Title @@ -99520,149 +15606,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///%3F - Out-CFResults - - AbsoluteURLString - file:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %3F - URLBytes - - ZmlsZTovLy8lM0Y= - - URLData - - ZmlsZTovLy8lM0Y= - - URLString - file:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - file:///%3F - absoluteURLString - file:///%3F - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%3F - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - file:///%3F - scheme - file - standardizedURL - file:///%3F - user - <null> - + <null url> In-Title @@ -99671,149 +15616,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///%78 - Out-CFResults - - AbsoluteURLString - file:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - %78 - URLBytes - - ZmlsZTovLy8lNzg= - - URLData - - ZmlsZTovLy8lNzg= - - URLString - file:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///%78 - absoluteURLString - file:///%78 - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///%78 - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///%78 - scheme - file - standardizedURL - file:///%78 - user - <null> - + <null url> In-Title @@ -99822,148 +15626,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///? - Out-CFResults - - AbsoluteURLString - file:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - file - StrictPath - - URLBytes - - ZmlsZTovLy8/ - - URLData - - ZmlsZTovLy8/ - - URLString - file:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - file:///? - absoluteURLString - file:///? - baseURLString - <null> - deletingLastPathComponent - file:///../? - deletingLastPathExtension - file:///? - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - file:///? - scheme - file - standardizedURL - file:///? - user - <null> - + <null url> In-Title @@ -99972,149 +15636,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///& - Out-CFResults - - AbsoluteURLString - file:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - & - URLBytes - - ZmlsZTovLy8m - - URLData - - ZmlsZTovLy8m - - URLString - file:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - file:///& - absoluteURLString - file:///& - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///& - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - file:///& - scheme - file - standardizedURL - file:///& - user - <null> - + <null url> In-Title @@ -100123,149 +15646,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///x - Out-CFResults - - AbsoluteURLString - file:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - x - URLBytes - - ZmlsZTovLy94 - - URLData - - ZmlsZTovLy94 - - URLString - file:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - file:///x - absoluteURLString - file:///x - baseURLString - <null> - deletingLastPathComponent - file:/// - deletingLastPathExtension - file:///x - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - file:///x - scheme - file - standardizedURL - file:///x - user - <null> - + <null url> In-Title @@ -100274,149 +15656,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:///%3F - Out-CFResults - - AbsoluteURLString - http:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %3F - URLBytes - - aHR0cDovLy8lM0Y= - - URLData - - aHR0cDovLy8lM0Y= - - URLString - http:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - http:///%3F - absoluteURLString - http:///%3F - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - http:///%3F - scheme - http - standardizedURL - http:///%3F - user - <null> - + <null url> In-Title @@ -100425,149 +15666,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:///%78 - Out-CFResults - - AbsoluteURLString - http:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 4) (4, 7) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %78 - URLBytes - - aHR0cDovLy8lNzg= - - URLData - - aHR0cDovLy8lNzg= - - URLString - http:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///%78 - absoluteURLString - http:///%78 - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///%78 - scheme - http - standardizedURL - http:///%78 - user - <null> - + <null url> In-Title @@ -100576,148 +15676,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:///? - Out-CFResults - - AbsoluteURLString - http:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 1) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (9, 0) (8, 1) - ComponentResourceSpecifier - (9, 0) (8, 1) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - http - StrictPath - - URLBytes - - aHR0cDovLy8/ - - URLData - - aHR0cDovLy8/ - - URLString - http:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http:///? - absoluteURLString - http:///? - baseURLString - <null> - deletingLastPathComponent - http:///../? - deletingLastPathExtension - http:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - http:///? - scheme - http - standardizedURL - http:///? - user - <null> - + <null url> In-Title @@ -100726,149 +15686,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:///& - Out-CFResults - - AbsoluteURLString - http:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - & - URLBytes - - aHR0cDovLy8m - - URLData - - aHR0cDovLy8m - - URLString - http:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - http:///& - absoluteURLString - http:///& - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - http:///& - scheme - http - standardizedURL - http:///& - user - <null> - + <null url> In-Title @@ -100877,149 +15696,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:///x - Out-CFResults - - AbsoluteURLString - http:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 2) (4, 5) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - x - URLBytes - - aHR0cDovLy94 - - URLData - - aHR0cDovLy94 - - URLString - http:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http:///x - absoluteURLString - http:///x - baseURLString - <null> - deletingLastPathComponent - http:/// - deletingLastPathExtension - http:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http:///x - scheme - http - standardizedURL - http:///x - user - <null> - + <null url> In-Title @@ -101028,149 +15706,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url glorb:///%3F - Out-CFResults - - AbsoluteURLString - glorb:///%3F - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%3F - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lz8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - ? - NetLocation - <null> - POSIXPath - /? - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%3F - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %3F - URLBytes - - Z2xvcmI6Ly8vJTNG - - URLData - - Z2xvcmI6Ly8vJTNG - - URLString - glorb:///%3F - UserName - <null> - WindowsPath - \? - Out-NSResults - - absoluteString - glorb:///%3F - absoluteURLString - glorb:///%3F - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%3F - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - ? - password - <null> - path - /? - pathComponents - - / - ? - - pathExtension - - port - <null> - query - <null> - relativePath - /? - relativeString - glorb:///%3F - scheme - glorb - standardizedURL - glorb:///%3F - user - <null> - + <null url> In-Title @@ -101179,149 +15716,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url glorb:///%78 - Out-CFResults - - AbsoluteURLString - glorb:///%78 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 4) (5, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///%78 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%78 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - %78 - URLBytes - - Z2xvcmI6Ly8vJTc4 - - URLData - - Z2xvcmI6Ly8vJTc4 - - URLString - glorb:///%78 - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///%78 - absoluteURLString - glorb:///%78 - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///%78 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///%78 - scheme - glorb - standardizedURL - glorb:///%78 - user - <null> - + <null url> In-Title @@ -101330,148 +15726,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url glorb:///? - Out-CFResults - - AbsoluteURLString - glorb:///? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 1) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (10, 0) (9, 1) - ComponentResourceSpecifier - (10, 0) (9, 1) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:///../? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - - QueryString-Unescaped - - ResourceSpecifier - ? - Scheme - glorb - StrictPath - - URLBytes - - Z2xvcmI6Ly8vPw== - - URLData - - Z2xvcmI6Ly8vPw== - - URLString - glorb:///? - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - glorb:///? - absoluteURLString - glorb:///? - baseURLString - <null> - deletingLastPathComponent - glorb:///../? - deletingLastPathExtension - glorb:///? - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - - relativePath - / - relativeString - glorb:///? - scheme - glorb - standardizedURL - glorb:///? - user - <null> - + <null url> In-Title @@ -101480,149 +15736,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url glorb:///& - Out-CFResults - - AbsoluteURLString - glorb:///& - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///& - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyY= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - & - NetLocation - <null> - POSIXPath - /& - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /& - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - & - URLBytes - - Z2xvcmI6Ly8vJg== - - URLData - - Z2xvcmI6Ly8vJg== - - URLString - glorb:///& - UserName - <null> - WindowsPath - \& - Out-NSResults - - absoluteString - glorb:///& - absoluteURLString - glorb:///& - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///& - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - & - password - <null> - path - /& - pathComponents - - / - & - - pathExtension - - port - <null> - query - <null> - relativePath - /& - relativeString - glorb:///& - scheme - glorb - standardizedURL - glorb:///& - user - <null> - + <null url> In-Title @@ -101631,149 +15746,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url glorb:///x - Out-CFResults - - AbsoluteURLString - glorb:///x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (8, 0) - ComponentNetLocation - (-1, 0) (8, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (8, 0) - ComponentPath - (8, 2) (5, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 5) (0, 8) - ComponentUser - (-1, 0) (8, 0) - ComponentUserInfo - (-1, 0) (8, 0) - DeletingLastPathComponent - glorb:/// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - glorb:///x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - x - NetLocation - <null> - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - glorb - StrictPath - x - URLBytes - - Z2xvcmI6Ly8veA== - - URLData - - Z2xvcmI6Ly8veA== - - URLString - glorb:///x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - glorb:///x - absoluteURLString - glorb:///x - baseURLString - <null> - deletingLastPathComponent - glorb:/// - deletingLastPathExtension - glorb:///x - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - glorb:///x - scheme - glorb - standardizedURL - glorb:///x - user - <null> - + <null url> In-Title @@ -101782,142 +15756,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 20) (6, 21) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNo - - URLString - mailto:mduerst@ifi.unizh.ch - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch - absoluteURLString - mailto:mduerst@ifi.unizh.ch - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch - user - <null> - + <null url> In-Title @@ -101926,144 +15766,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AbsoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (7, 36) (6, 37) - ComponentScheme - (0, 6) (0, 7) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - mduerst@ifi.unizh.ch?Subject=nothing - Scheme - mailto - StrictPath - <null> - URLBytes - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLData - - bWFpbHRvOm1kdWVyc3RAaWZpLnVuaXpoLmNoP1N1Ympl - Y3Q9bm90aGluZw== - - URLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - absoluteURLString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - mailto:mduerst@ifi.unizh.ch?Subject=nothing - scheme - mailto - standardizedURL - mailto:mduerst@ifi.unizh.ch?Subject=nothing - user - <null> - + <null url> In-Title @@ -102072,144 +15776,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AbsoluteURLString - news:comp.infosystems.www.servers.unix - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 33) (4, 34) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - comp.infosystems.www.servers.unix - Scheme - news - StrictPath - <null> - URLBytes - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLData - - bmV3czpjb21wLmluZm9zeXN0ZW1zLnd3dy5zZXJ2ZXJz - LnVuaXg= - - URLString - news:comp.infosystems.www.servers.unix - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - news:comp.infosystems.www.servers.unix - absoluteURLString - news:comp.infosystems.www.servers.unix - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - news:comp.infosystems.www.servers.unix - scheme - news - standardizedURL - news:comp.infosystems.www.servers.unix - user - <null> - + <null url> In-Title @@ -102218,144 +15786,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AbsoluteURLString - uahsfcncvuhrtgvnahr - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (19, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (19, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 19) (0, 19) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (19, 0) - ComponentResourceSpecifier - (-1, 0) (19, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - uahsfcncvuhrtgvnahr - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - uahsfcncvuhrtgvnahr - NetLocation - <null> - POSIXPath - uahsfcncvuhrtgvnahr - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - uahsfcncvuhrtgvnahr - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - uahsfcncvuhrtgvnahr - URLBytes - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLData - - dWFoc2ZjbmN2dWhydGd2bmFocg== - - URLString - uahsfcncvuhrtgvnahr - UserName - <null> - WindowsPath - uahsfcncvuhrtgvnahr - Out-NSResults - - absoluteString - uahsfcncvuhrtgvnahr - absoluteURLString - uahsfcncvuhrtgvnahr - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - uahsfcncvuhrtgvnahr - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - uahsfcncvuhrtgvnahr - password - <null> - path - uahsfcncvuhrtgvnahr - pathComponents - - uahsfcncvuhrtgvnahr - - pathExtension - - port - <null> - query - <null> - relativePath - uahsfcncvuhrtgvnahr - relativeString - uahsfcncvuhrtgvnahr - scheme - <null> - standardizedURL - uahsfcncvuhrtgvnahr - user - <null> - + <null url> In-Title @@ -102364,145 +15796,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AbsoluteURLString - http://10.1.1.1 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 0) (15, 0) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://10.1.1.1../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://10.1.1.1 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - 10.1.1.1 - IsAbsolute - - LastPathComponent - - NetLocation - 10.1.1.1 - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovLzEwLjEuMS4x - - URLData - - aHR0cDovLzEwLjEuMS4x - - URLString - http://10.1.1.1 - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://10.1.1.1 - absoluteURLString - http://10.1.1.1 - baseURLString - <null> - deletingLastPathComponent - http://10.1.1.1../ - deletingLastPathExtension - http://10.1.1.1 - fragment - <null> - host - 10.1.1.1 - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://10.1.1.1 - scheme - http - standardizedURL - http://10.1.1.1 - user - <null> - + <null url> In-Title @@ -102511,150 +15806,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (7, 26) (4, 29) - ComponentNetLocation - (7, 26) (4, 29) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (33, 1) (33, 1) - ComponentPort - (-1, 0) (33, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWVd - Lw== - - URLString - http://[fe80::20a:27ff:feae:8b9e]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e]/ - user - <null> - + <null url> In-Title @@ -102663,150 +15816,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AbsoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (40, 0) - ComponentHost - (7, 32) (4, 35) - ComponentNetLocation - (7, 32) (4, 35) - ComponentParameterString - (-1, 0) (40, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (39, 1) (39, 1) - ComponentPort - (-1, 0) (39, 0) - ComponentQuery - (-1, 0) (40, 0) - ComponentResourceSpecifier - (-1, 0) (40, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::20a:27ff:feae:8b9e%en0 - IsAbsolute - - LastPathComponent - / - NetLocation - [fe80::20a:27ff:feae:8b9e%25en0] - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLData - - aHR0cDovL1tmZTgwOjoyMGE6MjdmZjpmZWFlOjhiOWUl - MjVlbjBdLw== - - URLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - absoluteURLString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - baseURLString - <null> - deletingLastPathComponent - http://[fe80::20a:27ff:feae:8b9e%25en0]/../ - deletingLastPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - fragment - <null> - host - fe80::20a:27ff:feae:8b9e%en0 - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - scheme - http - standardizedURL - http://[fe80::20a:27ff:feae:8b9e%25en0]/ - user - <null> - + <null url> In-Title @@ -102815,161 +15826,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AbsoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (175, 6) (174, 7) - ComponentHost - (7, 15) (4, 18) - ComponentNetLocation - (7, 15) (4, 18) - ComponentParameterString - (-1, 0) (53, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (22, 31) (22, 32) - ComponentPort - (-1, 0) (22, 0) - ComponentQuery - (54, 120) (53, 122) - ComponentResourceSpecifier - (54, 127) (53, 128) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FwcHMvZG9tYWlucGFyay9kb21haW5wYXJrLmNnaQ== - - Fragment-Escaped - FFFFFF - Fragment-Unescaped - FFFFFF - HasDirectoryPath - - HostName - apps5.oingo.com - IsAbsolute - - LastPathComponent - domainpark.cgi - NetLocation - apps5.oingo.com - POSIXPath - /apps/domainpark/domainpark.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /apps/domainpark/domainpark.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - QueryString-Unescaped - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - ResourceSpecifier - ?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Scheme - http - StrictPath - apps/domainpark/domainpark.cgi - URLBytes - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLData - - aHR0cDovL2FwcHM1Lm9pbmdvLmNvbS9hcHBzL2RvbWFp - bnBhcmsvZG9tYWlucGFyay5jZ2k/cz01dGhhdmVudWUm - Y2lkPVZQRVJSMkUwJnRsZD1jb20mdGxkPW5ldCZ0bGQ9 - b3JnJmRwX3A0cGlkPW9pbmdvX2luY2x1c2lvbl94bWxf - bnMxMCZkcF9scD03JmRwX2Zvcm1hdD0xLjMmZHBfY209 - X3cmZHBfYzE9I0ZGRkZGRg== - - URLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - UserName - <null> - WindowsPath - \apps\domainpark\domainpark.cgi - Out-NSResults - - absoluteString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - absoluteURLString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - baseURLString - <null> - deletingLastPathComponent - http://apps5.oingo.com/apps/domainpark/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - deletingLastPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - fragment - FFFFFF - host - apps5.oingo.com - isFileURL - NO - lastPathComponent - domainpark.cgi - password - <null> - path - /apps/domainpark/domainpark.cgi - pathComponents - - / - apps - domainpark - domainpark.cgi - - pathExtension - cgi - port - <null> - query - s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1= - relativePath - /apps/domainpark/domainpark.cgi - relativeString - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - scheme - http - standardizedURL - http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - user - <null> - + <null url> In-Title @@ -102978,159 +15836,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AbsoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (169, 0) - ComponentHost - (7, 18) (4, 21) - ComponentNetLocation - (7, 18) (4, 21) - ComponentParameterString - (32, 137) (31, 138) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (25, 6) (25, 7) - ComponentPort - (-1, 0) (25, 0) - ComponentQuery - (-1, 0) (169, 0) - ComponentResourceSpecifier - (32, 137) (31, 138) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NsaWNr - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - ad.doubleclick.net - IsAbsolute - - LastPathComponent - click - NetLocation - ad.doubleclick.net - POSIXPath - /click - ParameterString-Escaped - h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - ParameterString-Unescaped - h=v2|2e88|0|0|*|o;4461766;0-0;0;7314133;255-0|0;1407955|1406690|1;;?http://meninblack2.station.sony.com/playgames.jsp - Password - <null> - Path - /click - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Scheme - http - StrictPath - click - URLBytes - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLData - - aHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGljazto - PXYyJTdDMmU4OCU3QzAlN0MwJTdDJTJhJTdDbzs0NDYx - NzY2OzAtMDswOzczMTQxMzM7MjU1LTAlN0MwOzE0MDc5 - NTUlN0MxNDA2NjkwJTdDMTs7JTNmaHR0cDovL21lbmlu - YmxhY2syLnN0YXRpb24uc29ueS5jb20vcGxheWdhbWVz - LmpzcA== - - URLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - UserName - <null> - WindowsPath - \click - Out-NSResults - - absoluteString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - absoluteURLString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - baseURLString - <null> - deletingLastPathComponent - http://ad.doubleclick.net/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - deletingLastPathExtension - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - fragment - <null> - host - ad.doubleclick.net - isFileURL - NO - lastPathComponent - click - password - <null> - path - /click - pathComponents - - / - click - - pathExtension - - port - <null> - query - <null> - relativePath - /click - relativeString - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - scheme - http - standardizedURL - http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - user - <null> - + <null url> In-Title @@ -103139,150 +15846,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (30, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (30, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 15) (15, 15) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (30, 0) - ComponentResourceSpecifier - (-1, 0) (30, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9pbmRleC5odG1s - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9pbmRleC5odG1s - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9pbmRleC5odG1s - - URLString - http://host.com/foo/index.html - UserName - <null> - WindowsPath - \foo\index.html - Out-NSResults - - absoluteString - http://host.com/foo/index.html - absoluteURLString - http://host.com/foo/index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/ - deletingLastPathExtension - http://host.com/foo/index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/index.html - pathComponents - - / - foo - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/index.html - relativeString - http://host.com/foo/index.html - scheme - http - standardizedURL - http://host.com/foo/index.html - user - <null> - + <null url> In-Title @@ -103291,153 +15856,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AbsoluteURLString - http://host.com/foo/bar/index.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (34, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (34, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 19) (15, 19) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (34, 0) - ComponentResourceSpecifier - (-1, 0) (34, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://host.com/foo/bar/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://host.com/foo/bar/index - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2Zvby9iYXIvaW5kZXguaHRtbA== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - host.com - IsAbsolute - - LastPathComponent - index.html - NetLocation - host.com - POSIXPath - /foo/bar/index.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /foo/bar/index.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - foo/bar/index.html - URLBytes - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvaW5kZXguaHRt - bA== - - URLData - - aHR0cDovL2hvc3QuY29tL2Zvby9iYXIvaW5kZXguaHRt - bA== - - URLString - http://host.com/foo/bar/index.html - UserName - <null> - WindowsPath - \foo\bar\index.html - Out-NSResults - - absoluteString - http://host.com/foo/bar/index.html - absoluteURLString - http://host.com/foo/bar/index.html - baseURLString - <null> - deletingLastPathComponent - http://host.com/foo/bar/ - deletingLastPathExtension - http://host.com/foo/bar/index - fragment - <null> - host - host.com - isFileURL - NO - lastPathComponent - index.html - password - <null> - path - /foo/bar/index.html - pathComponents - - / - foo - bar - index.html - - pathExtension - html - port - <null> - query - <null> - relativePath - /foo/bar/index.html - relativeString - http://host.com/foo/bar/index.html - scheme - http - standardizedURL - http://host.com/foo/bar/index.html - user - <null> - + <null url> In-Title @@ -103446,150 +15866,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (28, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (23, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 18) (4, 20) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (24, 4) (23, 5) - ComponentResourceSpecifier - (24, 4) (23, 5) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - http:/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http:/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - <null> - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLData - - aHR0cDovY2dpLWJpbi9Db3VudC5jZ2k/ZnQ9MA== - - URLString - http:/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http:/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http:/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http:/cgi-bin/?ft=0 - deletingLastPathExtension - http:/cgi-bin/Count?ft=0 - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http:/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http:///cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Title @@ -103598,149 +15876,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:///// - Out-CFResults - - AbsoluteURLString - file:///// - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (-1, 0) (7, 0) - ComponentNetLocation - (-1, 0) (7, 0) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (7, 3) (4, 6) - ComponentPort - (-1, 0) (7, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - file://///../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:///// - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly8= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - // - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /// - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - // - URLBytes - - ZmlsZTovLy8vLw== - - URLData - - ZmlsZTovLy8vLw== - - URLString - file:///// - UserName - <null> - WindowsPath - \\ - Out-NSResults - - absoluteString - file:///// - absoluteURLString - file:///// - baseURLString - <null> - deletingLastPathComponent - file://///../ - deletingLastPathExtension - file:///// - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - / - password - <null> - path - // - pathComponents - - / - / - - pathExtension - - port - <null> - query - <null> - relativePath - // - relativeString - file:///// - scheme - file - standardizedURL - file:///// - user - <null> - + <null url> In-Title @@ -103749,149 +15886,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/Volumes - Out-CFResults - - AbsoluteURLString - file:/Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 8) (4, 9) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/Volumes - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L1ZvbHVtZXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - Volumes - URLBytes - - ZmlsZTovVm9sdW1lcw== - - URLData - - ZmlsZTovVm9sdW1lcw== - - URLString - file:/Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - file:/Volumes - absoluteURLString - file:/Volumes - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/Volumes - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - file:/Volumes - scheme - file - standardizedURL - file:///Volumes - user - <null> - + <null url> In-Title @@ -103900,145 +15896,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /Volumes - Out-CFResults - - AbsoluteURLString - /Volumes - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 8) (0, 8) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - / - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - /Volumes - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - Volumes - NetLocation - <null> - POSIXPath - /Volumes - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Volumes - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - Volumes - URLBytes - - L1ZvbHVtZXM= - - URLData - - L1ZvbHVtZXM= - - URLString - /Volumes - UserName - <null> - WindowsPath - \Volumes - Out-NSResults - - absoluteString - /Volumes - absoluteURLString - /Volumes - baseURLString - <null> - deletingLastPathComponent - / - deletingLastPathExtension - /Volumes - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - Volumes - password - <null> - path - /Volumes - pathComponents - - / - Volumes - - pathExtension - - port - <null> - query - <null> - relativePath - /Volumes - relativeString - /Volumes - scheme - <null> - standardizedURL - /Volumes - user - <null> - + <null url> In-Title @@ -104047,144 +15906,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url . - Out-CFResults - - AbsoluteURLString - . - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - . - NetLocation - <null> - POSIXPath - . - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - . - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - . - URLBytes - - Lg== - - URLData - - Lg== - - URLString - . - UserName - <null> - WindowsPath - . - Out-NSResults - - absoluteString - . - absoluteURLString - . - baseURLString - <null> - deletingLastPathComponent - ../ - deletingLastPathExtension - - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - . - password - <null> - path - . - pathComponents - - . - - pathExtension - - port - <null> - query - <null> - relativePath - . - relativeString - . - scheme - <null> - standardizedURL - - user - <null> - + <null url> In-Title @@ -104193,144 +15916,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./a - Out-CFResults - - AbsoluteURLString - a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - a - URLBytes - - YQ== - - URLData - - YQ== - - URLString - a - UserName - <null> - WindowsPath - a - Out-NSResults - - absoluteString - a - absoluteURLString - a - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - a - pathComponents - - a - - pathExtension - - port - <null> - query - <null> - relativePath - a - relativeString - a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -104339,144 +15926,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../a - Out-CFResults - - AbsoluteURLString - a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - a - URLBytes - - YQ== - - URLData - - YQ== - - URLString - a - UserName - <null> - WindowsPath - a - Out-NSResults - - absoluteString - a - absoluteURLString - a - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - a - pathComponents - - a - - pathExtension - - port - <null> - query - <null> - relativePath - a - relativeString - a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -104485,144 +15936,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../../a - Out-CFResults - - AbsoluteURLString - a - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - ./ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - a - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - a - NetLocation - <null> - POSIXPath - a - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - a - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - a - URLBytes - - YQ== - - URLData - - YQ== - - URLString - a - UserName - <null> - WindowsPath - a - Out-NSResults - - absoluteString - a - absoluteURLString - a - baseURLString - <null> - deletingLastPathComponent - ./ - deletingLastPathExtension - a - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - a - password - <null> - path - a - pathComponents - - a - - pathExtension - - port - <null> - query - <null> - relativePath - a - relativeString - a - scheme - <null> - standardizedURL - a - user - <null> - + <null url> In-Title @@ -104631,142 +15946,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file: - Out-CFResults - - AbsoluteURLString - file: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTo= - - URLData - - ZmlsZTo= - - URLString - file: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file: - absoluteURLString - file: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file: - scheme - file - standardizedURL - file: - user - <null> - + <null url> In-Title @@ -104775,144 +15956,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url / - Out-CFResults - - AbsoluteURLString - / - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1, 0) - ComponentHost - (-1, 0) (0, 0) - ComponentNetLocation - (-1, 0) (0, 0) - ComponentParameterString - (-1, 0) (1, 0) - ComponentPassword - (-1, 0) (0, 0) - ComponentPath - (0, 1) (0, 1) - ComponentPort - (-1, 0) (0, 0) - ComponentQuery - (-1, 0) (1, 0) - ComponentResourceSpecifier - (-1, 0) (1, 0) - ComponentScheme - (-1, 0) (0, 0) - ComponentUser - (-1, 0) (0, 0) - ComponentUserInfo - (-1, 0) (0, 0) - DeletingLastPathComponent - /../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - / - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - / - NetLocation - <null> - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - <null> - StrictPath - - URLBytes - - Lw== - - URLData - - Lw== - - URLString - / - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - / - absoluteURLString - / - baseURLString - <null> - deletingLastPathComponent - /../ - deletingLastPathExtension - / - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - / - scheme - <null> - standardizedURL - / - user - <null> - + <null url> In-Title @@ -104921,142 +15966,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http: - Out-CFResults - - AbsoluteURLString - http: - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (-1, 0) (5, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDo= - - URLData - - aHR0cDo= - - URLString - http: - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - http: - absoluteURLString - http: - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http: - scheme - http - standardizedURL - http: - user - <null> - + <null url> In-Base @@ -105067,149 +15978,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url unescaped space - Out-CFResults - - AbsoluteURLString - http://test.com/unescaped%20space - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (31, 0) - ComponentHost - (7, 8) (4, 11) - ComponentNetLocation - (7, 8) (4, 11) - ComponentParameterString - (-1, 0) (31, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (15, 16) (15, 16) - ComponentPort - (-1, 0) (15, 0) - ComponentQuery - (-1, 0) (31, 0) - ComponentResourceSpecifier - (-1, 0) (31, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://test.com/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://test.com/unescaped%20space - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3VuZXNjYXBlZCBzcGFjZQ== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - test.com - IsAbsolute - - LastPathComponent - unescaped space - NetLocation - test.com - POSIXPath - /unescaped space - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /unescaped%20space - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - unescaped%20space - URLBytes - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCBzcGFjZQ== - - URLData - - aHR0cDovL3Rlc3QuY29tL3VuZXNjYXBlZCUyMHNwYWNl - - URLString - http://test.com/unescaped%20space - UserName - <null> - WindowsPath - \unescaped space - Out-NSResults - - absoluteString - http://test.com/unescaped%20space - absoluteURLString - http://test.com/unescaped%20space - baseURLString - <null> - deletingLastPathComponent - http://test.com/ - deletingLastPathExtension - http://test.com/unescaped%20space - fragment - <null> - host - test.com - isFileURL - NO - lastPathComponent - unescaped space - password - <null> - path - /unescaped space - pathComponents - - / - unescaped space - - pathExtension - - port - <null> - query - <null> - relativePath - /unescaped space - relativeString - http://test.com/unescaped%20space - scheme - http - standardizedURL - http://test.com/unescaped%20space - user - <null> - + <null url> In-Base @@ -105220,154 +15990,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url #zoo - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 12) (59, 13) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (43, 5) (42, 7) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 10) (32, 11) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (49, 10) (48, 12) - ComponentResourceSpecifier - (43, 29) (42, 30) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment%23zoo - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - fragment%23zoo - Fragment-Unescaped - fragment#zoo - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - path - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/path - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - /some/path - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - ;param?name=value#fragment%23zoo - Scheme - http - StrictPath - some/path - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQjem9v - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQlMjN6b28= - - URLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - UserName - user - WindowsPath - \some\path - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment%23zoo - deletingLastPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - fragment - fragment%23zoo - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - /some/path - relativeString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment%23zoo - user - user - + <null url> In-Base @@ -105378,153 +16002,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (46, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (46, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 14) (32, 14) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (46, 0) - ComponentResourceSpecifier - (-1, 0) (46, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/joe/blow - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /some/joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - some/joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdw== - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdw== - - URLString - http://user:pass@hostname.com:42/some/joe/blow - UserName - user - WindowsPath - \some\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/ - deletingLastPathExtension - http://user:pass@hostname.com:42/some/joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /some/joe/blow - relativeString - http://user:pass@hostname.com:42/some/joe/blow - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/joe/blow - user - user - + <null url> In-Base @@ -105535,153 +16014,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (55, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (46, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 14) (32, 15) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (47, 8) (46, 9) - ComponentResourceSpecifier - (47, 8) (46, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/?john=doe - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/joe/blow?john=doe - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /some/joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - john=doe - QueryString-Unescaped - john=doe - ResourceSpecifier - ?john=doe - Scheme - http - StrictPath - some/joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdz9qb2huPWRvZQ== - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdz9qb2huPWRvZQ== - - URLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - UserName - user - WindowsPath - \some\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/?john=doe - deletingLastPathExtension - http://user:pass@hostname.com:42/some/joe/blow?john=doe - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - john=doe - relativePath - /some/joe/blow - relativeString - http://user:pass@hostname.com:42/some/joe/blow?john=doe - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/joe/blow?john=doe - user - user - + <null url> In-Base @@ -105692,153 +16026,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (46, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (46, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 14) (32, 14) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (46, 0) - ComponentResourceSpecifier - (-1, 0) (46, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/joe/blow - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /some/joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - some/joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdw== - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdw== - - URLString - http://user:pass@hostname.com:42/some/joe/blow - UserName - user - WindowsPath - \some\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/ - deletingLastPathExtension - http://user:pass@hostname.com:42/some/joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /some/joe/blow - relativeString - http://user:pass@hostname.com:42/some/joe/blow - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/joe/blow - user - user - + <null url> In-Base @@ -105849,152 +16038,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 9) (32, 9) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/joe/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/joe/blow - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lL2Jsb3c= - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lL2Jsb3c= - - URLString - http://user:pass@hostname.com:42/joe/blow - UserName - user - WindowsPath - \joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/joe/ - deletingLastPathExtension - http://user:pass@hostname.com:42/joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe/blow - relativeString - http://user:pass@hostname.com:42/joe/blow - scheme - http - standardizedURL - http://user:pass@hostname.com:42/joe/blow - user - user - + <null url> In-Base @@ -106005,152 +16050,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /joe/blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe/blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 9) (32, 9) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/joe/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/joe/blow - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2pvZS9ibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lL2Jsb3c= - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lL2Jsb3c= - - URLString - http://user:pass@hostname.com:42/joe/blow - UserName - user - WindowsPath - \joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe/blow - absoluteURLString - http://user:pass@hostname.com:42/joe/blow - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/joe/ - deletingLastPathExtension - http://user:pass@hostname.com:42/joe/blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /joe/blow - pathComponents - - / - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe/blow - relativeString - http://user:pass@hostname.com:42/joe/blow - scheme - http - standardizedURL - http://user:pass@hostname.com:42/joe/blow - user - user - + <null url> In-Base @@ -106161,153 +16062,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (47, 5) (46, 6) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (46, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 14) (32, 15) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (46, 0) - ComponentResourceSpecifier - (47, 5) (46, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/#frag2 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/joe/blow#frag2 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvam9lL2Jsb3c= - - Fragment-Escaped - frag2 - Fragment-Unescaped - frag2 - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/joe/blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /some/joe/blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #frag2 - Scheme - http - StrictPath - some/joe/blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdyNmcmFnMg== - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9qb2UvYmxvdyNmcmFnMg== - - URLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - UserName - user - WindowsPath - \some\joe\blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - absoluteURLString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/joe/#frag2 - deletingLastPathExtension - http://user:pass@hostname.com:42/some/joe/blow#frag2 - fragment - frag2 - host - hostname.com - isFileURL - NO - lastPathComponent - blow - password - pass - path - /some/joe/blow - pathComponents - - / - some - joe - blow - - pathExtension - - port - 42 - query - <null> - relativePath - /some/joe/blow - relativeString - http://user:pass@hostname.com:42/some/joe/blow#frag2 - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/joe/blow#frag2 - user - user - + <null url> In-Base @@ -106318,150 +16074,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AbsoluteURLString - ftp://my.server.com/some/document - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (33, 0) - ComponentHost - (6, 13) (3, 16) - ComponentNetLocation - (6, 13) (3, 16) - ComponentParameterString - (-1, 0) (33, 0) - ComponentPassword - (-1, 0) (6, 0) - ComponentPath - (19, 14) (19, 14) - ComponentPort - (-1, 0) (19, 0) - ComponentQuery - (-1, 0) (33, 0) - ComponentResourceSpecifier - (-1, 0) (33, 0) - ComponentScheme - (0, 3) (0, 6) - ComponentUser - (-1, 0) (6, 0) - ComponentUserInfo - (-1, 0) (6, 0) - DeletingLastPathComponent - ftp://my.server.com/some/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - ftp://my.server.com/some/document - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvZG9jdW1lbnQ= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - my.server.com - IsAbsolute - - LastPathComponent - document - NetLocation - my.server.com - POSIXPath - /some/document - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /some/document - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - ftp - StrictPath - some/document - URLBytes - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLData - - ZnRwOi8vbXkuc2VydmVyLmNvbS9zb21lL2RvY3VtZW50 - - URLString - ftp://my.server.com/some/document - UserName - <null> - WindowsPath - \some\document - Out-NSResults - - absoluteString - ftp://my.server.com/some/document - absoluteURLString - ftp://my.server.com/some/document - baseURLString - <null> - deletingLastPathComponent - ftp://my.server.com/some/ - deletingLastPathExtension - ftp://my.server.com/some/document - fragment - <null> - host - my.server.com - isFileURL - NO - lastPathComponent - document - password - <null> - path - /some/document - pathComponents - - / - some - document - - pathExtension - - port - <null> - query - <null> - relativePath - /some/document - relativeString - ftp://my.server.com/some/document - scheme - ftp - standardizedURL - ftp://my.server.com/some/document - user - <null> - + <null url> In-Base @@ -106472,151 +16086,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /joe:blow - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/joe:blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 9) (32, 9) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/joe:blow - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2pvZTpibG93 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - joe:blow - NetLocation - user:pass@hostname.com:42 - POSIXPath - /joe:blow - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - pass - Path - /joe:blow - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - joe:blow - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lOmJsb3c= - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - am9lOmJsb3c= - - URLString - http://user:pass@hostname.com:42/joe:blow - UserName - user - WindowsPath - \joe:blow - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/joe:blow - absoluteURLString - http://user:pass@hostname.com:42/joe:blow - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/ - deletingLastPathExtension - http://user:pass@hostname.com:42/joe:blow - fragment - <null> - host - hostname.com - isFileURL - NO - lastPathComponent - joe:blow - password - pass - path - /joe:blow - pathComponents - - / - joe:blow - - pathExtension - - port - 42 - query - <null> - relativePath - /joe:blow - relativeString - http://user:pass@hostname.com:42/joe:blow - scheme - http - standardizedURL - http://user:pass@hostname.com:42/joe:blow - user - user - + <null url> In-Base @@ -106627,142 +16098,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url joe:blow - Out-CFResults - - AbsoluteURLString - joe:blow - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (4, 4) (3, 5) - ComponentScheme - (0, 3) (0, 4) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - blow - Scheme - joe - StrictPath - <null> - URLBytes - - am9lOmJsb3c= - - URLData - - am9lOmJsb3c= - - URLString - joe:blow - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - joe:blow - absoluteURLString - joe:blow - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - joe:blow - scheme - joe - standardizedURL - joe:blow - user - <null> - + <null url> In-Base @@ -106773,154 +16110,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 8) (59, 9) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (43, 5) (42, 7) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 10) (32, 11) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (49, 10) (48, 12) - ComponentResourceSpecifier - (43, 25) (42, 26) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - fragment - Fragment-Unescaped - fragment - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - path - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/path - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - /some/path - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - ;param?name=value#fragment - Scheme - http - StrictPath - some/path - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQ= - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQ= - - URLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - UserName - user - WindowsPath - \some\path - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment - deletingLastPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - fragment - fragment - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - /some/path - relativeString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - user - user - + <null url> In-Base @@ -106931,154 +16122,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ??? - Out-CFResults - - AbsoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (60, 11) (59, 12) - ComponentHost - (17, 12) (16, 14) - ComponentNetLocation - (7, 25) (4, 28) - ComponentParameterString - (43, 5) (42, 7) - ComponentPassword - (12, 4) (11, 6) - ComponentPath - (32, 10) (32, 11) - ComponentPort - (30, 2) (29, 3) - ComponentQuery - (49, 10) (48, 12) - ComponentResourceSpecifier - (43, 28) (42, 29) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (7, 4) (4, 8) - ComponentUserInfo - (7, 9) (4, 13) - DeletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment??? - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3NvbWUvcGF0aA== - - Fragment-Escaped - fragment??? - Fragment-Unescaped - fragment??? - HasDirectoryPath - - HostName - hostname.com - IsAbsolute - - LastPathComponent - path - NetLocation - user:pass@hostname.com:42 - POSIXPath - /some/path - ParameterString-Escaped - param - ParameterString-Unescaped - param - Password - pass - Path - /some/path - PathExtension - <null> - PortNumber - 42 - QueryString-Escaped - name=value - QueryString-Unescaped - name=value - ResourceSpecifier - ;param?name=value#fragment??? - Scheme - http - StrictPath - some/path - URLBytes - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQ/Pz8= - - URLData - - aHR0cDovL3VzZXI6cGFzc0Bob3N0bmFtZS5jb206NDIv - c29tZS9wYXRoO3BhcmFtP25hbWU9dmFsdWUjZnJhZ21l - bnQ/Pz8= - - URLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - UserName - user - WindowsPath - \some\path - Out-NSResults - - absoluteString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - absoluteURLString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - baseURLString - <null> - deletingLastPathComponent - http://user:pass@hostname.com:42/some/;param?name=value#fragment??? - deletingLastPathExtension - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - fragment - fragment??? - host - hostname.com - isFileURL - NO - lastPathComponent - path - password - pass - path - /some/path - pathComponents - - / - some - path - - pathExtension - - port - 42 - query - name=value - relativePath - /some/path - relativeString - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - scheme - http - standardizedURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment??? - user - user - + <null url> In-Base @@ -107089,142 +16134,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g:h - Out-CFResults - - AbsoluteURLString - g:h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (2, 1) (1, 2) - ComponentScheme - (0, 1) (0, 2) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - h - Scheme - g - StrictPath - <null> - URLBytes - - Zzpo - - URLData - - Zzpo - - URLString - g:h - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - g:h - absoluteURLString - g:h - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - g:h - scheme - g - standardizedURL - g:h - user - <null> - + <null url> In-Base @@ -107235,151 +16146,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c= - - URLData - - aHR0cDovL2EvYi9jL2c= - - URLString - http://a/b/c/g - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Base @@ -107390,151 +16158,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c= - - URLData - - aHR0cDovL2EvYi9jL2c= - - URLString - http://a/b/c/g - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Base @@ -107545,151 +16170,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g/ - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/ - URLBytes - - aHR0cDovL2EvYi9jL2cv - - URLData - - aHR0cDovL2EvYi9jL2cv - - URLString - http://a/b/c/g/ - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g/ - scheme - http - standardizedURL - http://a/b/c/g/ - user - <null> - + <null url> In-Base @@ -107700,149 +16182,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -107853,145 +16194,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url //g - Out-CFResults - - AbsoluteURLString - http://g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (8, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (8, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 0) (8, 0) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (8, 0) - ComponentResourceSpecifier - (-1, 0) (8, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://g../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - g - IsAbsolute - - LastPathComponent - - NetLocation - g - POSIXPath - - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - <null> - URLBytes - - aHR0cDovL2c= - - URLData - - aHR0cDovL2c= - - URLString - http://g - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://g - absoluteURLString - http://g - baseURLString - <null> - deletingLastPathComponent - http://g../ - deletingLastPathExtension - http://g - fragment - <null> - host - g - isFileURL - NO - lastPathComponent - - password - <null> - path - - pathComponents - - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - http://g - scheme - http - standardizedURL - http://g - user - <null> - + <null url> In-Base @@ -108002,151 +16206,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q?y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 3) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (17, 3) (16, 4) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;p?q?y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/d;p?q?y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - d - NetLocation - a - POSIXPath - /b/c/d - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - /b/c/d - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q?y - QueryString-Unescaped - q?y - ResourceSpecifier - ;p?q?y - Scheme - http - StrictPath - b/c/d - URLBytes - - aHR0cDovL2EvYi9jL2Q7cD9xP3k= - - URLData - - aHR0cDovL2EvYi9jL2Q7cD9xP3k= - - URLString - http://a/b/c/d;p?q?y - UserName - <null> - WindowsPath - \b\c\d - Out-NSResults - - absoluteString - http://a/b/c/d;p?q?y - absoluteURLString - http://a/b/c/d;p?q?y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;p?q?y - deletingLastPathExtension - http://a/b/c/d;p?q?y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q?y - relativePath - /b/c/d - relativeString - http://a/b/c/d;p?q?y - scheme - http - standardizedURL - http://a/b/c/d;p?q?y - user - <null> - + <null url> In-Base @@ -108157,151 +16218,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g?y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 1) (14, 2) - ComponentResourceSpecifier - (15, 1) (14, 2) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eQ== - - URLData - - aHR0cDovL2EvYi9jL2c/eQ== - - URLString - http://a/b/c/g?y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y - absoluteURLString - http://a/b/c/g?y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y - deletingLastPathExtension - http://a/b/c/g?y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - /b/c/g - relativeString - http://a/b/c/g?y - scheme - http - standardizedURL - http://a/b/c/g?y - user - <null> - + <null url> In-Base @@ -108312,151 +16230,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url #s - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q#s - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 1) (18, 2) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 3) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (17, 1) (16, 3) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;p?q#s - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/d;p?q#s - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - d - NetLocation - a - POSIXPath - /b/c/d - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - /b/c/d - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - ;p?q#s - Scheme - http - StrictPath - b/c/d - URLBytes - - aHR0cDovL2EvYi9jL2Q7cD9xI3M= - - URLData - - aHR0cDovL2EvYi9jL2Q7cD9xI3M= - - URLString - http://a/b/c/d;p?q#s - UserName - <null> - WindowsPath - \b\c\d - Out-NSResults - - absoluteString - http://a/b/c/d;p?q#s - absoluteURLString - http://a/b/c/d;p?q#s - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;p?q#s - deletingLastPathExtension - http://a/b/c/d;p?q#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - /b/c/d - relativeString - http://a/b/c/d;p?q#s - scheme - http - standardizedURL - http://a/b/c/d;p?q#s - user - <null> - + <null url> In-Base @@ -108467,151 +16242,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 1) (14, 2) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 1) (14, 2) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcw== - - URLData - - aHR0cDovL2EvYi9jL2cjcw== - - URLString - http://a/b/c/g#s - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s - absoluteURLString - http://a/b/c/g#s - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s - deletingLastPathExtension - http://a/b/c/g#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s - scheme - http - standardizedURL - http://a/b/c/g#s - user - <null> - + <null url> In-Base @@ -108622,151 +16254,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y#s - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (17, 1) (16, 2) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 1) (14, 3) - ComponentResourceSpecifier - (15, 3) (14, 4) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y#s - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y#s - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ?y#s - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eSNz - - URLData - - aHR0cDovL2EvYi9jL2c/eSNz - - URLString - http://a/b/c/g?y#s - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y#s - absoluteURLString - http://a/b/c/g?y#s - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y#s - deletingLastPathExtension - http://a/b/c/g?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - /b/c/g - relativeString - http://a/b/c/g?y#s - scheme - http - standardizedURL - http://a/b/c/g?y#s - user - <null> - + <null url> In-Base @@ -108777,151 +16266,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q;x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 3) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (17, 3) (16, 4) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;p?q;x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/d;p?q;x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - d - NetLocation - a - POSIXPath - /b/c/d - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - /b/c/d - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q;x - QueryString-Unescaped - q;x - ResourceSpecifier - ;p?q;x - Scheme - http - StrictPath - b/c/d - URLBytes - - aHR0cDovL2EvYi9jL2Q7cD9xO3g= - - URLData - - aHR0cDovL2EvYi9jL2Q7cD9xO3g= - - URLString - http://a/b/c/d;p?q;x - UserName - <null> - WindowsPath - \b\c\d - Out-NSResults - - absoluteString - http://a/b/c/d;p?q;x - absoluteURLString - http://a/b/c/d;p?q;x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;p?q;x - deletingLastPathExtension - http://a/b/c/d;p?q;x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q;x - relativePath - /b/c/d - relativeString - http://a/b/c/d;p?q;x - scheme - http - standardizedURL - http://a/b/c/d;p?q;x - user - <null> - + <null url> In-Base @@ -108932,151 +16278,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g;x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 2) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (15, 1) (14, 2) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eA== - - URLData - - aHR0cDovL2EvYi9jL2c7eA== - - URLString - http://a/b/c/g;x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x - absoluteURLString - http://a/b/c/g;x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x - deletingLastPathExtension - http://a/b/c/g;x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x - scheme - http - standardizedURL - http://a/b/c/g;x - user - <null> - + <null url> In-Base @@ -109087,151 +16290,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g;x?y#s - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x?y#s - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (19, 1) (18, 2) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 3) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (17, 1) (16, 3) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x?y#s - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x?y#s - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s - Fragment-Unescaped - s - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x - ParameterString-Unescaped - x - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y - QueryString-Unescaped - y - ResourceSpecifier - ;x?y#s - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD95I3M= - - URLData - - aHR0cDovL2EvYi9jL2c7eD95I3M= - - URLString - http://a/b/c/g;x?y#s - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x?y#s - absoluteURLString - http://a/b/c/g;x?y#s - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x?y#s - deletingLastPathExtension - http://a/b/c/g;x?y#s - fragment - s - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y - relativePath - /b/c/g - relativeString - http://a/b/c/g;x?y#s - scheme - http - standardizedURL - http://a/b/c/g;x?y#s - user - <null> - + <null url> In-Base @@ -109242,151 +16302,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url - Out-CFResults - - AbsoluteURLString - http://a/b/c/d;p?q - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (18, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 1) (14, 3) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (17, 1) (16, 2) - ComponentResourceSpecifier - (15, 3) (14, 4) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;p?q - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/d;p?q - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9k - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - d - NetLocation - a - POSIXPath - /b/c/d - ParameterString-Escaped - p - ParameterString-Unescaped - p - Password - <null> - Path - /b/c/d - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - q - QueryString-Unescaped - q - ResourceSpecifier - ;p?q - Scheme - http - StrictPath - b/c/d - URLBytes - - aHR0cDovL2EvYi9jL2Q7cD9x - - URLData - - aHR0cDovL2EvYi9jL2Q7cD9x - - URLString - http://a/b/c/d;p?q - UserName - <null> - WindowsPath - \b\c\d - Out-NSResults - - absoluteString - http://a/b/c/d;p?q - absoluteURLString - http://a/b/c/d;p?q - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;p?q - deletingLastPathExtension - http://a/b/c/d;p?q - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - d - password - <null> - path - /b/c/d - pathComponents - - / - b - c - d - - pathExtension - - port - <null> - query - q - relativePath - /b/c/d - relativeString - http://a/b/c/d;p?q - scheme - http - standardizedURL - http://a/b/c/d;p?q - user - <null> - + <null url> In-Base @@ -109397,150 +16314,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url . - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 5) (8, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - c - NetLocation - a - POSIXPath - /b/c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/ - URLBytes - - aHR0cDovL2EvYi9jLw== - - URLData - - aHR0cDovL2EvYi9jLw== - - URLString - http://a/b/c/ - UserName - <null> - WindowsPath - \b\c - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c - relativeString - http://a/b/c/ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Base @@ -109551,150 +16326,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 5) (8, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - c - NetLocation - a - POSIXPath - /b/c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/ - URLBytes - - aHR0cDovL2EvYi9jLw== - - URLData - - aHR0cDovL2EvYi9jLw== - - URLString - http://a/b/c/ - UserName - <null> - WindowsPath - \b\c - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c - relativeString - http://a/b/c/ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Base @@ -109705,149 +16338,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url .. - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 3) (8, 3) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - b - NetLocation - a - POSIXPath - /b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/ - URLBytes - - aHR0cDovL2EvYi8= - - URLData - - aHR0cDovL2EvYi8= - - URLString - http://a/b/ - UserName - <null> - WindowsPath - \b - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/b/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - /b - relativeString - http://a/b/ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Base @@ -109858,149 +16350,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../ - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 3) (8, 3) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - b - NetLocation - a - POSIXPath - /b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/ - URLBytes - - aHR0cDovL2EvYi8= - - URLData - - aHR0cDovL2EvYi8= - - URLString - http://a/b/ - UserName - <null> - WindowsPath - \b - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/b/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - /b - relativeString - http://a/b/ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Base @@ -110011,150 +16362,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 4) (8, 4) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/g - URLBytes - - aHR0cDovL2EvYi9n - - URLData - - aHR0cDovL2EvYi9n - - URLString - http://a/b/g - UserName - <null> - WindowsPath - \b\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/g - relativeString - http://a/b/g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Base @@ -110165,148 +16374,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../.. - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 1) (8, 1) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - / - NetLocation - a - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2Ev - - URLData - - aHR0cDovL2Ev - - URLString - http://a/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - <null> - deletingLastPathComponent - http://a/../ - deletingLastPathExtension - http://a/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://a/ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Base @@ -110317,148 +16386,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../../ - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 1) (8, 1) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - / - NetLocation - a - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2Ev - - URLData - - aHR0cDovL2Ev - - URLString - http://a/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - <null> - deletingLastPathComponent - http://a/../ - deletingLastPathExtension - http://a/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://a/ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Base @@ -110469,149 +16398,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -110622,149 +16410,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -110775,149 +16422,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../../../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -110928,149 +16434,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /./g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -111081,149 +16446,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -111234,151 +16458,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - /b/c/g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g. - URLBytes - - aHR0cDovL2EvYi9jL2cu - - URLData - - aHR0cDovL2EvYi9jL2cu - - URLString - http://a/b/c/g. - UserName - <null> - WindowsPath - \b\c\g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g. - relativeString - http://a/b/c/g. - scheme - http - standardizedURL - http://a/b/c/g. - user - <null> - + <null url> In-Base @@ -111389,151 +16470,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url .g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - /b/c/.g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.g - URLBytes - - aHR0cDovL2EvYi9jLy5n - - URLData - - aHR0cDovL2EvYi9jLy5n - - URLString - http://a/b/c/.g - UserName - <null> - WindowsPath - \b\c\.g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.g - relativeString - http://a/b/c/.g - scheme - http - standardizedURL - http://a/b/c/.g - user - <null> - + <null url> In-Base @@ -111544,151 +16482,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - /b/c/g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g.. - URLBytes - - aHR0cDovL2EvYi9jL2cuLg== - - URLData - - aHR0cDovL2EvYi9jL2cuLg== - - URLString - http://a/b/c/g.. - UserName - <null> - WindowsPath - \b\c\g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g.. - relativeString - http://a/b/c/g.. - scheme - http - standardizedURL - http://a/b/c/g.. - user - <null> - + <null url> In-Base @@ -111699,151 +16494,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - /b/c/..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/..g - URLBytes - - aHR0cDovL2EvYi9jLy4uZw== - - URLData - - aHR0cDovL2EvYi9jLy4uZw== - - URLString - http://a/b/c/..g - UserName - <null> - WindowsPath - \b\c\..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - /b/c/..g - relativeString - http://a/b/c/..g - scheme - http - standardizedURL - http://a/b/c/..g - user - <null> - + <null url> In-Base @@ -111854,150 +16506,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 4) (8, 4) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/g - URLBytes - - aHR0cDovL2EvYi9n - - URLData - - aHR0cDovL2EvYi9n - - URLString - http://a/b/g - UserName - <null> - WindowsPath - \b\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/g - relativeString - http://a/b/g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Base @@ -112008,151 +16518,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/ - URLBytes - - aHR0cDovL2EvYi9jL2cv - - URLData - - aHR0cDovL2EvYi9jL2cv - - URLString - http://a/b/c/g/ - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g/ - scheme - http - standardizedURL - http://a/b/c/g/ - user - <null> - + <null url> In-Base @@ -112163,152 +16530,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/h - URLBytes - - aHR0cDovL2EvYi9jL2cvaA== - - URLData - - aHR0cDovL2EvYi9jL2cvaA== - - URLString - http://a/b/c/g/h - UserName - <null> - WindowsPath - \b\c\g\h - Out-NSResults - - absoluteString - http://a/b/c/g/h - absoluteURLString - http://a/b/c/g/h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/ - deletingLastPathExtension - http://a/b/c/g/h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/h - pathComponents - - / - b - c - g - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/h - relativeString - http://a/b/c/g/h - scheme - http - standardizedURL - http://a/b/c/g/h - user - <null> - + <null url> In-Base @@ -112319,151 +16542,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9o - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/h - URLBytes - - aHR0cDovL2EvYi9jL2g= - - URLData - - aHR0cDovL2EvYi9jL2g= - - URLString - http://a/b/c/h - UserName - <null> - WindowsPath - \b\c\h - Out-NSResults - - absoluteString - http://a/b/c/h - absoluteURLString - http://a/b/c/h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/h - pathComponents - - / - b - c - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/h - relativeString - http://a/b/c/h - scheme - http - standardizedURL - http://a/b/c/h - user - <null> - + <null url> In-Base @@ -112474,151 +16554,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (22, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 7) (14, 8) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (22, 0) - ComponentResourceSpecifier - (15, 7) (14, 8) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/./y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/./y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLString - http://a/b/c/g;x=1/./y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/./y - deletingLastPathExtension - http://a/b/c/g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/./y - scheme - http - standardizedURL - http://a/b/c/g;x=1/./y - user - <null> - + <null url> In-Base @@ -112629,151 +16566,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 8) (14, 9) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (15, 8) (14, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/../y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/../y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLString - http://a/b/c/g;x=1/../y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/../y - deletingLastPathExtension - http://a/b/c/g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/../y - scheme - http - standardizedURL - http://a/b/c/g;x=1/../y - user - <null> - + <null url> In-Base @@ -112784,151 +16578,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 5) (14, 6) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLString - http://a/b/c/g?y/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/./x - deletingLastPathExtension - http://a/b/c/g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/./x - scheme - http - standardizedURL - http://a/b/c/g?y/./x - user - <null> - + <null url> In-Base @@ -112939,151 +16590,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 6) (14, 7) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLString - http://a/b/c/g?y/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/../x - deletingLastPathExtension - http://a/b/c/g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/../x - scheme - http - standardizedURL - http://a/b/c/g?y/../x - user - <null> - + <null url> In-Base @@ -113094,151 +16602,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 5) (14, 6) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLString - http://a/b/c/g#s/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/./x - deletingLastPathExtension - http://a/b/c/g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/./x - scheme - http - standardizedURL - http://a/b/c/g#s/./x - user - <null> - + <null url> In-Base @@ -113249,151 +16614,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 6) (14, 7) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLString - http://a/b/c/g#s/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/../x - deletingLastPathExtension - http://a/b/c/g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/../x - scheme - http - standardizedURL - http://a/b/c/g#s/../x - user - <null> - + <null url> In-Base @@ -113404,151 +16626,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c= - - URLData - - aHR0cDovL2EvYi9jL2c= - - URLString - http://a/b/c/g - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Base @@ -113559,142 +16638,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:g - Out-CFResults - - AbsoluteURLString - file:g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (-1, 0) - ComponentHost - (-1, 0) (-1, 0) - ComponentNetLocation - (-1, 0) (-1, 0) - ComponentParameterString - (-1, 0) (-1, 0) - ComponentPassword - (-1, 0) (-1, 0) - ComponentPath - (-1, 0) (-1, 0) - ComponentPort - (-1, 0) (-1, 0) - ComponentQuery - (-1, 0) (-1, 0) - ComponentResourceSpecifier - (5, 1) (4, 2) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (-1, 0) - ComponentUserInfo - (-1, 0) (-1, 0) - DeletingLastPathComponent - <null> - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - <null> - DeletingPathExtension-BaseURL - <null> - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - - NetLocation - <null> - POSIXPath - <null> - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - <null> - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - g - Scheme - file - StrictPath - <null> - URLBytes - - ZmlsZTpn - - URLData - - ZmlsZTpn - - URLString - file:g - UserName - <null> - WindowsPath - <null> - Out-NSResults - - absoluteString - file:g - absoluteURLString - file:g - baseURLString - <null> - deletingLastPathComponent - <null> - deletingLastPathExtension - <null> - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - - password - <null> - path - - pathComponents - <null> - pathExtension - - port - <null> - query - <null> - relativePath - - relativeString - file:g - scheme - file - standardizedURL - file:g - user - <null> - + <null url> In-Base @@ -113705,149 +16650,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:/g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Base @@ -113858,149 +16662,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url file:/g - Out-CFResults - - AbsoluteURLString - file:/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (7, 0) - ComponentHost - (-1, 0) (5, 0) - ComponentNetLocation - (-1, 0) (5, 0) - ComponentParameterString - (-1, 0) (7, 0) - ComponentPassword - (-1, 0) (5, 0) - ComponentPath - (5, 2) (4, 3) - ComponentPort - (-1, 0) (5, 0) - ComponentQuery - (-1, 0) (7, 0) - ComponentResourceSpecifier - (-1, 0) (7, 0) - ComponentScheme - (0, 4) (0, 5) - ComponentUser - (-1, 0) (5, 0) - ComponentUserInfo - (-1, 0) (5, 0) - DeletingLastPathComponent - file:/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - file:/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - <null> - IsAbsolute - - LastPathComponent - g - NetLocation - <null> - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - file - StrictPath - g - URLBytes - - ZmlsZTovZw== - - URLData - - ZmlsZTovZw== - - URLString - file:/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - file:/g - absoluteURLString - file:/g - baseURLString - <null> - deletingLastPathComponent - file:/ - deletingLastPathExtension - file:/g - fragment - <null> - host - <null> - isFileURL - YES - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - file:/g - scheme - file - standardizedURL - file:///g - user - <null> - + <null url> In-Base @@ -114011,152 +16674,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /Images/foo.gif - Out-CFResults - - AbsoluteURLString - http://macosx.apple.com/Images/foo.gif - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (38, 0) - ComponentHost - (7, 16) (4, 19) - ComponentNetLocation - (7, 16) (4, 19) - ComponentParameterString - (-1, 0) (38, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (23, 15) (23, 15) - ComponentPort - (-1, 0) (23, 0) - ComponentQuery - (-1, 0) (38, 0) - ComponentResourceSpecifier - (-1, 0) (38, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://macosx.apple.com/Images/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://macosx.apple.com/Images/foo - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L0ltYWdlcy9mb28uZ2lm - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - macosx.apple.com - IsAbsolute - - LastPathComponent - foo.gif - NetLocation - macosx.apple.com - POSIXPath - /Images/foo.gif - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /Images/foo.gif - PathExtension - gif - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - Images/foo.gif - URLBytes - - aHR0cDovL21hY29zeC5hcHBsZS5jb20vSW1hZ2VzL2Zv - by5naWY= - - URLData - - aHR0cDovL21hY29zeC5hcHBsZS5jb20vSW1hZ2VzL2Zv - by5naWY= - - URLString - http://macosx.apple.com/Images/foo.gif - UserName - <null> - WindowsPath - \Images\foo.gif - Out-NSResults - - absoluteString - http://macosx.apple.com/Images/foo.gif - absoluteURLString - http://macosx.apple.com/Images/foo.gif - baseURLString - <null> - deletingLastPathComponent - http://macosx.apple.com/Images/ - deletingLastPathExtension - http://macosx.apple.com/Images/foo - fragment - <null> - host - macosx.apple.com - isFileURL - NO - lastPathComponent - foo.gif - password - <null> - path - /Images/foo.gif - pathComponents - - / - Images - foo.gif - - pathExtension - gif - port - <null> - query - <null> - relativePath - /Images/foo.gif - relativeString - http://macosx.apple.com/Images/foo.gif - scheme - http - standardizedURL - http://macosx.apple.com/Images/foo.gif - user - <null> - + <null url> In-Base @@ -114167,152 +16686,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url ../artist/720703 - Out-CFResults - - AbsoluteURLString - http://www.ticketmaster.com/artist/720703 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (41, 0) - ComponentHost - (7, 20) (4, 23) - ComponentNetLocation - (7, 20) (4, 23) - ComponentParameterString - (-1, 0) (41, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (27, 14) (27, 14) - ComponentPort - (-1, 0) (27, 0) - ComponentQuery - (-1, 0) (41, 0) - ComponentResourceSpecifier - (-1, 0) (41, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.ticketmaster.com/artist/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.ticketmaster.com/artist/720703 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2FydGlzdC83MjA3MDM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.ticketmaster.com - IsAbsolute - - LastPathComponent - 720703 - NetLocation - www.ticketmaster.com - POSIXPath - /artist/720703 - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /artist/720703 - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - artist/720703 - URLBytes - - aHR0cDovL3d3dy50aWNrZXRtYXN0ZXIuY29tL2FydGlz - dC83MjA3MDM= - - URLData - - aHR0cDovL3d3dy50aWNrZXRtYXN0ZXIuY29tL2FydGlz - dC83MjA3MDM= - - URLString - http://www.ticketmaster.com/artist/720703 - UserName - <null> - WindowsPath - \artist\720703 - Out-NSResults - - absoluteString - http://www.ticketmaster.com/artist/720703 - absoluteURLString - http://www.ticketmaster.com/artist/720703 - baseURLString - <null> - deletingLastPathComponent - http://www.ticketmaster.com/artist/ - deletingLastPathExtension - http://www.ticketmaster.com/artist/720703 - fragment - <null> - host - www.ticketmaster.com - isFileURL - NO - lastPathComponent - 720703 - password - <null> - path - /artist/720703 - pathComponents - - / - artist - 720703 - - pathExtension - - port - <null> - query - <null> - relativePath - /artist/720703 - relativeString - http://www.ticketmaster.com/artist/720703 - scheme - http - standardizedURL - http://www.ticketmaster.com/artist/720703 - user - <null> - + <null url> In-Base @@ -114323,159 +16698,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AbsoluteURLString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (83, 0) - ComponentHost - (7, 11) (4, 14) - ComponentNetLocation - (7, 11) (4, 14) - ComponentParameterString - (-1, 0) (83, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (18, 65) (18, 65) - ComponentPort - (-1, 0) (18, 0) - ComponentQuery - (-1, 0) (83, 0) - ComponentResourceSpecifier - (-1, 0) (83, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - LyAvaW50ZXJhY3RpdmUvd29ybGQvMDIwNy9nYWxsZXJ5 - LnBvcGUudG91ci9mcmFtZXNldC5leGNsdWRlLmh0bWw= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.cnn.com - IsAbsolute - - LastPathComponent - frameset.exclude.html - NetLocation - www.cnn.com - POSIXPath - / /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - PathExtension - html - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - URLBytes - - aHR0cDovL3d3dy5jbm4uY29tLyAvaW50ZXJhY3RpdmUv - d29ybGQvMDIwNy9nYWxsZXJ5LnBvcGUudG91ci9mcmFt - ZXNldC5leGNsdWRlLmh0bWw= - - URLData - - aHR0cDovL3d3dy5jbm4uY29tLyUyMC9pbnRlcmFjdGl2 - ZS93b3JsZC8wMjA3L2dhbGxlcnkucG9wZS50b3VyL2Zy - YW1lc2V0LmV4Y2x1ZGUuaHRtbA== - - URLString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - UserName - <null> - WindowsPath - \ \interactive\world\0207\gallery.pope.tour\frameset.exclude.html - Out-NSResults - - absoluteString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - absoluteURLString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - baseURLString - <null> - deletingLastPathComponent - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/ - deletingLastPathExtension - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude - fragment - <null> - host - www.cnn.com - isFileURL - NO - lastPathComponent - frameset.exclude.html - password - <null> - path - / /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - pathComponents - - / - - interactive - world - 0207 - gallery.pope.tour - frameset.exclude.html - - pathExtension - html - port - <null> - query - <null> - relativePath - / /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - relativeString - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - scheme - http - standardizedURL - http://www.cnn.com/%20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html - user - <null> - + <null url> In-Base @@ -114486,152 +16710,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AbsoluteURLString - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (44, 0) - ComponentHost - (7, 14) (4, 17) - ComponentNetLocation - (7, 14) (4, 17) - ComponentParameterString - (-1, 0) (39, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (21, 18) (21, 19) - ComponentPort - (-1, 0) (21, 0) - ComponentQuery - (40, 4) (39, 5) - ComponentResourceSpecifier - (40, 4) (39, 5) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://www.muquit.com/cgi-bin/?ft=0 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://www.muquit.com/cgi-bin/Count?ft=0 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2NnaS1iaW4vQ291bnQuY2dp - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - www.muquit.com - IsAbsolute - - LastPathComponent - Count.cgi - NetLocation - www.muquit.com - POSIXPath - /cgi-bin/Count.cgi - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /cgi-bin/Count.cgi - PathExtension - cgi - PortNumber - -1 - QueryString-Escaped - ft=0 - QueryString-Unescaped - ft=0 - ResourceSpecifier - ?ft=0 - Scheme - http - StrictPath - cgi-bin/Count.cgi - URLBytes - - aHR0cDovL3d3dy5tdXF1aXQuY29tL2NnaS1iaW4vQ291 - bnQuY2dpP2Z0PTA= - - URLData - - aHR0cDovL3d3dy5tdXF1aXQuY29tL2NnaS1iaW4vQ291 - bnQuY2dpP2Z0PTA= - - URLString - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - UserName - <null> - WindowsPath - \cgi-bin\Count.cgi - Out-NSResults - - absoluteString - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - absoluteURLString - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - baseURLString - <null> - deletingLastPathComponent - http://www.muquit.com/cgi-bin/?ft=0 - deletingLastPathExtension - http://www.muquit.com/cgi-bin/Count?ft=0 - fragment - <null> - host - www.muquit.com - isFileURL - NO - lastPathComponent - Count.cgi - password - <null> - path - /cgi-bin/Count.cgi - pathComponents - - / - cgi-bin - Count.cgi - - pathExtension - cgi - port - <null> - query - ft=0 - relativePath - /cgi-bin/Count.cgi - relativeString - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - scheme - http - standardizedURL - http://www.muquit.com/cgi-bin/Count.cgi?ft=0 - user - <null> - + <null url> In-Base @@ -114642,224 +16722,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AbsoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (1160, 0) - ComponentHost - (7, 33) (4, 37) - ComponentNetLocation - (7, 38) (4, 41) - ComponentParameterString - (-1, 0) (80, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (45, 35) (45, 36) - ComponentPort - (41, 4) (40, 5) - ComponentQuery - (81, 1079) (80, 1080) - ComponentResourceSpecifier - (81, 1079) (80, 1080) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2RhdGFiYXNlcy83Ni9jb250YWluZXJzLzI4OTEvaXRl - bXM= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - fe80::7e6d:62ff:fe75:9e88%en0 - IsAbsolute - - LastPathComponent - items - NetLocation - [fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - POSIXPath - /databases/76/containers/2891/items - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /databases/76/containers/2891/items - PathExtension - <null> - PortNumber - 3689 - QueryString-Escaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - QueryString-Unescaped - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - ResourceSpecifier - ?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Scheme - http - StrictPath - databases/76/containers/2891/items - URLBytes - - aHR0cDovL1tmZTgwOjo3ZTZkOjYyZmY6ZmU3NTo5ZTg4 - JTI1ZW4wXTozNjg5L2RhdGFiYXNlcy83Ni9jb250YWlu - ZXJzLzI4OTEvaXRlbXM/c29ydD1kYXRlYWRkZWQmaW52 - ZXJ0LXNvcnQtb3JkZXI9MSZzZXNzaW9uLWlkPTE4NjYw - NDgzNTEmcXVlcnk9KCgnY29tLmFwcGxlLml0dW5lcy5l - eHRlbmRlZC1tZWRpYS1raW5kOjEnLCdjb20uYXBwbGUu - aXR1bmVzLmV4dGVuZGVkLW1lZGlhLWtpbmQ6MzInKSsn - ZGFhcC5zb25nZGF0YWtpbmQ6MCcpJm1ldGE9ZG1hcC5w - ZXJzaXN0ZW50aWQsZG1hcC5pdGVtbmFtZSxkYWFwLnNv - bmdhbGJ1bSxjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVk - LW1lZGlhLWtpbmQsZGFhcC5zb25nYWxidW1pZCxkYWFw - LnNvbmdmb3JtYXQsY29tLmFwcGxlLml0dW5lcy5nYXBs - ZXNzLWhldXIsY29tLmFwcGxlLml0dW5lcy5nYXBsZXNz - LWVuYy1kZWwsY29tLmFwcGxlLml0dW5lcy5nYXBsZXNz - LWVuYy1kcixjb20uYXBwbGUuaXR1bmVzLmdhcGxlc3Mt - ZHVyLGNvbS5hcHBsZS5pdHVuZXMuZ2FwbGVzcy1yZXN5 - LGNvbS5hcHBsZS5pdHVuZXMubm9ybS12b2x1bWUsZGFh - cC5zb25nYm9va21hcmssZGFhcC5zb25naGFzYmVlbnBs - YXllZCxkYWFwLnNvbmd1c2VycGxheWNvdW50LGRhYXAu - c29uZ3RpbWUsY29tLmFwcGxlLml0dW5lcy5pcy1oZC12 - aWRlbyxkYWFwLnNvbmdjb250ZW50cmF0aW5nLGNvbS5h - cHBsZS5pdHVuZXMuY29udGVudC1yYXRpbmcsZGFhcC5z - b25nY29udGVudGRlc2NyaXB0aW9uLGRhYXAuc29uZ2xv - bmdjb250ZW50ZGVzY3JpcHRpb24sY29tLmFwcGxlLml0 - dW5lcy5tb3ZpZS1pbmZvLXhtbCxkYWFwLnNvbmdzdGFy - dHRpbWUsZGFhcC5zb25nc3RvcHRpbWUsY29tLmFwcGxl - Lml0dW5lcy5kcm0ta2V5MS1pZCxjb20uYXBwbGUuaXR1 - bmVzLnJlbnRhbC1zdGFydCxjb20uYXBwbGUuaXR1bmVz - LmRybS11c2VyLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLWR1cmF0aW9uLGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLXBiLXN0YXJ0LGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLXBiLWR1cmF0aW9uLGRhYXAuc29uZ2RhdGVhZGRl - ZCxjb20uYXBwbGUuaXR1bmVzLml0bXMtc29uZ2lkLGRh - YXAuc29uZ2Rpc2FibGVkLGRtYXAuaXRlbWlkLGNvbS5h - cHBsZS5pdHVuZXMuYXJ0d29ya2NoZWNrc3VtJmluZGV4 - PTAtOTk= - - URLData - - aHR0cDovL1tmZTgwOjo3ZTZkOjYyZmY6ZmU3NTo5ZTg4 - JTI1ZW4wXTozNjg5L2RhdGFiYXNlcy83Ni9jb250YWlu - ZXJzLzI4OTEvaXRlbXM/c29ydD1kYXRlYWRkZWQmaW52 - ZXJ0LXNvcnQtb3JkZXI9MSZzZXNzaW9uLWlkPTE4NjYw - NDgzNTEmcXVlcnk9KCgnY29tLmFwcGxlLml0dW5lcy5l - eHRlbmRlZC1tZWRpYS1raW5kOjEnLCdjb20uYXBwbGUu - aXR1bmVzLmV4dGVuZGVkLW1lZGlhLWtpbmQ6MzInKSsn - ZGFhcC5zb25nZGF0YWtpbmQ6MCcpJm1ldGE9ZG1hcC5w - ZXJzaXN0ZW50aWQsZG1hcC5pdGVtbmFtZSxkYWFwLnNv - bmdhbGJ1bSxjb20uYXBwbGUuaXR1bmVzLmV4dGVuZGVk - LW1lZGlhLWtpbmQsZGFhcC5zb25nYWxidW1pZCxkYWFw - LnNvbmdmb3JtYXQsY29tLmFwcGxlLml0dW5lcy5nYXBs - ZXNzLWhldXIsY29tLmFwcGxlLml0dW5lcy5nYXBsZXNz - LWVuYy1kZWwsY29tLmFwcGxlLml0dW5lcy5nYXBsZXNz - LWVuYy1kcixjb20uYXBwbGUuaXR1bmVzLmdhcGxlc3Mt - ZHVyLGNvbS5hcHBsZS5pdHVuZXMuZ2FwbGVzcy1yZXN5 - LGNvbS5hcHBsZS5pdHVuZXMubm9ybS12b2x1bWUsZGFh - cC5zb25nYm9va21hcmssZGFhcC5zb25naGFzYmVlbnBs - YXllZCxkYWFwLnNvbmd1c2VycGxheWNvdW50LGRhYXAu - c29uZ3RpbWUsY29tLmFwcGxlLml0dW5lcy5pcy1oZC12 - aWRlbyxkYWFwLnNvbmdjb250ZW50cmF0aW5nLGNvbS5h - cHBsZS5pdHVuZXMuY29udGVudC1yYXRpbmcsZGFhcC5z - b25nY29udGVudGRlc2NyaXB0aW9uLGRhYXAuc29uZ2xv - bmdjb250ZW50ZGVzY3JpcHRpb24sY29tLmFwcGxlLml0 - dW5lcy5tb3ZpZS1pbmZvLXhtbCxkYWFwLnNvbmdzdGFy - dHRpbWUsZGFhcC5zb25nc3RvcHRpbWUsY29tLmFwcGxl - Lml0dW5lcy5kcm0ta2V5MS1pZCxjb20uYXBwbGUuaXR1 - bmVzLnJlbnRhbC1zdGFydCxjb20uYXBwbGUuaXR1bmVz - LmRybS11c2VyLWlkLGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLWR1cmF0aW9uLGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLXBiLXN0YXJ0LGNvbS5hcHBsZS5pdHVuZXMucmVu - dGFsLXBiLWR1cmF0aW9uLGRhYXAuc29uZ2RhdGVhZGRl - ZCxjb20uYXBwbGUuaXR1bmVzLml0bXMtc29uZ2lkLGRh - YXAuc29uZ2Rpc2FibGVkLGRtYXAuaXRlbWlkLGNvbS5h - cHBsZS5pdHVuZXMuYXJ0d29ya2NoZWNrc3VtJmluZGV4 - PTAtOTk= - - URLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - UserName - <null> - WindowsPath - \databases\76\containers\2891\items - Out-NSResults - - absoluteString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - absoluteURLString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - baseURLString - <null> - deletingLastPathComponent - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - deletingLastPathExtension - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - fragment - <null> - host - fe80::7e6d:62ff:fe75:9e88%en0 - isFileURL - NO - lastPathComponent - items - password - <null> - path - /databases/76/containers/2891/items - pathComponents - - / - databases - 76 - containers - 2891 - items - - pathExtension - - port - 3689 - query - sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - relativePath - /databases/76/containers/2891/items - relativeString - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - scheme - http - standardizedURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689/databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - user - <null> - + <null url> In-Title @@ -114868,151 +16732,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c= - - URLData - - aHR0cDovL2EvYi9jL2c= - - URLString - http://a/b/c/g - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -115021,150 +16742,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 5) (8, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - c - NetLocation - a - POSIXPath - /b/c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/ - URLBytes - - aHR0cDovL2EvYi9jLw== - - URLData - - aHR0cDovL2EvYi9jLw== - - URLString - http://a/b/c/ - UserName - <null> - WindowsPath - \b\c - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c - relativeString - http://a/b/c/ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -115173,150 +16752,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AbsoluteURLString - http://a/b/c/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (13, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (13, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 5) (8, 5) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (13, 0) - ComponentResourceSpecifier - (-1, 0) (13, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - c - NetLocation - a - POSIXPath - /b/c - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/ - URLBytes - - aHR0cDovL2EvYi9jLw== - - URLData - - aHR0cDovL2EvYi9jLw== - - URLString - http://a/b/c/ - UserName - <null> - WindowsPath - \b\c - Out-NSResults - - absoluteString - http://a/b/c/ - absoluteURLString - http://a/b/c/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - c - password - <null> - path - /b/c - pathComponents - - / - b - c - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c - relativeString - http://a/b/c/ - scheme - http - standardizedURL - http://a/b/c/ - user - <null> - + <null url> In-Title @@ -115325,149 +16762,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 3) (8, 3) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - b - NetLocation - a - POSIXPath - /b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/ - URLBytes - - aHR0cDovL2EvYi8= - - URLData - - aHR0cDovL2EvYi8= - - URLString - http://a/b/ - UserName - <null> - WindowsPath - \b - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/b/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - /b - relativeString - http://a/b/ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Title @@ -115476,149 +16772,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AbsoluteURLString - http://a/b/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 3) (8, 3) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2I= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - b - NetLocation - a - POSIXPath - /b - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/ - URLBytes - - aHR0cDovL2EvYi8= - - URLData - - aHR0cDovL2EvYi8= - - URLString - http://a/b/ - UserName - <null> - WindowsPath - \b - Out-NSResults - - absoluteString - http://a/b/ - absoluteURLString - http://a/b/ - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/b/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - b - password - <null> - path - /b - pathComponents - - / - b - - pathExtension - - port - <null> - query - <null> - relativePath - /b - relativeString - http://a/b/ - scheme - http - standardizedURL - http://a/b/ - user - <null> - + <null url> In-Title @@ -115627,150 +16782,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 4) (8, 4) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/g - URLBytes - - aHR0cDovL2EvYi9n - - URLData - - aHR0cDovL2EvYi9n - - URLString - http://a/b/g - UserName - <null> - WindowsPath - \b\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/g - relativeString - http://a/b/g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -115779,148 +16792,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 1) (8, 1) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - / - NetLocation - a - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2Ev - - URLData - - aHR0cDovL2Ev - - URLString - http://a/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - <null> - deletingLastPathComponent - http://a/../ - deletingLastPathExtension - http://a/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://a/ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Title @@ -115929,148 +16802,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AbsoluteURLString - http://a/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (9, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (9, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 1) (8, 1) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (9, 0) - ComponentResourceSpecifier - (-1, 0) (9, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/../ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Lw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - / - NetLocation - a - POSIXPath - / - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - / - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - - URLBytes - - aHR0cDovL2Ev - - URLData - - aHR0cDovL2Ev - - URLString - http://a/ - UserName - <null> - WindowsPath - - Out-NSResults - - absoluteString - http://a/ - absoluteURLString - http://a/ - baseURLString - <null> - deletingLastPathComponent - http://a/../ - deletingLastPathExtension - http://a/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - / - password - <null> - path - / - pathComponents - - / - - pathExtension - - port - <null> - query - <null> - relativePath - / - relativeString - http://a/ - scheme - http - standardizedURL - http://a/ - user - <null> - + <null url> In-Title @@ -116079,149 +16812,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -116230,149 +16822,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -116381,149 +16832,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AbsoluteURLString - http://a/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2c= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - g - URLBytes - - aHR0cDovL2EvZw== - - URLData - - aHR0cDovL2EvZw== - - URLString - http://a/g - UserName - <null> - WindowsPath - \g - Out-NSResults - - absoluteString - http://a/g - absoluteURLString - http://a/g - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /g - pathComponents - - / - g - - pathExtension - - port - <null> - query - <null> - relativePath - /g - relativeString - http://a/g - scheme - http - standardizedURL - http://a/g - user - <null> - + <null url> In-Title @@ -116532,151 +16842,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AbsoluteURLString - http://a/b/c/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c= - - URLData - - aHR0cDovL2EvYi9jL2c= - - URLString - http://a/b/c/g - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g - absoluteURLString - http://a/b/c/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g - scheme - http - standardizedURL - http://a/b/c/g - user - <null> - + <null url> In-Title @@ -116685,150 +16852,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 4) (8, 4) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/g - URLBytes - - aHR0cDovL2EvYi9n - - URLData - - aHR0cDovL2EvYi9n - - URLString - http://a/b/g - UserName - <null> - WindowsPath - \b\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/g - relativeString - http://a/b/g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -116837,151 +16862,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLg== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g. - NetLocation - a - POSIXPath - /b/c/g. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g. - URLBytes - - aHR0cDovL2EvYi9jL2cu - - URLData - - aHR0cDovL2EvYi9jL2cu - - URLString - http://a/b/c/g. - UserName - <null> - WindowsPath - \b\c\g. - Out-NSResults - - absoluteString - http://a/b/c/g. - absoluteURLString - http://a/b/c/g. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g. - password - <null> - path - /b/c/g. - pathComponents - - / - b - c - g. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g. - relativeString - http://a/b/c/g. - scheme - http - standardizedURL - http://a/b/c/g. - user - <null> - + <null url> In-Title @@ -116990,151 +16872,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AbsoluteURLString - http://a/b/c/.g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - .g - NetLocation - a - POSIXPath - /b/c/.g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/.g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/.g - URLBytes - - aHR0cDovL2EvYi9jLy5n - - URLData - - aHR0cDovL2EvYi9jLy5n - - URLString - http://a/b/c/.g - UserName - <null> - WindowsPath - \b\c\.g - Out-NSResults - - absoluteString - http://a/b/c/.g - absoluteURLString - http://a/b/c/.g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - .g - password - <null> - path - /b/c/.g - pathComponents - - / - b - c - .g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/.g - relativeString - http://a/b/c/.g - scheme - http - standardizedURL - http://a/b/c/.g - user - <null> - + <null url> In-Title @@ -117143,151 +16882,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g.. - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nLi4= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g.. - NetLocation - a - POSIXPath - /b/c/g.. - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g.. - PathExtension - - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g.. - URLBytes - - aHR0cDovL2EvYi9jL2cuLg== - - URLData - - aHR0cDovL2EvYi9jL2cuLg== - - URLString - http://a/b/c/g.. - UserName - <null> - WindowsPath - \b\c\g.. - Out-NSResults - - absoluteString - http://a/b/c/g.. - absoluteURLString - http://a/b/c/g.. - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g.. - password - <null> - path - /b/c/g.. - pathComponents - - / - b - c - g.. - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g.. - relativeString - http://a/b/c/g.. - scheme - http - standardizedURL - http://a/b/c/g.. - user - <null> - + <null url> In-Title @@ -117296,151 +16892,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AbsoluteURLString - http://a/b/c/..g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/. - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy8uLmc= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - ..g - NetLocation - a - POSIXPath - /b/c/..g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/..g - PathExtension - g - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/..g - URLBytes - - aHR0cDovL2EvYi9jLy4uZw== - - URLData - - aHR0cDovL2EvYi9jLy4uZw== - - URLString - http://a/b/c/..g - UserName - <null> - WindowsPath - \b\c\..g - Out-NSResults - - absoluteString - http://a/b/c/..g - absoluteURLString - http://a/b/c/..g - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/. - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - ..g - password - <null> - path - /b/c/..g - pathComponents - - / - b - c - ..g - - pathExtension - g - port - <null> - query - <null> - relativePath - /b/c/..g - relativeString - http://a/b/c/..g - scheme - http - standardizedURL - http://a/b/c/..g - user - <null> - + <null url> In-Title @@ -117449,150 +16902,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AbsoluteURLString - http://a/b/g - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (12, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (12, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 4) (8, 4) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (12, 0) - ComponentResourceSpecifier - (-1, 0) (12, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/g - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvZw== - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/g - URLBytes - - aHR0cDovL2EvYi9n - - URLData - - aHR0cDovL2EvYi9n - - URLString - http://a/b/g - UserName - <null> - WindowsPath - \b\g - Out-NSResults - - absoluteString - http://a/b/g - absoluteURLString - http://a/b/g - baseURLString - <null> - deletingLastPathComponent - http://a/b/ - deletingLastPathExtension - http://a/b/g - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/g - pathComponents - - / - b - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/g - relativeString - http://a/b/g - scheme - http - standardizedURL - http://a/b/g - user - <null> - + <null url> In-Title @@ -117601,151 +16912,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/ - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (15, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (15, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 7) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (15, 0) - ComponentResourceSpecifier - (-1, 0) (15, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/ - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/ - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/ - URLBytes - - aHR0cDovL2EvYi9jL2cv - - URLData - - aHR0cDovL2EvYi9jL2cv - - URLString - http://a/b/c/g/ - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g/ - absoluteURLString - http://a/b/c/g/ - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/g/ - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g/ - scheme - http - standardizedURL - http://a/b/c/g/ - user - <null> - + <null url> In-Title @@ -117754,152 +16922,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g/./h - Out-CFResults - - AbsoluteURLString - http://a/b/c/g/h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (16, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (16, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 8) (8, 8) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (16, 0) - ComponentResourceSpecifier - (-1, 0) (16, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/g/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g/h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9nL2g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/g/h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g/h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/g/h - URLBytes - - aHR0cDovL2EvYi9jL2cvaA== - - URLData - - aHR0cDovL2EvYi9jL2cvaA== - - URLString - http://a/b/c/g/h - UserName - <null> - WindowsPath - \b\c\g\h - Out-NSResults - - absoluteString - http://a/b/c/g/h - absoluteURLString - http://a/b/c/g/h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/g/ - deletingLastPathExtension - http://a/b/c/g/h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/g/h - pathComponents - - / - b - c - g - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g/h - relativeString - http://a/b/c/g/h - scheme - http - standardizedURL - http://a/b/c/g/h - user - <null> - + <null url> In-Title @@ -117908,151 +16932,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AbsoluteURLString - http://a/b/c/h - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (14, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 6) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (-1, 0) (14, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/h - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9o - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - h - NetLocation - a - POSIXPath - /b/c/h - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/h - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - b/c/h - URLBytes - - aHR0cDovL2EvYi9jL2g= - - URLData - - aHR0cDovL2EvYi9jL2g= - - URLString - http://a/b/c/h - UserName - <null> - WindowsPath - \b\c\h - Out-NSResults - - absoluteString - http://a/b/c/h - absoluteURLString - http://a/b/c/h - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/ - deletingLastPathExtension - http://a/b/c/h - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - h - password - <null> - path - /b/c/h - pathComponents - - / - b - c - h - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/h - relativeString - http://a/b/c/h - scheme - http - standardizedURL - http://a/b/c/h - user - <null> - + <null url> In-Title @@ -118061,151 +16942,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/./y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (22, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 7) (14, 8) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (22, 0) - ComponentResourceSpecifier - (15, 7) (14, 8) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/./y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/./y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/./y - ParameterString-Unescaped - x=1/./y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/./y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4veQ== - - URLString - http://a/b/c/g;x=1/./y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/./y - absoluteURLString - http://a/b/c/g;x=1/./y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/./y - deletingLastPathExtension - http://a/b/c/g;x=1/./y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/./y - scheme - http - standardizedURL - http://a/b/c/g;x=1/./y - user - <null> - + <null url> In-Title @@ -118214,151 +16952,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AbsoluteURLString - http://a/b/c/g;x=1/../y - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (23, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (15, 8) (14, 9) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (23, 0) - ComponentResourceSpecifier - (15, 8) (14, 9) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/;x=1/../y - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g;x=1/../y - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - x=1/../y - ParameterString-Unescaped - x=1/../y - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - ;x=1/../y - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLData - - aHR0cDovL2EvYi9jL2c7eD0xLy4uL3k= - - URLString - http://a/b/c/g;x=1/../y - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g;x=1/../y - absoluteURLString - http://a/b/c/g;x=1/../y - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/;x=1/../y - deletingLastPathExtension - http://a/b/c/g;x=1/../y - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g;x=1/../y - scheme - http - standardizedURL - http://a/b/c/g;x=1/../y - user - <null> - + <null url> In-Title @@ -118367,151 +16962,8 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (20, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 5) (14, 6) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/./x - QueryString-Unescaped - y/./x - ResourceSpecifier - ?y/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uL3g= - - URLString - http://a/b/c/g?y/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/./x - absoluteURLString - http://a/b/c/g?y/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/./x - deletingLastPathExtension - http://a/b/c/g?y/./x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/./x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/./x - scheme - http - standardizedURL - http://a/b/c/g?y/./x - user - <null> - + <null url> In-Title @@ -118520,23439 +16972,15060 @@ CFURLCreateAbsoluteURLWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g?y/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (21, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (15, 6) (14, 7) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/?y/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g?y/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - y/../x - QueryString-Unescaped - y/../x - ResourceSpecifier - ?y/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2c/eS8uLi94 - - URLString - http://a/b/c/g?y/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g?y/../x - absoluteURLString - http://a/b/c/g?y/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/?y/../x - deletingLastPathExtension - http://a/b/c/g?y/../x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - y/../x - relativePath - /b/c/g - relativeString - http://a/b/c/g?y/../x - scheme - http - standardizedURL - http://a/b/c/g?y/../x - user - <null> - + <null url> + + + In-Title + CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-026 + In-URLCreator + CFURLCreateAbsoluteURLWithBytes + In-Url + http://a/b/c/g#s/./x + Out-NSResults + <null url> + + + In-Title + CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-027 + In-URLCreator + CFURLCreateAbsoluteURLWithBytes + In-Url + http://a/b/c/g#s/../x + Out-NSResults + <null url> + + + In-Title + CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-028 + In-URLCreator + CFURLCreateAbsoluteURLWithBytes + In-Url + http://a/../../x + Out-NSResults + <null url> + + + In-Title + CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-029 + In-URLCreator + CFURLCreateAbsoluteURLWithBytes + In-Url + http://a/..///../x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + /usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/usr/local/bin/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/// + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:// + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + FILE:// + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///Volumes + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///Users/darin + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://foo + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///./. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///.///. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b//.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///./a/b/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/./b/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-025 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/./.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-026 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a///b//.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-027 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/../.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-028 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/c/../.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-029 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-030 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/../c + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-file-031 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/../c + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://luser@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://luser:password@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://:password@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org:72/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-ftp-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://:72/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-localhost-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost/usr/local/bin/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-localhost-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-localhost-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/dir + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/dir/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com:80 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin:nothin@www.apple.com:42/dir/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/query?email=darin@apple.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com?email=darin@apple.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM/ED + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-query-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-fragment-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://my.site.com/some/page.html#fragment + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-fragment-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://my.site.com#fragment + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-fragment-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + scheme://user:pass@host:1/path/path2/file.html;params?query#fragment + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/a%20space + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/aBrace%7B + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/aJ%4a + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/unescaped space + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/unescaped|pipe + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin%20adler@www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin:clever%20password@www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple%20computer.com + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///%3F + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///%78 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///? + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///& + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///%3F + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///%78 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///? + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///& + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///%3F + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///%78 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///? + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///& + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-escape-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-mailto-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + mailto:mduerst@ifi.unizh.ch + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-mailto-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + mailto:mduerst@ifi.unizh.ch?Subject=nothing + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-news-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + news:comp.infosystems.www.servers.unix + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-invalid-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + uahsfcncvuhrtgvnahr + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://10.1.1.1 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://[fe80::20a:27ff:feae:8b9e]/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://[fe80::20a:27ff:feae:8b9e%25en0]/ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://host.com/foo/bar/../index.html + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://host.com/foo/bar/./index.html + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-real-world-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/cgi-bin/Count.cgi?ft=0 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///// + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/Volumes + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + /Volumes + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + . + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./a + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../a + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../a + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + file: + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + / + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-ambiguous-url-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + http: + Out-NSResults + <null url> + + + In-Base + http://test.com/ + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-escape-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + unescaped space + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + #zoo + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow?john=doe + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + /joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow#frag2 + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://my.server.com/some/document + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + /joe:blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-basic-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe:blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-illegal-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-illegal-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ??? + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + g:h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + /g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + //g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ?y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + #s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + ;x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x?y#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + . + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + .. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../.. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-025 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-026 + In-URLCreator + CFURLCreateWithBytes + In-Url + /./g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-027 + In-URLCreator + CFURLCreateWithBytes + In-Url + /../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-028 + In-URLCreator + CFURLCreateWithBytes + In-Url + g. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-029 + In-URLCreator + CFURLCreateWithBytes + In-Url + .g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-030 + In-URLCreator + CFURLCreateWithBytes + In-Url + g.. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-031 + In-URLCreator + CFURLCreateWithBytes + In-Url + ..g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-032 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-033 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./g/. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-034 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/./h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-035 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/../h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-036 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x=1/./y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-037 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x=1/../y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-038 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y/./x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-039 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y/../x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-040 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s/./x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-041 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s/../x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-042 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-043 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-044 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-rfc-045 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/g + Out-NSResults + <null url> + + + In-Base + http://macosx.apple.com + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-real-world-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + /Images/foo.gif + Out-NSResults + <null url> + + + In-Base + http://www.ticketmaster.com/search?keyword=tool + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-real-world-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../artist/720703 + Out-NSResults + <null url> + + + In-Base + http://www.cnn.com + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-real-world-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + /interactive/world/0207/gallery.pope.tour/frameset.exclude.html + Out-NSResults + <null url> + + + In-Base + http://www.muquit.com/muquit/software/Count/Count.html + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-real-world-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/cgi-bin/Count.cgi?ft=0 + Out-NSResults + <null url> + + + In-Base + http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-relative-real-world-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../ + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../../../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/.g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g.. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/..g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./../g + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g/. + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g/./h + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g/../h + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g;x=1/./y + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g;x=1/../y + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g?y/./x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-025 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g?y/../x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-026 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g#s/./x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-027 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g#s/../x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-028 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/../../x + Out-NSResults + <null url> + + + In-PathComponent + NewPathComponent + In-Title + AppendingPathComponent-1-parse-absolute-with-relative-029 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/..///../x + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + /usr/local/bin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/usr/local/bin/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://localhost + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/// + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:// + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + FILE:// + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///Volumes + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///Users/darin + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + file://foo + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///./. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///.///. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b//.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///./a/b/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/./b/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-025 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/./.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-026 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a///b//.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-027 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/../.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-028 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/b/c/../.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-029 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-030 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/../c + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-file-031 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///a/../b/../c + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://luser@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://luser:password@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://:password@ftp.gnu.org/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://ftp.gnu.org:72/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-ftp-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://:72/pub/gnu + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-localhost-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost/usr/local/bin/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-localhost-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-localhost-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://localhost + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/dir + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/dir/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com:80 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin:nothin@www.apple.com:42/dir/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com/query?email=darin@apple.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple.com?email=darin@apple.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + HTTP://WWW.ZOO.COM/ED + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-query-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-fragment-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://my.site.com/some/page.html#fragment + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-fragment-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://my.site.com#fragment + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-fragment-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + scheme://user:pass@host:1/path/path2/file.html;params?query#fragment + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/a%20space + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/aBrace%7B + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/aJ%4a + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/unescaped space + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://test.com/unescaped|pipe + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin%20adler@www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://darin:clever%20password@www.apple.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://www.apple%20computer.com + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///%3F + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///%78 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///? + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///& + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///x + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///%3F + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///%78 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///? + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///& + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:///x + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///%3F + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///%78 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///? + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///& + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-escape-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + glorb:///x + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-mailto-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + mailto:mduerst@ifi.unizh.ch + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-mailto-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + mailto:mduerst@ifi.unizh.ch?Subject=nothing + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-news-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + news:comp.infosystems.www.servers.unix + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-invalid-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + uahsfcncvuhrtgvnahr + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://10.1.1.1 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://[fe80::20a:27ff:feae:8b9e]/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://[fe80::20a:27ff:feae:8b9e%25en0]/ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://host.com/foo/bar/../index.html + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://host.com/foo/bar/./index.html + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-real-world-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/cgi-bin/Count.cgi?ft=0 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:///// + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/Volumes + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + /Volumes + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + . + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./a + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../a + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../a + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + file: + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + / + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-ambiguous-url-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + http: + Out-NSResults + <null url> + + + In-Base + http://test.com/ + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-escape-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + unescaped space + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + #zoo + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow?john=doe + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + /joe/blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe/blow#frag2 + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + ftp://my.server.com/some/document + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + /joe:blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-basic-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + joe:blow + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-illegal-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + + Out-NSResults + <null url> + + + In-Base + http://user:pass@hostname.com:42/some/path;param?name=value#fragment + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-illegal-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ??? + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + g:h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + /g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + //g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + ?y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + #s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + ;x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x?y#s + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + . + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + .. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../.. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../ + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-025 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../../../../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-026 + In-URLCreator + CFURLCreateWithBytes + In-Url + /./g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-027 + In-URLCreator + CFURLCreateWithBytes + In-Url + /../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-028 + In-URLCreator + CFURLCreateWithBytes + In-Url + g. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-029 + In-URLCreator + CFURLCreateWithBytes + In-Url + .g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-030 + In-URLCreator + CFURLCreateWithBytes + In-Url + g.. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-031 + In-URLCreator + CFURLCreateWithBytes + In-Url + ..g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-032 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./../g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-033 + In-URLCreator + CFURLCreateWithBytes + In-Url + ./g/. + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-034 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/./h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-035 + In-URLCreator + CFURLCreateWithBytes + In-Url + g/../h + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-036 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x=1/./y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-037 + In-URLCreator + CFURLCreateWithBytes + In-Url + g;x=1/../y + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-038 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y/./x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-039 + In-URLCreator + CFURLCreateWithBytes + In-Url + g?y/../x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-040 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s/./x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-041 + In-URLCreator + CFURLCreateWithBytes + In-Url + g#s/../x + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-042 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-043 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-044 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/g + Out-NSResults + <null url> + + + In-Base + http://a/b/c/d;p?q + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-rfc-045 + In-URLCreator + CFURLCreateWithBytes + In-Url + file:/g + Out-NSResults + <null url> + + + In-Base + http://macosx.apple.com + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-real-world-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + /Images/foo.gif + Out-NSResults + <null url> + + + In-Base + http://www.ticketmaster.com/search?keyword=tool + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-real-world-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + ../artist/720703 + Out-NSResults + <null url> + + + In-Base + http://www.cnn.com + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-real-world-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + /interactive/world/0207/gallery.pope.tour/frameset.exclude.html + Out-NSResults + <null url> + + + In-Base + http://www.muquit.com/muquit/software/Count/Count.html + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-real-world-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http:/cgi-bin/Count.cgi?ft=0 + Out-NSResults + <null url> + + + In-Base + http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-relative-real-world-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-001 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-002 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-003 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-004 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-005 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-006 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-007 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-008 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../ + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-009 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-010 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-011 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../../../../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-013 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-014 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-015 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/.g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-016 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g.. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-017 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/..g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-018 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./../g + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-019 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/./g/. + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-020 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g/./h + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-021 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g/../h + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-022 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g;x=1/./y + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-023 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g;x=1/../y + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-024 + In-URLCreator + CFURLCreateWithBytes + In-Url + http://a/b/c/g?y/./x + Out-NSResults + <null url> + In-PathComponent + new;Path?Component In-Title - CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-026 + AppendingPathComponent-2-parse-absolute-with-relative-025 In-URLCreator - CFURLCreateAbsoluteURLWithBytes + CFURLCreateWithBytes + In-Url + http://a/b/c/g?y/../x + Out-NSResults + <null url> + + + In-PathComponent + new;Path?Component + In-Title + AppendingPathComponent-2-parse-absolute-with-relative-026 + In-URLCreator + CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/./x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 5) (14, 6) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 5) (14, 6) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/./x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/./x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/./x - Fragment-Unescaped - s/./x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/./x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uL3g= - - URLString - http://a/b/c/g#s/./x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/./x - absoluteURLString - http://a/b/c/g#s/./x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/./x - deletingLastPathExtension - http://a/b/c/g#s/./x - fragment - s/./x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/./x - scheme - http - standardizedURL - http://a/b/c/g#s/./x - user - <null> - + <null url> + In-PathComponent + new;Path?Component In-Title - CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-027 + AppendingPathComponent-2-parse-absolute-with-relative-027 In-URLCreator - CFURLCreateAbsoluteURLWithBytes + CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AbsoluteURLString - http://a/b/c/g#s/../x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (15, 6) (14, 7) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (14, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 6) (8, 7) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (14, 0) - ComponentResourceSpecifier - (15, 6) (14, 7) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/b/c/#s/../x - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/b/c/g#s/../x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L2IvYy9n - - Fragment-Escaped - s/../x - Fragment-Unescaped - s/../x - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - g - NetLocation - a - POSIXPath - /b/c/g - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /b/c/g - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - #s/../x - Scheme - http - StrictPath - b/c/g - URLBytes - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLData - - aHR0cDovL2EvYi9jL2cjcy8uLi94 - - URLString - http://a/b/c/g#s/../x - UserName - <null> - WindowsPath - \b\c\g - Out-NSResults - - absoluteString - http://a/b/c/g#s/../x - absoluteURLString - http://a/b/c/g#s/../x - baseURLString - <null> - deletingLastPathComponent - http://a/b/c/#s/../x - deletingLastPathExtension - http://a/b/c/g#s/../x - fragment - s/../x - host - a - isFileURL - NO - lastPathComponent - g - password - <null> - path - /b/c/g - pathComponents - - / - b - c - g - - pathExtension - - port - <null> - query - <null> - relativePath - /b/c/g - relativeString - http://a/b/c/g#s/../x - scheme - http - standardizedURL - http://a/b/c/g#s/../x - user - <null> - + <null url> + In-PathComponent + new;Path?Component In-Title - CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-028 + AppendingPathComponent-2-parse-absolute-with-relative-028 In-URLCreator - CFURLCreateAbsoluteURLWithBytes + CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AbsoluteURLString - http://a/x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (10, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (10, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 2) (8, 2) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (10, 0) - ComponentResourceSpecifier - (-1, 0) (10, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a/ - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a/x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - L3g= - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - /x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - /x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - x - URLBytes - - aHR0cDovL2EveA== - - URLData - - aHR0cDovL2EveA== - - URLString - http://a/x - UserName - <null> - WindowsPath - \x - Out-NSResults - - absoluteString - http://a/x - absoluteURLString - http://a/x - baseURLString - <null> - deletingLastPathComponent - http://a/ - deletingLastPathExtension - http://a/x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - /x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - /x - relativeString - http://a/x - scheme - http - standardizedURL - http://a/x - user - <null> - + <null url> + In-PathComponent + new;Path?Component In-Title - CFURLCreateAbsoluteURLWithBytes-parse-absolute-with-relative-029 + AppendingPathComponent-2-parse-absolute-with-relative-029 In-URLCreator - CFURLCreateAbsoluteURLWithBytes + CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AbsoluteURLString - http://a//x - BaseURLString - <null> - CanBeDecomposed - - ComponentFragment - (-1, 0) (11, 0) - ComponentHost - (7, 1) (4, 4) - ComponentNetLocation - (7, 1) (4, 4) - ComponentParameterString - (-1, 0) (11, 0) - ComponentPassword - (-1, 0) (7, 0) - ComponentPath - (8, 3) (8, 3) - ComponentPort - (-1, 0) (8, 0) - ComponentQuery - (-1, 0) (11, 0) - ComponentResourceSpecifier - (-1, 0) (11, 0) - ComponentScheme - (0, 4) (0, 7) - ComponentUser - (-1, 0) (7, 0) - ComponentUserInfo - (-1, 0) (7, 0) - DeletingLastPathComponent - http://a// - DeletingLastPathComponent-BaseURL - <null> - DeletingPathExtension - http://a//x - DeletingPathExtension-BaseURL - <null> - FileSystemRepresentation - - Ly94 - - Fragment-Escaped - <null> - Fragment-Unescaped - <null> - HasDirectoryPath - - HostName - a - IsAbsolute - - LastPathComponent - x - NetLocation - a - POSIXPath - //x - ParameterString-Escaped - <null> - ParameterString-Unescaped - <null> - Password - <null> - Path - //x - PathExtension - <null> - PortNumber - -1 - QueryString-Escaped - <null> - QueryString-Unescaped - <null> - ResourceSpecifier - <null> - Scheme - http - StrictPath - /x - URLBytes - - aHR0cDovL2EvL3g= - - URLData - - aHR0cDovL2EvL3g= - - URLString - http://a//x - UserName - <null> - WindowsPath - \\x - Out-NSResults - - absoluteString - http://a//x - absoluteURLString - http://a//x - baseURLString - <null> - deletingLastPathComponent - http://a// - deletingLastPathExtension - http://a//x - fragment - <null> - host - a - isFileURL - NO - lastPathComponent - x - password - <null> - path - //x - pathComponents - - / - x - - pathExtension - - port - <null> - query - <null> - relativePath - //x - relativeString - http://a//x - scheme - http - standardizedURL - http://a//x - user - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-001 + AppendingPathExtension-1-parse-absolute-file-001 In-URLCreator CFURLCreateWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file:///usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-002 + AppendingPathExtension-1-parse-absolute-file-002 In-URLCreator CFURLCreateWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file:/usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-003 + AppendingPathExtension-1-parse-absolute-file-003 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-004 + AppendingPathExtension-1-parse-absolute-file-004 In-URLCreator CFURLCreateWithBytes In-Url file://usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file://usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-005 + AppendingPathExtension-1-parse-absolute-file-005 In-URLCreator CFURLCreateWithBytes In-Url /usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - /usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-006 + AppendingPathExtension-1-parse-absolute-file-006 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-007 + AppendingPathExtension-1-parse-absolute-file-007 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/ - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-008 + AppendingPathExtension-1-parse-absolute-file-008 In-URLCreator CFURLCreateWithBytes In-Url file://localhost - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-009 + AppendingPathExtension-1-parse-absolute-file-009 In-URLCreator CFURLCreateWithBytes In-Url file:/// - Out-CFResults - - AppendingPathComponent-Directory - file:///NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-010 + AppendingPathExtension-1-parse-absolute-file-010 In-URLCreator CFURLCreateWithBytes In-Url file:// - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-011 + AppendingPathExtension-1-parse-absolute-file-011 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathComponent-Directory - file:/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-012 + AppendingPathExtension-1-parse-absolute-file-012 In-URLCreator CFURLCreateWithBytes In-Url FILE:// - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-013 + AppendingPathExtension-1-parse-absolute-file-013 In-URLCreator CFURLCreateWithBytes In-Url file:///Volumes - Out-CFResults - - AppendingPathComponent-Directory - file:///Volumes/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///Volumes/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///Volumes/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///Volumes/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-014 + AppendingPathExtension-1-parse-absolute-file-014 In-URLCreator CFURLCreateWithBytes In-Url file:///Users/darin - Out-CFResults - - AppendingPathComponent-Directory - file:///Users/darin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///Users/darin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///Users/darin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///Users/darin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-015 + AppendingPathExtension-1-parse-absolute-file-015 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathComponent-Directory - file:/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-016 + AppendingPathExtension-1-parse-absolute-file-016 In-URLCreator CFURLCreateWithBytes In-Url file://foo - Out-CFResults - - AppendingPathComponent-Directory - file://foo/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://foo/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://foo/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://foo/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-017 + AppendingPathExtension-1-parse-absolute-file-017 In-URLCreator CFURLCreateWithBytes In-Url file:///. - Out-CFResults - - AppendingPathComponent-Directory - file:///./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-018 + AppendingPathExtension-1-parse-absolute-file-018 In-URLCreator CFURLCreateWithBytes In-Url file:///./. - Out-CFResults - - AppendingPathComponent-Directory - file:///././NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///././NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///././NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///././NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-019 + AppendingPathExtension-1-parse-absolute-file-019 In-URLCreator CFURLCreateWithBytes In-Url file:///.///. - Out-CFResults - - AppendingPathComponent-Directory - file:///.///./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///.///./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///.///./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///.///./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-020 + AppendingPathExtension-1-parse-absolute-file-020 In-URLCreator CFURLCreateWithBytes In-Url file:///a/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-021 + AppendingPathExtension-1-parse-absolute-file-021 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-022 + AppendingPathExtension-1-parse-absolute-file-022 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b//.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b//../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b//../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b//../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b//../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-023 + AppendingPathExtension-1-parse-absolute-file-023 In-URLCreator CFURLCreateWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///./a/b/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///./a/b/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///./a/b/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///./a/b/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-024 + AppendingPathExtension-1-parse-absolute-file-024 In-URLCreator CFURLCreateWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/./b/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/./b/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/./b/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/./b/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-025 + AppendingPathExtension-1-parse-absolute-file-025 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/./../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/./../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/./../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/./../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-026 + AppendingPathExtension-1-parse-absolute-file-026 In-URLCreator CFURLCreateWithBytes In-Url file:///a///b//.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a///b//../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a///b//../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a///b//../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a///b//../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-027 + AppendingPathExtension-1-parse-absolute-file-027 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/../../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/../../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-028 + AppendingPathExtension-1-parse-absolute-file-028 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/c/../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/c/../../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/c/../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/c/../../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-029 + AppendingPathExtension-1-parse-absolute-file-029 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-030 + AppendingPathExtension-1-parse-absolute-file-030 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../c/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../c/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../c/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../c/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-file-031 + AppendingPathExtension-1-parse-absolute-file-031 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../c/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../c/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../c/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../c/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-001 + AppendingPathExtension-1-parse-absolute-ftp-001 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-002 + AppendingPathExtension-1-parse-absolute-ftp-002 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-003 + AppendingPathExtension-1-parse-absolute-ftp-003 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-004 + AppendingPathExtension-1-parse-absolute-ftp-004 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://luser@ftp.gnu.org/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://luser@ftp.gnu.org/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://luser@ftp.gnu.org/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://luser@ftp.gnu.org/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-005 + AppendingPathExtension-1-parse-absolute-ftp-005 In-URLCreator CFURLCreateWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://@ftp.gnu.org/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://@ftp.gnu.org/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://@ftp.gnu.org/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://@ftp.gnu.org/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-006 + AppendingPathExtension-1-parse-absolute-ftp-006 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://luser:password@ftp.gnu.org/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://luser:password@ftp.gnu.org/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://luser:password@ftp.gnu.org/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://luser:password@ftp.gnu.org/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-007 + AppendingPathExtension-1-parse-absolute-ftp-007 In-URLCreator CFURLCreateWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://:password@ftp.gnu.org/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://:password@ftp.gnu.org/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://:password@ftp.gnu.org/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://:password@ftp.gnu.org/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-008 + AppendingPathExtension-1-parse-absolute-ftp-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org:72/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org:72/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org:72/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org:72/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-ftp-009 + AppendingPathExtension-1-parse-absolute-ftp-009 In-URLCreator CFURLCreateWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://:72/pub/gnu/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://:72/pub/gnu/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://:72/pub/gnu/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://:72/pub/gnu/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-localhost-001 + AppendingPathExtension-1-parse-absolute-localhost-001 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/usr/local/bin/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/usr/local/bin/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/usr/local/bin/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/usr/local/bin/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-localhost-002 + AppendingPathExtension-1-parse-absolute-localhost-002 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/ - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-localhost-003 + AppendingPathExtension-1-parse-absolute-localhost-003 In-URLCreator CFURLCreateWithBytes In-Url http://localhost - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-001 + AppendingPathExtension-1-parse-absolute-query-001 In-URLCreator CFURLCreateWithBytes - In-Url - http://www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + In-Url + http://www.apple.com + Out-NSResults + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-002 + AppendingPathExtension-1-parse-absolute-query-002 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-003 + AppendingPathExtension-1-parse-absolute-query-003 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/dir/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/dir/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/dir/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/dir/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-004 + AppendingPathExtension-1-parse-absolute-query-004 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/dir/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/dir/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/dir/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/dir/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-005 + AppendingPathExtension-1-parse-absolute-query-005 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com:80 - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com:80/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com:80/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com:80/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com:80/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-006 + AppendingPathExtension-1-parse-absolute-query-006 In-URLCreator CFURLCreateWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AppendingPathComponent-Directory - http://darin:nothin@www.apple.com:42/dir/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin:nothin@www.apple.com:42/dir/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin:nothin@www.apple.com:42/dir/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin:nothin@www.apple.com:42/dir/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-007 + AppendingPathExtension-1-parse-absolute-query-007 In-URLCreator CFURLCreateWithBytes In-Url http:/ - Out-CFResults - - AppendingPathComponent-Directory - http:/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-008 + AppendingPathExtension-1-parse-absolute-query-008 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/query/NewPathComponent/?email=darin@apple.com - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/query/NewPathComponent?email=darin@apple.com - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/query/NewPathComponent/?email=darin@apple.com - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/query/NewPathComponent?email=darin@apple.com - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-009 + AppendingPathExtension-1-parse-absolute-query-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/NewPathComponent/?email=darin@apple.com - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/NewPathComponent?email=darin@apple.com - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/NewPathComponent/?email=darin@apple.com - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/NewPathComponent?email=darin@apple.com - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-010 + AppendingPathExtension-1-parse-absolute-query-010 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-011 + AppendingPathExtension-1-parse-absolute-query-011 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-012 + AppendingPathExtension-1-parse-absolute-query-012 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/ED/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/ED/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/ED/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/ED/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-013 + AppendingPathExtension-1-parse-absolute-query-013 In-URLCreator CFURLCreateWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AppendingPathComponent-Directory - http://sega.com/pc/catalog/SegaProduct.jhtml/NewPathComponent/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://sega.com/pc/catalog/SegaProduct.jhtml/NewPathComponent;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://sega.com/pc/catalog/SegaProduct.jhtml/NewPathComponent/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://sega.com/pc/catalog/SegaProduct.jhtml/NewPathComponent;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-query-014 + AppendingPathExtension-1-parse-absolute-query-014 In-URLCreator CFURLCreateWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AppendingPathComponent-Directory - http://groups.google.com/groups/NewPathComponent/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://groups.google.com/groups/NewPathComponent?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://groups.google.com/groups/NewPathComponent/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://groups.google.com/groups/NewPathComponent?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-fragment-001 + AppendingPathExtension-1-parse-absolute-fragment-001 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AppendingPathComponent-Directory - http://my.site.com/some/page.html/NewPathComponent/#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://my.site.com/some/page.html/NewPathComponent#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://my.site.com/some/page.html/NewPathComponent/#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://my.site.com/some/page.html/NewPathComponent#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-fragment-002 + AppendingPathExtension-1-parse-absolute-fragment-002 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AppendingPathComponent-Directory - http://my.site.com/NewPathComponent/#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://my.site.com/NewPathComponent#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://my.site.com/NewPathComponent/#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://my.site.com/NewPathComponent#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-fragment-003 + AppendingPathExtension-1-parse-absolute-fragment-003 In-URLCreator CFURLCreateWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AppendingPathComponent-Directory - scheme://user:pass@host:1/path/path2/file.html/NewPathComponent/;params?query#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - scheme://user:pass@host:1/path/path2/file.html/NewPathComponent;params?query#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - scheme://user:pass@host:1/path/path2/file.html/NewPathComponent/;params?query#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - scheme://user:pass@host:1/path/path2/file.html/NewPathComponent;params?query#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-001 + AppendingPathExtension-1-parse-absolute-escape-001 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/a%20space/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/a%20space/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/a%20space/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/a%20space/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-002 + AppendingPathExtension-1-parse-absolute-escape-002 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/aBrace%7B/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/aBrace%7B/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/aBrace%7B/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/aBrace%7B/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-003 + AppendingPathExtension-1-parse-absolute-escape-003 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/aJ%4a/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/aJ%4a/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/aJ%4a/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/aJ%4a/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-004 + AppendingPathExtension-1-parse-absolute-escape-004 In-URLCreator CFURLCreateWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AppendingPathComponent-Directory - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/NewPathComponent/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/NewPathComponent;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/NewPathComponent/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/NewPathComponent;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-005 + AppendingPathExtension-1-parse-absolute-escape-005 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/unescaped%20space/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/unescaped%20space/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/unescaped%20space/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/unescaped%20space/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-006 + AppendingPathExtension-1-parse-absolute-escape-006 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/unescaped%7Cpipe/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/unescaped%7Cpipe/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/unescaped%7Cpipe/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/unescaped%7Cpipe/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-007 + AppendingPathExtension-1-parse-absolute-escape-007 In-URLCreator CFURLCreateWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://darin%20adler@www.apple.com/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin%20adler@www.apple.com/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin%20adler@www.apple.com/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin%20adler@www.apple.com/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-008 + AppendingPathExtension-1-parse-absolute-escape-008 In-URLCreator CFURLCreateWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://darin:clever%20password@www.apple.com/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin:clever%20password@www.apple.com/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin:clever%20password@www.apple.com/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin:clever%20password@www.apple.com/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-009 + AppendingPathExtension-1-parse-absolute-escape-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple%20computer.com/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple%20computer.com/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple%20computer.com/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple%20computer.com/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-010 + AppendingPathExtension-1-parse-absolute-escape-010 In-URLCreator CFURLCreateWithBytes In-Url file:///%3F - Out-CFResults - - AppendingPathComponent-Directory - file:///%3F/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///%3F/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///%3F/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///%3F/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-011 + AppendingPathExtension-1-parse-absolute-escape-011 In-URLCreator CFURLCreateWithBytes In-Url file:///%78 - Out-CFResults - - AppendingPathComponent-Directory - file:///%78/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///%78/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///%78/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///%78/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-012 + AppendingPathExtension-1-parse-absolute-escape-012 In-URLCreator CFURLCreateWithBytes In-Url file:///? - Out-CFResults - - AppendingPathComponent-Directory - file:///NewPathComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///NewPathComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///NewPathComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///NewPathComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-013 + AppendingPathExtension-1-parse-absolute-escape-013 In-URLCreator CFURLCreateWithBytes In-Url file:///& - Out-CFResults - - AppendingPathComponent-Directory - file:///&/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///&/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///&/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///&/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-014 + AppendingPathExtension-1-parse-absolute-escape-014 In-URLCreator CFURLCreateWithBytes In-Url file:///x - Out-CFResults - - AppendingPathComponent-Directory - file:///x/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///x/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///x/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///x/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-015 + AppendingPathExtension-1-parse-absolute-escape-015 In-URLCreator CFURLCreateWithBytes In-Url http:///%3F - Out-CFResults - - AppendingPathComponent-Directory - http:///%3F/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///%3F/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///%3F/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///%3F/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-016 + AppendingPathExtension-1-parse-absolute-escape-016 In-URLCreator CFURLCreateWithBytes In-Url http:///%78 - Out-CFResults - - AppendingPathComponent-Directory - http:///%78/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///%78/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///%78/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///%78/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-017 + AppendingPathExtension-1-parse-absolute-escape-017 In-URLCreator CFURLCreateWithBytes In-Url http:///? - Out-CFResults - - AppendingPathComponent-Directory - http:///NewPathComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///NewPathComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///NewPathComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///NewPathComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-018 + AppendingPathExtension-1-parse-absolute-escape-018 In-URLCreator - CFURLCreateWithBytes - In-Url - http:///& - Out-CFResults - - AppendingPathComponent-Directory - http:///&/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///&/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - + CFURLCreateWithBytes + In-Url + http:///& Out-NSResults - - appendingPathComponent-Directory - http:///&/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///&/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-019 + AppendingPathExtension-1-parse-absolute-escape-019 In-URLCreator CFURLCreateWithBytes In-Url http:///x - Out-CFResults - - AppendingPathComponent-Directory - http:///x/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///x/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///x/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///x/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-020 + AppendingPathExtension-1-parse-absolute-escape-020 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%3F - Out-CFResults - - AppendingPathComponent-Directory - glorb:///%3F/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///%3F/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///%3F/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///%3F/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-021 + AppendingPathExtension-1-parse-absolute-escape-021 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%78 - Out-CFResults - - AppendingPathComponent-Directory - glorb:///%78/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///%78/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///%78/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///%78/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-022 + AppendingPathExtension-1-parse-absolute-escape-022 In-URLCreator CFURLCreateWithBytes In-Url glorb:///? - Out-CFResults - - AppendingPathComponent-Directory - glorb:///NewPathComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///NewPathComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///NewPathComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///NewPathComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-023 + AppendingPathExtension-1-parse-absolute-escape-023 In-URLCreator CFURLCreateWithBytes In-Url glorb:///& - Out-CFResults - - AppendingPathComponent-Directory - glorb:///&/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///&/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///&/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///&/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-escape-024 + AppendingPathExtension-1-parse-absolute-escape-024 In-URLCreator CFURLCreateWithBytes In-Url glorb:///x - Out-CFResults - - AppendingPathComponent-Directory - glorb:///x/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///x/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///x/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///x/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-mailto-001 + AppendingPathExtension-1-parse-absolute-mailto-001 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-mailto-002 + AppendingPathExtension-1-parse-absolute-mailto-002 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-news-001 + AppendingPathExtension-1-parse-absolute-news-001 In-URLCreator CFURLCreateWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-invalid-001 + AppendingPathExtension-1-parse-absolute-invalid-001 In-URLCreator CFURLCreateWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AppendingPathComponent-Directory - uahsfcncvuhrtgvnahr/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - uahsfcncvuhrtgvnahr/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - uahsfcncvuhrtgvnahr/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - uahsfcncvuhrtgvnahr/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-001 + AppendingPathExtension-1-parse-absolute-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AppendingPathComponent-Directory - http://10.1.1.1/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://10.1.1.1/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://10.1.1.1/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://10.1.1.1/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-002 + AppendingPathExtension-1-parse-absolute-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AppendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e]/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e]/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e]/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e]/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-003 + AppendingPathExtension-1-parse-absolute-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AppendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e%25en0]/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e%25en0]/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e%25en0]/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e%25en0]/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-004 + AppendingPathExtension-1-parse-absolute-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AppendingPathComponent-Directory - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/NewPathComponent/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/NewPathComponent?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/NewPathComponent/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/NewPathComponent?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-005 + AppendingPathExtension-1-parse-absolute-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AppendingPathComponent-Directory - http://ad.doubleclick.net/click/NewPathComponent/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://ad.doubleclick.net/click/NewPathComponent;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://ad.doubleclick.net/click/NewPathComponent/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://ad.doubleclick.net/click/NewPathComponent;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-006 + AppendingPathExtension-1-parse-absolute-real-world-006 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AppendingPathComponent-Directory - http://host.com/foo/bar/../index.html/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://host.com/foo/bar/../index.html/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://host.com/foo/bar/../index.html/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://host.com/foo/bar/../index.html/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-007 + AppendingPathExtension-1-parse-absolute-real-world-007 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AppendingPathComponent-Directory - http://host.com/foo/bar/./index.html/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://host.com/foo/bar/./index.html/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://host.com/foo/bar/./index.html/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://host.com/foo/bar/./index.html/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-real-world-008 + AppendingPathExtension-1-parse-absolute-real-world-008 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathComponent-Directory - http:/cgi-bin/Count.cgi/NewPathComponent/?ft=0 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/cgi-bin/Count.cgi/NewPathComponent?ft=0 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/cgi-bin/Count.cgi/NewPathComponent/?ft=0 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/cgi-bin/Count.cgi/NewPathComponent?ft=0 - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-001 + AppendingPathExtension-1-parse-ambiguous-url-001 In-URLCreator CFURLCreateWithBytes In-Url file:///// - Out-CFResults - - AppendingPathComponent-Directory - file://///NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://///NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://///NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://///NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-002 + AppendingPathExtension-1-parse-ambiguous-url-002 In-URLCreator CFURLCreateWithBytes In-Url file:/Volumes - Out-CFResults - - AppendingPathComponent-Directory - file:/Volumes/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/Volumes/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/Volumes/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/Volumes/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-003 + AppendingPathExtension-1-parse-ambiguous-url-003 In-URLCreator CFURLCreateWithBytes In-Url /Volumes - Out-CFResults - - AppendingPathComponent-Directory - /Volumes/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /Volumes/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /Volumes/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /Volumes/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-004 + AppendingPathExtension-1-parse-ambiguous-url-004 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathComponent-Directory - ./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-005 + AppendingPathExtension-1-parse-ambiguous-url-005 In-URLCreator CFURLCreateWithBytes In-Url ./a - Out-CFResults - - AppendingPathComponent-Directory - ./a/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ./a/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ./a/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ./a/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-006 + AppendingPathExtension-1-parse-ambiguous-url-006 In-URLCreator CFURLCreateWithBytes In-Url ../a - Out-CFResults - - AppendingPathComponent-Directory - ../a/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ../a/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ../a/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ../a/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-007 + AppendingPathExtension-1-parse-ambiguous-url-007 In-URLCreator CFURLCreateWithBytes In-Url ../../a - Out-CFResults - - AppendingPathComponent-Directory - ../../a/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ../../a/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ../../a/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ../../a/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-008 + AppendingPathExtension-1-parse-ambiguous-url-008 In-URLCreator CFURLCreateWithBytes In-Url file: - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-009 + AppendingPathExtension-1-parse-ambiguous-url-009 In-URLCreator CFURLCreateWithBytes In-Url / - Out-CFResults - - AppendingPathComponent-Directory - /NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-ambiguous-url-010 + AppendingPathExtension-1-parse-ambiguous-url-010 In-URLCreator CFURLCreateWithBytes In-Url http: - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://test.com/ - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-escape-001 + AppendingPathExtension-1-parse-relative-escape-001 In-URLCreator CFURLCreateWithBytes In-Url unescaped space - Out-CFResults - - AppendingPathComponent-Directory - unescaped%20space/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://test.com/ - AppendingPathComponent-File - unescaped%20space/NewPathComponent - AppendingPathComponent-File-BaseURL - http://test.com/ - Out-NSResults - - appendingPathComponent-Directory - unescaped%20space/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://test.com/ - appendingPathComponent-File - unescaped%20space/NewPathComponent - appendingPathComponent-File-BaseURL - http://test.com/ - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-001 + AppendingPathExtension-1-parse-relative-basic-001 In-URLCreator CFURLCreateWithBytes In-Url #zoo - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-002 + AppendingPathExtension-1-parse-relative-basic-002 In-URLCreator CFURLCreateWithBytes In-Url joe/blow - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/NewPathComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - joe/blow/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/NewPathComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-003 + AppendingPathExtension-1-parse-relative-basic-003 In-URLCreator CFURLCreateWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/NewPathComponent/?john=doe - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/NewPathComponent?john=doe - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - - Out-NSResults - - appendingPathComponent-Directory - joe/blow/NewPathComponent/?john=doe - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/NewPathComponent?john=doe - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + Out-NSResults + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-004 + AppendingPathExtension-1-parse-relative-basic-004 In-URLCreator CFURLCreateWithBytes In-Url ./joe/blow - Out-CFResults - - AppendingPathComponent-Directory - ./joe/blow/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - ./joe/blow/NewPathComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - ./joe/blow/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - ./joe/blow/NewPathComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-005 + AppendingPathExtension-1-parse-relative-basic-005 In-URLCreator CFURLCreateWithBytes In-Url ../joe/blow - Out-CFResults - - AppendingPathComponent-Directory - ../joe/blow/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - ../joe/blow/NewPathComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - ../joe/blow/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - ../joe/blow/NewPathComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-006 + AppendingPathExtension-1-parse-relative-basic-006 In-URLCreator CFURLCreateWithBytes In-Url /joe/blow - Out-CFResults - - AppendingPathComponent-Directory - /joe/blow/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - /joe/blow/NewPathComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - /joe/blow/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - /joe/blow/NewPathComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-007 + AppendingPathExtension-1-parse-relative-basic-007 In-URLCreator CFURLCreateWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/NewPathComponent/#frag2 - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/NewPathComponent#frag2 - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - joe/blow/NewPathComponent/#frag2 - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/NewPathComponent#frag2 - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-008 + AppendingPathExtension-1-parse-relative-basic-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AppendingPathComponent-Directory - ftp://my.server.com/some/document/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://my.server.com/some/document/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://my.server.com/some/document/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://my.server.com/some/document/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-009 + AppendingPathExtension-1-parse-relative-basic-009 In-URLCreator CFURLCreateWithBytes In-Url /joe:blow - Out-CFResults - - AppendingPathComponent-Directory - /joe:blow/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - /joe:blow/NewPathComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - /joe:blow/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - /joe:blow/NewPathComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-basic-010 + AppendingPathExtension-1-parse-relative-basic-010 In-URLCreator CFURLCreateWithBytes In-Url joe:blow - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-illegal-001 + AppendingPathExtension-1-parse-relative-illegal-001 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-illegal-002 + AppendingPathExtension-1-parse-relative-illegal-002 In-URLCreator CFURLCreateWithBytes In-Url ??? - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-001 + AppendingPathExtension-1-parse-relative-rfc-001 In-URLCreator CFURLCreateWithBytes In-Url g:h - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-002 + AppendingPathExtension-1-parse-relative-rfc-002 In-URLCreator CFURLCreateWithBytes In-Url g - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-003 + AppendingPathExtension-1-parse-relative-rfc-003 In-URLCreator CFURLCreateWithBytes In-Url ./g - Out-CFResults - - AppendingPathComponent-Directory - ./g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-004 + AppendingPathExtension-1-parse-relative-rfc-004 In-URLCreator CFURLCreateWithBytes In-Url g/ - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-005 + AppendingPathExtension-1-parse-relative-rfc-005 In-URLCreator CFURLCreateWithBytes In-Url /g - Out-CFResults - - AppendingPathComponent-Directory - /g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-006 + AppendingPathExtension-1-parse-relative-rfc-006 In-URLCreator CFURLCreateWithBytes In-Url //g - Out-CFResults - - AppendingPathComponent-Directory - //g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - //g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - //g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - //g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-007 + AppendingPathExtension-1-parse-relative-rfc-007 In-URLCreator CFURLCreateWithBytes In-Url ?y - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-008 + AppendingPathExtension-1-parse-relative-rfc-008 In-URLCreator CFURLCreateWithBytes In-Url g?y - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/?y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent?y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/?y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent?y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-009 + AppendingPathExtension-1-parse-relative-rfc-009 In-URLCreator CFURLCreateWithBytes In-Url #s - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-010 + AppendingPathExtension-1-parse-relative-rfc-010 In-URLCreator CFURLCreateWithBytes In-Url g#s - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-011 + AppendingPathExtension-1-parse-relative-rfc-011 In-URLCreator CFURLCreateWithBytes In-Url g?y#s - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/?y#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent?y#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/?y#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent?y#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-012 + AppendingPathExtension-1-parse-relative-rfc-012 In-URLCreator CFURLCreateWithBytes In-Url ;x - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-013 + AppendingPathExtension-1-parse-relative-rfc-013 In-URLCreator CFURLCreateWithBytes In-Url g;x - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/;x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent;x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/;x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent;x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-014 + AppendingPathExtension-1-parse-relative-rfc-014 In-URLCreator CFURLCreateWithBytes In-Url g;x?y#s - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/;x?y#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent;x?y#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/;x?y#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent;x?y#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-015 + AppendingPathExtension-1-parse-relative-rfc-015 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-016 + AppendingPathExtension-1-parse-relative-rfc-016 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathComponent-Directory - ./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-017 + AppendingPathExtension-1-parse-relative-rfc-017 In-URLCreator CFURLCreateWithBytes In-Url ./ - Out-CFResults - - AppendingPathComponent-Directory - ./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-018 + AppendingPathExtension-1-parse-relative-rfc-018 In-URLCreator CFURLCreateWithBytes In-Url .. - Out-CFResults - - AppendingPathComponent-Directory - ../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-019 + AppendingPathExtension-1-parse-relative-rfc-019 In-URLCreator CFURLCreateWithBytes In-Url ../ - Out-CFResults - - AppendingPathComponent-Directory - ../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-020 + AppendingPathExtension-1-parse-relative-rfc-020 In-URLCreator CFURLCreateWithBytes In-Url ../g - Out-CFResults - - AppendingPathComponent-Directory - ../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-021 + AppendingPathExtension-1-parse-relative-rfc-021 In-URLCreator CFURLCreateWithBytes In-Url ../.. - Out-CFResults - - AppendingPathComponent-Directory - ../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-022 + AppendingPathExtension-1-parse-relative-rfc-022 In-URLCreator CFURLCreateWithBytes In-Url ../../ - Out-CFResults - - AppendingPathComponent-Directory - ../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-023 + AppendingPathExtension-1-parse-relative-rfc-023 In-URLCreator - CFURLCreateWithBytes - In-Url - ../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + CFURLCreateWithBytes + In-Url + ../../g Out-NSResults - - appendingPathComponent-Directory - ../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-024 + AppendingPathExtension-1-parse-relative-rfc-024 In-URLCreator CFURLCreateWithBytes In-Url ../../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-025 + AppendingPathExtension-1-parse-relative-rfc-025 In-URLCreator CFURLCreateWithBytes In-Url ../../../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../../../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-026 + AppendingPathExtension-1-parse-relative-rfc-026 In-URLCreator CFURLCreateWithBytes In-Url /./g - Out-CFResults - - AppendingPathComponent-Directory - /./g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /./g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /./g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /./g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-027 + AppendingPathExtension-1-parse-relative-rfc-027 In-URLCreator CFURLCreateWithBytes In-Url /../g - Out-CFResults - - AppendingPathComponent-Directory - /../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-028 + AppendingPathExtension-1-parse-relative-rfc-028 In-URLCreator CFURLCreateWithBytes In-Url g. - Out-CFResults - - AppendingPathComponent-Directory - g./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g./NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g./NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-029 + AppendingPathExtension-1-parse-relative-rfc-029 In-URLCreator CFURLCreateWithBytes In-Url .g - Out-CFResults - - AppendingPathComponent-Directory - .g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - .g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - .g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - .g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-030 + AppendingPathExtension-1-parse-relative-rfc-030 In-URLCreator CFURLCreateWithBytes In-Url g.. - Out-CFResults - - AppendingPathComponent-Directory - g../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g../NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g../NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-031 + AppendingPathExtension-1-parse-relative-rfc-031 In-URLCreator CFURLCreateWithBytes In-Url ..g - Out-CFResults - - AppendingPathComponent-Directory - ..g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ..g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ..g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ..g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-032 + AppendingPathExtension-1-parse-relative-rfc-032 In-URLCreator CFURLCreateWithBytes In-Url ./../g - Out-CFResults - - AppendingPathComponent-Directory - ./../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./../g/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./../g/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-033 + AppendingPathExtension-1-parse-relative-rfc-033 In-URLCreator CFURLCreateWithBytes In-Url ./g/. - Out-CFResults - - AppendingPathComponent-Directory - ./g/./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./g/./NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./g/./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./g/./NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-034 + AppendingPathExtension-1-parse-relative-rfc-034 In-URLCreator CFURLCreateWithBytes In-Url g/./h - Out-CFResults - - AppendingPathComponent-Directory - g/./h/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/./h/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/./h/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/./h/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-035 + AppendingPathExtension-1-parse-relative-rfc-035 In-URLCreator CFURLCreateWithBytes In-Url g/../h - Out-CFResults - - AppendingPathComponent-Directory - g/../h/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/../h/NewPathComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/../h/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/../h/NewPathComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-036 + AppendingPathExtension-1-parse-relative-rfc-036 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/./y - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/;x=1/./y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent;x=1/./y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/;x=1/./y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent;x=1/./y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-037 + AppendingPathExtension-1-parse-relative-rfc-037 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/../y - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/;x=1/../y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent;x=1/../y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/;x=1/../y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent;x=1/../y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-038 + AppendingPathExtension-1-parse-relative-rfc-038 In-URLCreator CFURLCreateWithBytes In-Url g?y/./x - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/?y/./x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent?y/./x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/?y/./x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent?y/./x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-039 + AppendingPathExtension-1-parse-relative-rfc-039 In-URLCreator CFURLCreateWithBytes In-Url g?y/../x - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/?y/../x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent?y/../x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/?y/../x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent?y/../x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-040 + AppendingPathExtension-1-parse-relative-rfc-040 In-URLCreator CFURLCreateWithBytes In-Url g#s/./x - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/#s/./x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent#s/./x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/#s/./x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent#s/./x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-041 + AppendingPathExtension-1-parse-relative-rfc-041 In-URLCreator CFURLCreateWithBytes In-Url g#s/../x - Out-CFResults - - AppendingPathComponent-Directory - g/NewPathComponent/#s/../x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/NewPathComponent#s/../x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/NewPathComponent/#s/../x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/NewPathComponent#s/../x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-042 + AppendingPathExtension-1-parse-relative-rfc-042 In-URLCreator CFURLCreateWithBytes In-Url http:g - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-043 + AppendingPathExtension-1-parse-relative-rfc-043 In-URLCreator CFURLCreateWithBytes In-Url file:g - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-044 + AppendingPathExtension-1-parse-relative-rfc-044 In-URLCreator CFURLCreateWithBytes In-Url http:/g - Out-CFResults - - AppendingPathComponent-Directory - http:/g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-rfc-045 + AppendingPathExtension-1-parse-relative-rfc-045 In-URLCreator CFURLCreateWithBytes In-Url file:/g - Out-CFResults - - AppendingPathComponent-Directory - file:/g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://macosx.apple.com - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-real-world-001 + AppendingPathExtension-1-parse-relative-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url /Images/foo.gif - Out-CFResults - - AppendingPathComponent-Directory - /Images/foo.gif/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://macosx.apple.com - AppendingPathComponent-File - /Images/foo.gif/NewPathComponent - AppendingPathComponent-File-BaseURL - http://macosx.apple.com - Out-NSResults - - appendingPathComponent-Directory - /Images/foo.gif/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://macosx.apple.com - appendingPathComponent-File - /Images/foo.gif/NewPathComponent - appendingPathComponent-File-BaseURL - http://macosx.apple.com - + <null url> In-Base http://www.ticketmaster.com/search?keyword=tool - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-real-world-002 + AppendingPathExtension-1-parse-relative-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url ../artist/720703 - Out-CFResults - - AppendingPathComponent-Directory - ../artist/720703/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://www.ticketmaster.com/search?keyword=tool - AppendingPathComponent-File - ../artist/720703/NewPathComponent - AppendingPathComponent-File-BaseURL - http://www.ticketmaster.com/search?keyword=tool - Out-NSResults - - appendingPathComponent-Directory - ../artist/720703/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://www.ticketmaster.com/search?keyword=tool - appendingPathComponent-File - ../artist/720703/NewPathComponent - appendingPathComponent-File-BaseURL - http://www.ticketmaster.com/search?keyword=tool - + <null url> In-Base http://www.cnn.com - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-real-world-003 + AppendingPathExtension-1-parse-relative-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AppendingPathComponent-Directory - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - http://www.cnn.com - AppendingPathComponent-File - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/NewPathComponent - AppendingPathComponent-File-BaseURL - http://www.cnn.com - Out-NSResults - - appendingPathComponent-Directory - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - http://www.cnn.com - appendingPathComponent-File - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/NewPathComponent - appendingPathComponent-File-BaseURL - http://www.cnn.com - + <null url> In-Base http://www.muquit.com/muquit/software/Count/Count.html - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-real-world-004 + AppendingPathExtension-1-parse-relative-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathComponent-Directory - http:/cgi-bin/Count.cgi/NewPathComponent/?ft=0 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/cgi-bin/Count.cgi/NewPathComponent?ft=0 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/cgi-bin/Count.cgi/NewPathComponent/?ft=0 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/cgi-bin/Count.cgi/NewPathComponent?ft=0 - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-relative-real-world-005 + AppendingPathExtension-1-parse-relative-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AppendingPathComponent-Directory - databases/76/containers/2891/items/NewPathComponent/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathComponent-Directory-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - AppendingPathComponent-File - databases/76/containers/2891/items/NewPathComponent?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathComponent-File-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - Out-NSResults - - appendingPathComponent-Directory - databases/76/containers/2891/items/NewPathComponent/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathComponent-Directory-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - appendingPathComponent-File - databases/76/containers/2891/items/NewPathComponent?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathComponent-File-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-001 + AppendingPathExtension-1-parse-absolute-with-relative-001 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-002 + AppendingPathExtension-1-parse-absolute-with-relative-002 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-003 + AppendingPathExtension-1-parse-absolute-with-relative-003 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-004 + AppendingPathExtension-1-parse-absolute-with-relative-004 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-005 + AppendingPathExtension-1-parse-absolute-with-relative-005 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-006 + AppendingPathExtension-1-parse-absolute-with-relative-006 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-007 + AppendingPathExtension-1-parse-absolute-with-relative-007 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-008 + AppendingPathExtension-1-parse-absolute-with-relative-008 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-009 + AppendingPathExtension-1-parse-absolute-with-relative-009 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-010 + AppendingPathExtension-1-parse-absolute-with-relative-010 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-011 + AppendingPathExtension-1-parse-absolute-with-relative-011 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../../../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../../../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../../../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../../../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-012 + AppendingPathExtension-1-parse-absolute-with-relative-012 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-013 + AppendingPathExtension-1-parse-absolute-with-relative-013 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-014 + AppendingPathExtension-1-parse-absolute-with-relative-014 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-015 + AppendingPathExtension-1-parse-absolute-with-relative-015 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/.g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/.g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/.g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/.g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-016 + AppendingPathExtension-1-parse-absolute-with-relative-016 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g../NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g../NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g../NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g../NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-017 + AppendingPathExtension-1-parse-absolute-with-relative-017 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/..g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/..g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/..g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/..g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-018 + AppendingPathExtension-1-parse-absolute-with-relative-018 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./../g/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./../g/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./../g/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./../g/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-019 + AppendingPathExtension-1-parse-absolute-with-relative-019 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/./NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/./NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/./NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/./NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-020 + AppendingPathExtension-1-parse-absolute-with-relative-020 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/./h - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/./h/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/./h/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/./h/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/./h/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-021 + AppendingPathExtension-1-parse-absolute-with-relative-021 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/../h/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/../h/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/../h/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/../h/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-022 + AppendingPathExtension-1-parse-absolute-with-relative-022 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/;x=1/./y - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent;x=1/./y - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/;x=1/./y - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent;x=1/./y - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-023 + AppendingPathExtension-1-parse-absolute-with-relative-023 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/;x=1/../y - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent;x=1/../y - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/;x=1/../y - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent;x=1/../y - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-024 + AppendingPathExtension-1-parse-absolute-with-relative-024 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/?y/./x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent?y/./x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/?y/./x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent?y/./x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-025 + AppendingPathExtension-1-parse-absolute-with-relative-025 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/?y/../x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent?y/../x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/?y/../x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent?y/../x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-026 + AppendingPathExtension-1-parse-absolute-with-relative-026 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/#s/./x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent#s/./x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/#s/./x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent#s/./x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-027 + AppendingPathExtension-1-parse-absolute-with-relative-027 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/#s/../x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/NewPathComponent#s/../x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/NewPathComponent/#s/../x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/NewPathComponent#s/../x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-028 + AppendingPathExtension-1-parse-absolute-with-relative-028 In-URLCreator CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/../../x/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/../../x/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/../../x/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/../../x/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - NewPathComponent + In-PathExtension + NewPathExtension In-Title - AppendingPathComponent-1-parse-absolute-with-relative-029 + AppendingPathExtension-1-parse-absolute-with-relative-029 In-URLCreator CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/..///../x/NewPathComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/..///../x/NewPathComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/..///../x/NewPathComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/..///../x/NewPathComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-001 + AppendingPathExtension-2-parse-absolute-file-001 In-URLCreator CFURLCreateWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file:///usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-002 + AppendingPathExtension-2-parse-absolute-file-002 In-URLCreator CFURLCreateWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file:/usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-003 + AppendingPathExtension-2-parse-absolute-file-003 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-004 + AppendingPathExtension-2-parse-absolute-file-004 In-URLCreator CFURLCreateWithBytes In-Url file://usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - file://usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-005 + AppendingPathExtension-2-parse-absolute-file-005 In-URLCreator CFURLCreateWithBytes In-Url /usr/local/bin - Out-CFResults - - AppendingPathComponent-Directory - /usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-006 + AppendingPathExtension-2-parse-absolute-file-006 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-007 + AppendingPathExtension-2-parse-absolute-file-007 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/ - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-008 + AppendingPathExtension-2-parse-absolute-file-008 In-URLCreator CFURLCreateWithBytes In-Url file://localhost - Out-CFResults - - AppendingPathComponent-Directory - file://localhost/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://localhost/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://localhost/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://localhost/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-009 + AppendingPathExtension-2-parse-absolute-file-009 In-URLCreator CFURLCreateWithBytes In-Url file:/// - Out-CFResults - - AppendingPathComponent-Directory - file:///new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-010 + AppendingPathExtension-2-parse-absolute-file-010 In-URLCreator CFURLCreateWithBytes In-Url file:// - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-011 + AppendingPathExtension-2-parse-absolute-file-011 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathComponent-Directory - file:/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-012 - In-URLCreator - CFURLCreateWithBytes - In-Url - FILE:// - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - + AppendingPathExtension-2-parse-absolute-file-012 + In-URLCreator + CFURLCreateWithBytes + In-Url + FILE:// Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-013 + AppendingPathExtension-2-parse-absolute-file-013 In-URLCreator CFURLCreateWithBytes In-Url file:///Volumes - Out-CFResults - - AppendingPathComponent-Directory - file:///Volumes/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///Volumes/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///Volumes/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///Volumes/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-014 + AppendingPathExtension-2-parse-absolute-file-014 In-URLCreator CFURLCreateWithBytes In-Url file:///Users/darin - Out-CFResults - - AppendingPathComponent-Directory - file:///Users/darin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///Users/darin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///Users/darin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///Users/darin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-015 + AppendingPathExtension-2-parse-absolute-file-015 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathComponent-Directory - file:/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-016 + AppendingPathExtension-2-parse-absolute-file-016 In-URLCreator CFURLCreateWithBytes In-Url file://foo - Out-CFResults - - AppendingPathComponent-Directory - file://foo/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://foo/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://foo/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://foo/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-017 + AppendingPathExtension-2-parse-absolute-file-017 In-URLCreator CFURLCreateWithBytes In-Url file:///. - Out-CFResults - - AppendingPathComponent-Directory - file:///./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-018 + AppendingPathExtension-2-parse-absolute-file-018 In-URLCreator CFURLCreateWithBytes In-Url file:///./. - Out-CFResults - - AppendingPathComponent-Directory - file:///././new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///././new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///././new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///././new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-019 + AppendingPathExtension-2-parse-absolute-file-019 In-URLCreator CFURLCreateWithBytes In-Url file:///.///. - Out-CFResults - - AppendingPathComponent-Directory - file:///.///./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///.///./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///.///./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///.///./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-020 + AppendingPathExtension-2-parse-absolute-file-020 In-URLCreator CFURLCreateWithBytes In-Url file:///a/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-021 + AppendingPathExtension-2-parse-absolute-file-021 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-022 + AppendingPathExtension-2-parse-absolute-file-022 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b//.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b//../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b//../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b//../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b//../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-023 + AppendingPathExtension-2-parse-absolute-file-023 In-URLCreator CFURLCreateWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///./a/b/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///./a/b/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///./a/b/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///./a/b/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-024 + AppendingPathExtension-2-parse-absolute-file-024 In-URLCreator CFURLCreateWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/./b/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/./b/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/./b/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/./b/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-025 + AppendingPathExtension-2-parse-absolute-file-025 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/./../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/./../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/./../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/./../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-026 + AppendingPathExtension-2-parse-absolute-file-026 In-URLCreator CFURLCreateWithBytes In-Url file:///a///b//.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a///b//../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a///b//../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a///b//../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a///b//../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-027 + AppendingPathExtension-2-parse-absolute-file-027 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-028 + AppendingPathExtension-2-parse-absolute-file-028 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/b/c/../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/b/c/../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/b/c/../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/b/c/../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-029 + AppendingPathExtension-2-parse-absolute-file-029 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-030 + AppendingPathExtension-2-parse-absolute-file-030 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../c/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../c/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../c/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../c/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-file-031 + AppendingPathExtension-2-parse-absolute-file-031 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathComponent-Directory - file:///a/../b/../c/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///a/../b/../c/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///a/../b/../c/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///a/../b/../c/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-001 + AppendingPathExtension-2-parse-absolute-ftp-001 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-002 + AppendingPathExtension-2-parse-absolute-ftp-002 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-003 + AppendingPathExtension-2-parse-absolute-ftp-003 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-004 + AppendingPathExtension-2-parse-absolute-ftp-004 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://luser@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://luser@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://luser@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://luser@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-005 + AppendingPathExtension-2-parse-absolute-ftp-005 In-URLCreator CFURLCreateWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-006 + AppendingPathExtension-2-parse-absolute-ftp-006 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://luser:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://luser:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://luser:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://luser:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-007 + AppendingPathExtension-2-parse-absolute-ftp-007 In-URLCreator CFURLCreateWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://:password@ftp.gnu.org/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-008 + AppendingPathExtension-2-parse-absolute-ftp-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://ftp.gnu.org:72/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://ftp.gnu.org:72/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://ftp.gnu.org:72/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://ftp.gnu.org:72/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-ftp-009 + AppendingPathExtension-2-parse-absolute-ftp-009 In-URLCreator CFURLCreateWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AppendingPathComponent-Directory - ftp://:72/pub/gnu/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://:72/pub/gnu/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://:72/pub/gnu/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://:72/pub/gnu/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-localhost-001 + AppendingPathExtension-2-parse-absolute-localhost-001 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/usr/local/bin/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/usr/local/bin/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/usr/local/bin/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/usr/local/bin/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-localhost-002 + AppendingPathExtension-2-parse-absolute-localhost-002 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/ - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-localhost-003 + AppendingPathExtension-2-parse-absolute-localhost-003 In-URLCreator CFURLCreateWithBytes In-Url http://localhost - Out-CFResults - - AppendingPathComponent-Directory - http://localhost/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://localhost/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://localhost/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://localhost/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-001 + AppendingPathExtension-2-parse-absolute-query-001 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-002 + AppendingPathExtension-2-parse-absolute-query-002 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-003 + AppendingPathExtension-2-parse-absolute-query-003 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/dir/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/dir/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/dir/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/dir/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-004 + AppendingPathExtension-2-parse-absolute-query-004 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/dir/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/dir/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/dir/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/dir/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-005 + AppendingPathExtension-2-parse-absolute-query-005 In-URLCreator CFURLCreateWithBytes In-Url - http://www.apple.com:80 - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com:80/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com:80/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - + http://www.apple.com:80 Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com:80/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com:80/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-006 + AppendingPathExtension-2-parse-absolute-query-006 In-URLCreator CFURLCreateWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AppendingPathComponent-Directory - http://darin:nothin@www.apple.com:42/dir/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin:nothin@www.apple.com:42/dir/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin:nothin@www.apple.com:42/dir/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin:nothin@www.apple.com:42/dir/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-007 + AppendingPathExtension-2-parse-absolute-query-007 In-URLCreator CFURLCreateWithBytes In-Url http:/ - Out-CFResults - - AppendingPathComponent-Directory - http:/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-008 + AppendingPathExtension-2-parse-absolute-query-008 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/query/new%3BPath%3FComponent/?email=darin@apple.com - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/query/new%3BPath%3FComponent?email=darin@apple.com - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/query/new%3BPath%3FComponent/?email=darin@apple.com - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/query/new%3BPath%3FComponent?email=darin@apple.com - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-009 + AppendingPathExtension-2-parse-absolute-query-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/?email=darin@apple.com - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent?email=darin@apple.com - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple.com/new%3BPath%3FComponent/?email=darin@apple.com - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple.com/new%3BPath%3FComponent?email=darin@apple.com - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-010 + AppendingPathExtension-2-parse-absolute-query-010 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-011 + AppendingPathExtension-2-parse-absolute-query-011 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-012 + AppendingPathExtension-2-parse-absolute-query-012 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AppendingPathComponent-Directory - HTTP://WWW.ZOO.COM/ED/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - HTTP://WWW.ZOO.COM/ED/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - HTTP://WWW.ZOO.COM/ED/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - HTTP://WWW.ZOO.COM/ED/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-013 + AppendingPathExtension-2-parse-absolute-query-013 In-URLCreator CFURLCreateWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AppendingPathComponent-Directory - http://sega.com/pc/catalog/SegaProduct.jhtml/new%3BPath%3FComponent/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://sega.com/pc/catalog/SegaProduct.jhtml/new%3BPath%3FComponent;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://sega.com/pc/catalog/SegaProduct.jhtml/new%3BPath%3FComponent/;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://sega.com/pc/catalog/SegaProduct.jhtml/new%3BPath%3FComponent;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-query-014 + AppendingPathExtension-2-parse-absolute-query-014 In-URLCreator CFURLCreateWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AppendingPathComponent-Directory - http://groups.google.com/groups/new%3BPath%3FComponent/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://groups.google.com/groups/new%3BPath%3FComponent?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://groups.google.com/groups/new%3BPath%3FComponent/?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://groups.google.com/groups/new%3BPath%3FComponent?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-fragment-001 + AppendingPathExtension-2-parse-absolute-fragment-001 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AppendingPathComponent-Directory - http://my.site.com/some/page.html/new%3BPath%3FComponent/#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://my.site.com/some/page.html/new%3BPath%3FComponent#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://my.site.com/some/page.html/new%3BPath%3FComponent/#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://my.site.com/some/page.html/new%3BPath%3FComponent#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-fragment-002 + AppendingPathExtension-2-parse-absolute-fragment-002 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AppendingPathComponent-Directory - http://my.site.com/new%3BPath%3FComponent/#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://my.site.com/new%3BPath%3FComponent#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://my.site.com/new%3BPath%3FComponent/#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://my.site.com/new%3BPath%3FComponent#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-fragment-003 + AppendingPathExtension-2-parse-absolute-fragment-003 In-URLCreator CFURLCreateWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AppendingPathComponent-Directory - scheme://user:pass@host:1/path/path2/file.html/new%3BPath%3FComponent/;params?query#fragment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - scheme://user:pass@host:1/path/path2/file.html/new%3BPath%3FComponent;params?query#fragment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - scheme://user:pass@host:1/path/path2/file.html/new%3BPath%3FComponent/;params?query#fragment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - scheme://user:pass@host:1/path/path2/file.html/new%3BPath%3FComponent;params?query#fragment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-001 + AppendingPathExtension-2-parse-absolute-escape-001 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/a%20space/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/a%20space/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/a%20space/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/a%20space/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-002 + AppendingPathExtension-2-parse-absolute-escape-002 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/aBrace%7B/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/aBrace%7B/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/aBrace%7B/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/aBrace%7B/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-003 + AppendingPathExtension-2-parse-absolute-escape-003 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/aJ%4a/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/aJ%4a/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/aJ%4a/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/aJ%4a/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-004 + AppendingPathExtension-2-parse-absolute-escape-004 In-URLCreator CFURLCreateWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AppendingPathComponent-Directory - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/new%3BPath%3FComponent/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/new%3BPath%3FComponent;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/new%3BPath%3FComponent/;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me/new%3BPath%3FComponent;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-005 + AppendingPathExtension-2-parse-absolute-escape-005 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/unescaped%20space/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/unescaped%20space/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/unescaped%20space/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/unescaped%20space/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-006 + AppendingPathExtension-2-parse-absolute-escape-006 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AppendingPathComponent-Directory - http://test.com/unescaped%7Cpipe/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://test.com/unescaped%7Cpipe/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://test.com/unescaped%7Cpipe/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://test.com/unescaped%7Cpipe/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-007 + AppendingPathExtension-2-parse-absolute-escape-007 In-URLCreator CFURLCreateWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://darin%20adler@www.apple.com/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin%20adler@www.apple.com/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin%20adler@www.apple.com/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin%20adler@www.apple.com/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-008 + AppendingPathExtension-2-parse-absolute-escape-008 In-URLCreator CFURLCreateWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AppendingPathComponent-Directory - http://darin:clever%20password@www.apple.com/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://darin:clever%20password@www.apple.com/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://darin:clever%20password@www.apple.com/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://darin:clever%20password@www.apple.com/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-009 + AppendingPathExtension-2-parse-absolute-escape-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AppendingPathComponent-Directory - http://www.apple%20computer.com/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://www.apple%20computer.com/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://www.apple%20computer.com/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://www.apple%20computer.com/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-010 + AppendingPathExtension-2-parse-absolute-escape-010 In-URLCreator CFURLCreateWithBytes In-Url file:///%3F - Out-CFResults - - AppendingPathComponent-Directory - file:///%3F/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///%3F/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///%3F/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///%3F/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-011 + AppendingPathExtension-2-parse-absolute-escape-011 In-URLCreator CFURLCreateWithBytes In-Url file:///%78 - Out-CFResults - - AppendingPathComponent-Directory - file:///%78/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///%78/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///%78/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///%78/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-012 + AppendingPathExtension-2-parse-absolute-escape-012 In-URLCreator CFURLCreateWithBytes In-Url file:///? - Out-CFResults - - AppendingPathComponent-Directory - file:///new%3BPath%3FComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///new%3BPath%3FComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///new%3BPath%3FComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///new%3BPath%3FComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-013 + AppendingPathExtension-2-parse-absolute-escape-013 In-URLCreator CFURLCreateWithBytes In-Url file:///& - Out-CFResults - - AppendingPathComponent-Directory - file:///&/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///&/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///&/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///&/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-014 + AppendingPathExtension-2-parse-absolute-escape-014 In-URLCreator CFURLCreateWithBytes In-Url file:///x - Out-CFResults - - AppendingPathComponent-Directory - file:///x/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:///x/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:///x/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:///x/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-015 + AppendingPathExtension-2-parse-absolute-escape-015 In-URLCreator CFURLCreateWithBytes In-Url http:///%3F - Out-CFResults - - AppendingPathComponent-Directory - http:///%3F/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///%3F/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///%3F/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///%3F/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-016 + AppendingPathExtension-2-parse-absolute-escape-016 In-URLCreator CFURLCreateWithBytes In-Url http:///%78 - Out-CFResults - - AppendingPathComponent-Directory - http:///%78/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///%78/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///%78/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///%78/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-017 + AppendingPathExtension-2-parse-absolute-escape-017 In-URLCreator CFURLCreateWithBytes In-Url http:///? - Out-CFResults - - AppendingPathComponent-Directory - http:///new%3BPath%3FComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///new%3BPath%3FComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///new%3BPath%3FComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///new%3BPath%3FComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-018 + AppendingPathExtension-2-parse-absolute-escape-018 In-URLCreator CFURLCreateWithBytes In-Url http:///& - Out-CFResults - - AppendingPathComponent-Directory - http:///&/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///&/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///&/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///&/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-019 + AppendingPathExtension-2-parse-absolute-escape-019 In-URLCreator CFURLCreateWithBytes In-Url http:///x - Out-CFResults - - AppendingPathComponent-Directory - http:///x/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:///x/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:///x/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:///x/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-020 + AppendingPathExtension-2-parse-absolute-escape-020 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%3F - Out-CFResults - - AppendingPathComponent-Directory - glorb:///%3F/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///%3F/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///%3F/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///%3F/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-021 + AppendingPathExtension-2-parse-absolute-escape-021 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%78 - Out-CFResults - - AppendingPathComponent-Directory - glorb:///%78/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///%78/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///%78/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///%78/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-022 + AppendingPathExtension-2-parse-absolute-escape-022 In-URLCreator CFURLCreateWithBytes In-Url glorb:///? - Out-CFResults - - AppendingPathComponent-Directory - glorb:///new%3BPath%3FComponent/? - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///new%3BPath%3FComponent? - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///new%3BPath%3FComponent/? - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///new%3BPath%3FComponent? - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-023 + AppendingPathExtension-2-parse-absolute-escape-023 In-URLCreator CFURLCreateWithBytes In-Url glorb:///& - Out-CFResults - - AppendingPathComponent-Directory - glorb:///&/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///&/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - glorb:///&/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///&/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-escape-024 + AppendingPathExtension-2-parse-absolute-escape-024 In-URLCreator CFURLCreateWithBytes - In-Url - glorb:///x - Out-CFResults - - AppendingPathComponent-Directory - glorb:///x/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - glorb:///x/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - - Out-NSResults - - appendingPathComponent-Directory - glorb:///x/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - glorb:///x/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + In-Url + glorb:///x + Out-NSResults + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-mailto-001 + AppendingPathExtension-2-parse-absolute-mailto-001 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-mailto-002 + AppendingPathExtension-2-parse-absolute-mailto-002 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-news-001 + AppendingPathExtension-2-parse-absolute-news-001 In-URLCreator CFURLCreateWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-invalid-001 + AppendingPathExtension-2-parse-absolute-invalid-001 In-URLCreator CFURLCreateWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AppendingPathComponent-Directory - uahsfcncvuhrtgvnahr/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - uahsfcncvuhrtgvnahr/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - uahsfcncvuhrtgvnahr/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - uahsfcncvuhrtgvnahr/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-001 + AppendingPathExtension-2-parse-absolute-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AppendingPathComponent-Directory - http://10.1.1.1/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://10.1.1.1/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://10.1.1.1/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://10.1.1.1/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-002 + AppendingPathExtension-2-parse-absolute-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AppendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e]/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e]/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e]/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e]/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-003 + AppendingPathExtension-2-parse-absolute-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AppendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e%25en0]/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e%25en0]/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://[fe80::20a:27ff:feae:8b9e%25en0]/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://[fe80::20a:27ff:feae:8b9e%25en0]/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-004 + AppendingPathExtension-2-parse-absolute-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AppendingPathComponent-Directory - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/new%3BPath%3FComponent/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/new%3BPath%3FComponent?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/new%3BPath%3FComponent/?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://apps5.oingo.com/apps/domainpark/domainpark.cgi/new%3BPath%3FComponent?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-005 + AppendingPathExtension-2-parse-absolute-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AppendingPathComponent-Directory - http://ad.doubleclick.net/click/new%3BPath%3FComponent/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://ad.doubleclick.net/click/new%3BPath%3FComponent;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://ad.doubleclick.net/click/new%3BPath%3FComponent/;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://ad.doubleclick.net/click/new%3BPath%3FComponent;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-006 + AppendingPathExtension-2-parse-absolute-real-world-006 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AppendingPathComponent-Directory - http://host.com/foo/bar/../index.html/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://host.com/foo/bar/../index.html/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://host.com/foo/bar/../index.html/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://host.com/foo/bar/../index.html/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-007 + AppendingPathExtension-2-parse-absolute-real-world-007 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AppendingPathComponent-Directory - http://host.com/foo/bar/./index.html/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://host.com/foo/bar/./index.html/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://host.com/foo/bar/./index.html/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://host.com/foo/bar/./index.html/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-real-world-008 + AppendingPathExtension-2-parse-absolute-real-world-008 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathComponent-Directory - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent/?ft=0 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent?ft=0 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent/?ft=0 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent?ft=0 - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-001 + AppendingPathExtension-2-parse-ambiguous-url-001 In-URLCreator CFURLCreateWithBytes In-Url file:///// - Out-CFResults - - AppendingPathComponent-Directory - file://///new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file://///new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file://///new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file://///new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-002 + AppendingPathExtension-2-parse-ambiguous-url-002 In-URLCreator CFURLCreateWithBytes In-Url file:/Volumes - Out-CFResults - - AppendingPathComponent-Directory - file:/Volumes/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/Volumes/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/Volumes/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/Volumes/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-003 + AppendingPathExtension-2-parse-ambiguous-url-003 In-URLCreator CFURLCreateWithBytes In-Url /Volumes - Out-CFResults - - AppendingPathComponent-Directory - /Volumes/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /Volumes/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /Volumes/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /Volumes/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-004 + AppendingPathExtension-2-parse-ambiguous-url-004 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathComponent-Directory - ./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-005 + AppendingPathExtension-2-parse-ambiguous-url-005 In-URLCreator CFURLCreateWithBytes In-Url ./a - Out-CFResults - - AppendingPathComponent-Directory - ./a/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ./a/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ./a/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ./a/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-006 + AppendingPathExtension-2-parse-ambiguous-url-006 In-URLCreator CFURLCreateWithBytes In-Url ../a - Out-CFResults - - AppendingPathComponent-Directory - ../a/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ../a/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ../a/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ../a/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-007 + AppendingPathExtension-2-parse-ambiguous-url-007 In-URLCreator CFURLCreateWithBytes In-Url ../../a - Out-CFResults - - AppendingPathComponent-Directory - ../../a/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ../../a/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ../../a/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ../../a/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-008 + AppendingPathExtension-2-parse-ambiguous-url-008 In-URLCreator CFURLCreateWithBytes In-Url file: - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-009 + AppendingPathExtension-2-parse-ambiguous-url-009 In-URLCreator CFURLCreateWithBytes In-Url / - Out-CFResults - - AppendingPathComponent-Directory - /new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - /new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - /new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - /new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-ambiguous-url-010 + AppendingPathExtension-2-parse-ambiguous-url-010 In-URLCreator CFURLCreateWithBytes In-Url http: - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://test.com/ - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-escape-001 + AppendingPathExtension-2-parse-relative-escape-001 In-URLCreator CFURLCreateWithBytes In-Url unescaped space - Out-CFResults - - AppendingPathComponent-Directory - unescaped%20space/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://test.com/ - AppendingPathComponent-File - unescaped%20space/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://test.com/ - Out-NSResults - - appendingPathComponent-Directory - unescaped%20space/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://test.com/ - appendingPathComponent-File - unescaped%20space/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://test.com/ - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-001 + AppendingPathExtension-2-parse-relative-basic-001 In-URLCreator CFURLCreateWithBytes In-Url #zoo - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-002 + AppendingPathExtension-2-parse-relative-basic-002 In-URLCreator CFURLCreateWithBytes In-Url joe/blow - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-003 + AppendingPathExtension-2-parse-relative-basic-003 In-URLCreator CFURLCreateWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/?john=doe - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/new%3BPath%3FComponent?john=doe - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/?john=doe - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/new%3BPath%3FComponent?john=doe - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-004 + AppendingPathExtension-2-parse-relative-basic-004 In-URLCreator CFURLCreateWithBytes In-Url ./joe/blow - Out-CFResults - - AppendingPathComponent-Directory - ./joe/blow/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - ./joe/blow/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - ./joe/blow/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - ./joe/blow/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-005 + AppendingPathExtension-2-parse-relative-basic-005 In-URLCreator CFURLCreateWithBytes In-Url ../joe/blow - Out-CFResults - - AppendingPathComponent-Directory - ../joe/blow/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - ../joe/blow/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - ../joe/blow/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - ../joe/blow/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-006 + AppendingPathExtension-2-parse-relative-basic-006 In-URLCreator CFURLCreateWithBytes In-Url /joe/blow - Out-CFResults - - AppendingPathComponent-Directory - /joe/blow/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - /joe/blow/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - /joe/blow/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - /joe/blow/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-007 + AppendingPathExtension-2-parse-relative-basic-007 In-URLCreator CFURLCreateWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AppendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/#frag2 - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - joe/blow/new%3BPath%3FComponent#frag2 - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - joe/blow/new%3BPath%3FComponent/#frag2 - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - joe/blow/new%3BPath%3FComponent#frag2 - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-008 + AppendingPathExtension-2-parse-relative-basic-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AppendingPathComponent-Directory - ftp://my.server.com/some/document/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - ftp://my.server.com/some/document/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - ftp://my.server.com/some/document/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - ftp://my.server.com/some/document/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-009 + AppendingPathExtension-2-parse-relative-basic-009 In-URLCreator CFURLCreateWithBytes In-Url /joe:blow - Out-CFResults - - AppendingPathComponent-Directory - /joe:blow/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - AppendingPathComponent-File - /joe:blow/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathComponent-Directory - /joe:blow/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - appendingPathComponent-File - /joe:blow/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-basic-010 + AppendingPathExtension-2-parse-relative-basic-010 In-URLCreator CFURLCreateWithBytes In-Url joe:blow - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-illegal-001 + AppendingPathExtension-2-parse-relative-illegal-001 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + Out-NSResults + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-illegal-002 + AppendingPathExtension-2-parse-relative-illegal-002 In-URLCreator CFURLCreateWithBytes In-Url ??? - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-001 + AppendingPathExtension-2-parse-relative-rfc-001 In-URLCreator CFURLCreateWithBytes In-Url g:h - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-002 + AppendingPathExtension-2-parse-relative-rfc-002 In-URLCreator CFURLCreateWithBytes In-Url g - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-003 + AppendingPathExtension-2-parse-relative-rfc-003 In-URLCreator CFURLCreateWithBytes In-Url ./g - Out-CFResults - - AppendingPathComponent-Directory - ./g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-004 + AppendingPathExtension-2-parse-relative-rfc-004 In-URLCreator CFURLCreateWithBytes In-Url g/ - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-005 + AppendingPathExtension-2-parse-relative-rfc-005 In-URLCreator CFURLCreateWithBytes In-Url /g - Out-CFResults - - AppendingPathComponent-Directory - /g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-006 + AppendingPathExtension-2-parse-relative-rfc-006 In-URLCreator CFURLCreateWithBytes In-Url //g - Out-CFResults - - AppendingPathComponent-Directory - //g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - //g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - //g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - //g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-007 + AppendingPathExtension-2-parse-relative-rfc-007 In-URLCreator CFURLCreateWithBytes In-Url ?y - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-008 + AppendingPathExtension-2-parse-relative-rfc-008 In-URLCreator CFURLCreateWithBytes In-Url g?y - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/?y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent?y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/?y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent?y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-009 + AppendingPathExtension-2-parse-relative-rfc-009 In-URLCreator CFURLCreateWithBytes In-Url #s - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-010 + AppendingPathExtension-2-parse-relative-rfc-010 In-URLCreator CFURLCreateWithBytes In-Url g#s - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-011 + AppendingPathExtension-2-parse-relative-rfc-011 In-URLCreator CFURLCreateWithBytes In-Url g?y#s - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/?y#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent?y#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/?y#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent?y#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-012 + AppendingPathExtension-2-parse-relative-rfc-012 In-URLCreator CFURLCreateWithBytes In-Url ;x - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-013 + AppendingPathExtension-2-parse-relative-rfc-013 In-URLCreator CFURLCreateWithBytes In-Url g;x - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/;x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent;x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/;x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent;x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-014 + AppendingPathExtension-2-parse-relative-rfc-014 In-URLCreator CFURLCreateWithBytes In-Url g;x?y#s - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/;x?y#s - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent;x?y#s - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/;x?y#s - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent;x?y#s - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-015 + AppendingPathExtension-2-parse-relative-rfc-015 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-016 + AppendingPathExtension-2-parse-relative-rfc-016 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathComponent-Directory - ./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-017 + AppendingPathExtension-2-parse-relative-rfc-017 In-URLCreator CFURLCreateWithBytes In-Url ./ - Out-CFResults - - AppendingPathComponent-Directory - ./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-018 + AppendingPathExtension-2-parse-relative-rfc-018 In-URLCreator CFURLCreateWithBytes In-Url .. - Out-CFResults - - AppendingPathComponent-Directory - ../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-019 + AppendingPathExtension-2-parse-relative-rfc-019 In-URLCreator CFURLCreateWithBytes In-Url ../ - Out-CFResults - - AppendingPathComponent-Directory - ../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-020 + AppendingPathExtension-2-parse-relative-rfc-020 In-URLCreator CFURLCreateWithBytes In-Url ../g - Out-CFResults - - AppendingPathComponent-Directory - ../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-021 + AppendingPathExtension-2-parse-relative-rfc-021 In-URLCreator CFURLCreateWithBytes In-Url ../.. - Out-CFResults - - AppendingPathComponent-Directory - ../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-022 + AppendingPathExtension-2-parse-relative-rfc-022 In-URLCreator CFURLCreateWithBytes In-Url ../../ - Out-CFResults - - AppendingPathComponent-Directory - ../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-023 + AppendingPathExtension-2-parse-relative-rfc-023 In-URLCreator CFURLCreateWithBytes In-Url ../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-024 + AppendingPathExtension-2-parse-relative-rfc-024 In-URLCreator CFURLCreateWithBytes In-Url ../../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-025 + AppendingPathExtension-2-parse-relative-rfc-025 In-URLCreator CFURLCreateWithBytes In-Url ../../../../g - Out-CFResults - - AppendingPathComponent-Directory - ../../../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ../../../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ../../../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ../../../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-026 + AppendingPathExtension-2-parse-relative-rfc-026 In-URLCreator CFURLCreateWithBytes In-Url /./g - Out-CFResults - - AppendingPathComponent-Directory - /./g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /./g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /./g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /./g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-027 + AppendingPathExtension-2-parse-relative-rfc-027 In-URLCreator CFURLCreateWithBytes In-Url /../g - Out-CFResults - - AppendingPathComponent-Directory - /../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - /../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - /../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - /../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-028 + AppendingPathExtension-2-parse-relative-rfc-028 In-URLCreator CFURLCreateWithBytes In-Url g. - Out-CFResults - - AppendingPathComponent-Directory - g./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-029 + AppendingPathExtension-2-parse-relative-rfc-029 In-URLCreator CFURLCreateWithBytes In-Url .g - Out-CFResults - - AppendingPathComponent-Directory - .g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - .g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - .g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - .g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-030 + AppendingPathExtension-2-parse-relative-rfc-030 In-URLCreator CFURLCreateWithBytes In-Url g.. - Out-CFResults - - AppendingPathComponent-Directory - g../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-031 + AppendingPathExtension-2-parse-relative-rfc-031 In-URLCreator CFURLCreateWithBytes In-Url ..g - Out-CFResults - - AppendingPathComponent-Directory - ..g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ..g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ..g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ..g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-032 + AppendingPathExtension-2-parse-relative-rfc-032 In-URLCreator CFURLCreateWithBytes In-Url ./../g - Out-CFResults - - AppendingPathComponent-Directory - ./../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-033 + AppendingPathExtension-2-parse-relative-rfc-033 In-URLCreator CFURLCreateWithBytes In-Url ./g/. - Out-CFResults - - AppendingPathComponent-Directory - ./g/./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - ./g/./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - ./g/./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - ./g/./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-034 + AppendingPathExtension-2-parse-relative-rfc-034 In-URLCreator CFURLCreateWithBytes In-Url - g/./h - Out-CFResults - - AppendingPathComponent-Directory - g/./h/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/./h/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + g/./h Out-NSResults - - appendingPathComponent-Directory - g/./h/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/./h/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-035 + AppendingPathExtension-2-parse-relative-rfc-035 In-URLCreator CFURLCreateWithBytes In-Url g/../h - Out-CFResults - - AppendingPathComponent-Directory - g/../h/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/../h/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/../h/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/../h/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-036 + AppendingPathExtension-2-parse-relative-rfc-036 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/./y - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/;x=1/./y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent;x=1/./y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/;x=1/./y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent;x=1/./y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-037 + AppendingPathExtension-2-parse-relative-rfc-037 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/../y - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/;x=1/../y - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent;x=1/../y - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/;x=1/../y - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent;x=1/../y - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-038 + AppendingPathExtension-2-parse-relative-rfc-038 In-URLCreator CFURLCreateWithBytes In-Url g?y/./x - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/?y/./x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent?y/./x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/?y/./x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent?y/./x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-039 + AppendingPathExtension-2-parse-relative-rfc-039 In-URLCreator CFURLCreateWithBytes In-Url g?y/../x - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/?y/../x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent?y/../x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/?y/../x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent?y/../x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-040 + AppendingPathExtension-2-parse-relative-rfc-040 In-URLCreator CFURLCreateWithBytes In-Url g#s/./x - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/#s/./x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent#s/./x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/#s/./x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent#s/./x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-041 + AppendingPathExtension-2-parse-relative-rfc-041 In-URLCreator CFURLCreateWithBytes In-Url g#s/../x - Out-CFResults - - AppendingPathComponent-Directory - g/new%3BPath%3FComponent/#s/../x - AppendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - AppendingPathComponent-File - g/new%3BPath%3FComponent#s/../x - AppendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathComponent-Directory - g/new%3BPath%3FComponent/#s/../x - appendingPathComponent-Directory-BaseURL - http://a/b/c/d;p?q - appendingPathComponent-File - g/new%3BPath%3FComponent#s/../x - appendingPathComponent-File-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-042 + AppendingPathExtension-2-parse-relative-rfc-042 In-URLCreator CFURLCreateWithBytes In-Url http:g - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-043 + AppendingPathExtension-2-parse-relative-rfc-043 In-URLCreator CFURLCreateWithBytes In-Url file:g - Out-CFResults - - AppendingPathComponent-Directory - <null> - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - <null> - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - <null> - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - <null> - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-044 + AppendingPathExtension-2-parse-relative-rfc-044 In-URLCreator CFURLCreateWithBytes In-Url http:/g - Out-CFResults - - AppendingPathComponent-Directory - http:/g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-rfc-045 + AppendingPathExtension-2-parse-relative-rfc-045 In-URLCreator CFURLCreateWithBytes In-Url file:/g - Out-CFResults - - AppendingPathComponent-Directory - file:/g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - file:/g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - file:/g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - file:/g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://macosx.apple.com - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-real-world-001 + AppendingPathExtension-2-parse-relative-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url /Images/foo.gif - Out-CFResults - - AppendingPathComponent-Directory - /Images/foo.gif/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://macosx.apple.com - AppendingPathComponent-File - /Images/foo.gif/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://macosx.apple.com - Out-NSResults - - appendingPathComponent-Directory - /Images/foo.gif/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://macosx.apple.com - appendingPathComponent-File - /Images/foo.gif/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://macosx.apple.com - + <null url> In-Base http://www.ticketmaster.com/search?keyword=tool - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-real-world-002 + AppendingPathExtension-2-parse-relative-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url ../artist/720703 - Out-CFResults - - AppendingPathComponent-Directory - ../artist/720703/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://www.ticketmaster.com/search?keyword=tool - AppendingPathComponent-File - ../artist/720703/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://www.ticketmaster.com/search?keyword=tool - Out-NSResults - - appendingPathComponent-Directory - ../artist/720703/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://www.ticketmaster.com/search?keyword=tool - appendingPathComponent-File - ../artist/720703/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://www.ticketmaster.com/search?keyword=tool - + <null url> In-Base http://www.cnn.com - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-real-world-003 + AppendingPathExtension-2-parse-relative-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AppendingPathComponent-Directory - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - http://www.cnn.com - AppendingPathComponent-File - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - http://www.cnn.com - Out-NSResults - - appendingPathComponent-Directory - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - http://www.cnn.com - appendingPathComponent-File - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - http://www.cnn.com - + <null url> In-Base http://www.muquit.com/muquit/software/Count/Count.html - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-real-world-004 + AppendingPathExtension-2-parse-relative-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathComponent-Directory - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent/?ft=0 - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent?ft=0 - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent/?ft=0 - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http:/cgi-bin/Count.cgi/new%3BPath%3FComponent?ft=0 - appendingPathComponent-File-BaseURL - <null> - + <null url> In-Base http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-relative-real-world-005 + AppendingPathExtension-2-parse-relative-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AppendingPathComponent-Directory - databases/76/containers/2891/items/new%3BPath%3FComponent/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathComponent-Directory-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - AppendingPathComponent-File - databases/76/containers/2891/items/new%3BPath%3FComponent?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathComponent-File-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - Out-NSResults - - appendingPathComponent-Directory - databases/76/containers/2891/items/new%3BPath%3FComponent/?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathComponent-Directory-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - appendingPathComponent-File - databases/76/containers/2891/items/new%3BPath%3FComponent?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathComponent-File-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-001 + AppendingPathExtension-2-parse-absolute-with-relative-001 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-002 + AppendingPathExtension-2-parse-absolute-with-relative-002 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-003 + AppendingPathExtension-2-parse-absolute-with-relative-003 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-004 + AppendingPathExtension-2-parse-absolute-with-relative-004 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-005 + AppendingPathExtension-2-parse-absolute-with-relative-005 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-006 + AppendingPathExtension-2-parse-absolute-with-relative-006 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-007 + AppendingPathExtension-2-parse-absolute-with-relative-007 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-008 + AppendingPathExtension-2-parse-absolute-with-relative-008 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-009 + AppendingPathExtension-2-parse-absolute-with-relative-009 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-010 + AppendingPathExtension-2-parse-absolute-with-relative-010 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-011 + AppendingPathExtension-2-parse-absolute-with-relative-011 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../../../../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../../../../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../../../../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../../../../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-012 + AppendingPathExtension-2-parse-absolute-with-relative-012 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-013 + AppendingPathExtension-2-parse-absolute-with-relative-013 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-014 + AppendingPathExtension-2-parse-absolute-with-relative-014 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-015 + AppendingPathExtension-2-parse-absolute-with-relative-015 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/.g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/.g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/.g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/.g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-016 + AppendingPathExtension-2-parse-absolute-with-relative-016 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g../new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g../new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g../new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g../new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-017 + AppendingPathExtension-2-parse-absolute-with-relative-017 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/..g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/..g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/..g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/..g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-018 + AppendingPathExtension-2-parse-absolute-with-relative-018 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./../g/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./../g/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./../g/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./../g/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-019 + AppendingPathExtension-2-parse-absolute-with-relative-019 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/./g/./new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/./g/./new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/./g/./new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/./g/./new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-020 + AppendingPathExtension-2-parse-absolute-with-relative-020 In-URLCreator - CFURLCreateWithBytes - In-Url - http://a/b/c/g/./h - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/./h/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/./h/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - + CFURLCreateWithBytes + In-Url + http://a/b/c/g/./h Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/./h/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/./h/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-021 + AppendingPathExtension-2-parse-absolute-with-relative-021 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/../h/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/../h/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/../h/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/../h/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-022 + AppendingPathExtension-2-parse-absolute-with-relative-022 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/;x=1/./y - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent;x=1/./y - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/;x=1/./y - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent;x=1/./y - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-023 + AppendingPathExtension-2-parse-absolute-with-relative-023 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/;x=1/../y - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent;x=1/../y - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/;x=1/../y - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent;x=1/../y - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-024 + AppendingPathExtension-2-parse-absolute-with-relative-024 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/?y/./x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent?y/./x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/?y/./x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent?y/./x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-025 + AppendingPathExtension-2-parse-absolute-with-relative-025 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/?y/../x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent?y/../x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/?y/../x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent?y/../x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-026 + AppendingPathExtension-2-parse-absolute-with-relative-026 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/#s/./x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent#s/./x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/#s/./x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent#s/./x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-027 + AppendingPathExtension-2-parse-absolute-with-relative-027 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/#s/../x - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent#s/../x - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/b/c/g/new%3BPath%3FComponent/#s/../x - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/b/c/g/new%3BPath%3FComponent#s/../x - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-028 + AppendingPathExtension-2-parse-absolute-with-relative-028 In-URLCreator CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/../../x/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/../../x/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/../../x/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/../../x/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> - In-PathComponent - new;Path?Component + In-PathExtension + New;Path?Extension In-Title - AppendingPathComponent-2-parse-absolute-with-relative-029 + AppendingPathExtension-2-parse-absolute-with-relative-029 In-URLCreator CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AppendingPathComponent-Directory - http://a/..///../x/new%3BPath%3FComponent/ - AppendingPathComponent-Directory-BaseURL - <null> - AppendingPathComponent-File - http://a/..///../x/new%3BPath%3FComponent - AppendingPathComponent-File-BaseURL - <null> - Out-NSResults - - appendingPathComponent-Directory - http://a/..///../x/new%3BPath%3FComponent/ - appendingPathComponent-Directory-BaseURL - <null> - appendingPathComponent-File - http://a/..///../x/new%3BPath%3FComponent - appendingPathComponent-File-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-001 + AppendingPathExtension-3-parse-absolute-file-001 In-URLCreator CFURLCreateWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AppendingPathExtension - file:///usr/local/bin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///usr/local/bin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-002 + AppendingPathExtension-3-parse-absolute-file-002 In-URLCreator CFURLCreateWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AppendingPathExtension - file:/usr/local/bin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/usr/local/bin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-003 + AppendingPathExtension-3-parse-absolute-file-003 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AppendingPathExtension - file://localhost/usr/local/bin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/usr/local/bin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-004 + AppendingPathExtension-3-parse-absolute-file-004 In-URLCreator CFURLCreateWithBytes In-Url file://usr/local/bin - Out-CFResults - - AppendingPathExtension - file://usr/local/bin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://usr/local/bin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-005 + AppendingPathExtension-3-parse-absolute-file-005 In-URLCreator CFURLCreateWithBytes In-Url /usr/local/bin - Out-CFResults - - AppendingPathExtension - /usr/local/bin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /usr/local/bin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-006 + AppendingPathExtension-3-parse-absolute-file-006 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathExtension - file://localhost/usr/local/bin.NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/usr/local/bin.NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-007 + AppendingPathExtension-3-parse-absolute-file-007 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/ - Out-CFResults - - AppendingPathExtension - file://localhost/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-008 + AppendingPathExtension-3-parse-absolute-file-008 In-URLCreator CFURLCreateWithBytes In-Url file://localhost - Out-CFResults - - AppendingPathExtension - file://localhost.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-009 + AppendingPathExtension-3-parse-absolute-file-009 In-URLCreator CFURLCreateWithBytes In-Url file:/// - Out-CFResults - - AppendingPathExtension - file:///.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-010 + AppendingPathExtension-3-parse-absolute-file-010 In-URLCreator CFURLCreateWithBytes In-Url file:// - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-011 + AppendingPathExtension-3-parse-absolute-file-011 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathExtension - file:/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-012 + AppendingPathExtension-3-parse-absolute-file-012 In-URLCreator CFURLCreateWithBytes In-Url FILE:// - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-013 + AppendingPathExtension-3-parse-absolute-file-013 In-URLCreator CFURLCreateWithBytes In-Url file:///Volumes - Out-CFResults - - AppendingPathExtension - file:///Volumes.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///Volumes.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-014 + AppendingPathExtension-3-parse-absolute-file-014 In-URLCreator CFURLCreateWithBytes In-Url file:///Users/darin - Out-CFResults - - AppendingPathExtension - file:///Users/darin.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///Users/darin.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-015 + AppendingPathExtension-3-parse-absolute-file-015 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathExtension - file:/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-016 + AppendingPathExtension-3-parse-absolute-file-016 In-URLCreator CFURLCreateWithBytes In-Url file://foo - Out-CFResults - - AppendingPathExtension - file://foo.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://foo.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-017 + AppendingPathExtension-3-parse-absolute-file-017 In-URLCreator CFURLCreateWithBytes In-Url file:///. - Out-CFResults - - AppendingPathExtension - file:///..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-018 + AppendingPathExtension-3-parse-absolute-file-018 In-URLCreator CFURLCreateWithBytes In-Url file:///./. - Out-CFResults - - AppendingPathExtension - file:///./..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///./..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-019 + AppendingPathExtension-3-parse-absolute-file-019 In-URLCreator CFURLCreateWithBytes In-Url file:///.///. - Out-CFResults - - AppendingPathExtension - file:///.///..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.///..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-020 + AppendingPathExtension-3-parse-absolute-file-020 In-URLCreator CFURLCreateWithBytes In-Url file:///a/.. - Out-CFResults - - AppendingPathExtension - file:///a/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-021 + AppendingPathExtension-3-parse-absolute-file-021 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/.. - Out-CFResults - - AppendingPathExtension - file:///a/b/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-022 + AppendingPathExtension-3-parse-absolute-file-022 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b//.. - Out-CFResults - - AppendingPathExtension - file:///a/b//...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b//...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-023 + AppendingPathExtension-3-parse-absolute-file-023 In-URLCreator CFURLCreateWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AppendingPathExtension - file:///./a/b/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///./a/b/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-024 + AppendingPathExtension-3-parse-absolute-file-024 In-URLCreator CFURLCreateWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AppendingPathExtension - file:///a/./b/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/./b/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-025 + AppendingPathExtension-3-parse-absolute-file-025 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AppendingPathExtension - file:///a/b/./...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/./...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-026 + AppendingPathExtension-3-parse-absolute-file-026 In-URLCreator CFURLCreateWithBytes In-Url file:///a///b//.. - Out-CFResults - - AppendingPathExtension - file:///a///b//...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a///b//...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-027 + AppendingPathExtension-3-parse-absolute-file-027 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AppendingPathExtension - file:///a/b/../...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/../...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-028 + AppendingPathExtension-3-parse-absolute-file-028 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AppendingPathExtension - file:///a/b/c/../...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/c/../...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-029 + AppendingPathExtension-3-parse-absolute-file-029 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AppendingPathExtension - file:///a/../b/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-030 + AppendingPathExtension-3-parse-absolute-file-030 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathExtension - file:///a/../b/../c.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/../c.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-file-031 + AppendingPathExtension-3-parse-absolute-file-031 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathExtension - file:///a/../b/../c.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/../c.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-001 + AppendingPathExtension-3-parse-absolute-ftp-001 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-002 + AppendingPathExtension-3-parse-absolute-ftp-002 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-003 + AppendingPathExtension-3-parse-absolute-ftp-003 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-004 + AppendingPathExtension-3-parse-absolute-ftp-004 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-005 + AppendingPathExtension-3-parse-absolute-ftp-005 In-URLCreator CFURLCreateWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://@ftp.gnu.org/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://@ftp.gnu.org/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-006 + AppendingPathExtension-3-parse-absolute-ftp-006 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-007 + AppendingPathExtension-3-parse-absolute-ftp-007 In-URLCreator CFURLCreateWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-008 + AppendingPathExtension-3-parse-absolute-ftp-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org:72/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org:72/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-ftp-009 + AppendingPathExtension-3-parse-absolute-ftp-009 In-URLCreator CFURLCreateWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://:72/pub/gnu.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://:72/pub/gnu.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-localhost-001 + AppendingPathExtension-3-parse-absolute-localhost-001 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathExtension - http://localhost/usr/local/bin.NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost/usr/local/bin.NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-localhost-002 + AppendingPathExtension-3-parse-absolute-localhost-002 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/ - Out-CFResults - - AppendingPathExtension - http://localhost/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-localhost-003 + AppendingPathExtension-3-parse-absolute-localhost-003 In-URLCreator CFURLCreateWithBytes In-Url http://localhost - Out-CFResults - - AppendingPathExtension - http://localhost.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-001 + AppendingPathExtension-3-parse-absolute-query-001 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-002 + AppendingPathExtension-3-parse-absolute-query-002 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AppendingPathExtension - http://www.apple.com/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-003 + AppendingPathExtension-3-parse-absolute-query-003 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AppendingPathExtension - http://www.apple.com/dir.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/dir.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-004 + AppendingPathExtension-3-parse-absolute-query-004 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AppendingPathExtension - http://www.apple.com/dir.NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/dir.NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-005 + AppendingPathExtension-3-parse-absolute-query-005 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com:80 - Out-CFResults - - AppendingPathExtension - http://www.apple.com:80.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com:80.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-006 + AppendingPathExtension-3-parse-absolute-query-006 In-URLCreator CFURLCreateWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AppendingPathExtension - http://darin:nothin@www.apple.com:42/dir.NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin:nothin@www.apple.com:42/dir.NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-007 + AppendingPathExtension-3-parse-absolute-query-007 In-URLCreator CFURLCreateWithBytes In-Url http:/ - Out-CFResults - - AppendingPathExtension - http:/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-008 + AppendingPathExtension-3-parse-absolute-query-008 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com/query.NewPathExtension?email=darin@apple.com - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/query.NewPathExtension?email=darin@apple.com - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-009 + AppendingPathExtension-3-parse-absolute-query-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com.NewPathExtension?email=darin@apple.com - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com.NewPathExtension?email=darin@apple.com - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-010 + AppendingPathExtension-3-parse-absolute-query-010 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-011 + AppendingPathExtension-3-parse-absolute-query-011 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-012 + AppendingPathExtension-3-parse-absolute-query-012 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM/ED.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM/ED.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-013 + AppendingPathExtension-3-parse-absolute-query-013 In-URLCreator CFURLCreateWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AppendingPathExtension - http://sega.com/pc/catalog/SegaProduct.jhtml.NewPathExtension;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://sega.com/pc/catalog/SegaProduct.jhtml.NewPathExtension;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-query-014 + AppendingPathExtension-3-parse-absolute-query-014 In-URLCreator CFURLCreateWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AppendingPathExtension - http://groups.google.com/groups.NewPathExtension?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://groups.google.com/groups.NewPathExtension?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-fragment-001 + AppendingPathExtension-3-parse-absolute-fragment-001 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AppendingPathExtension - http://my.site.com/some/page.html.NewPathExtension#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://my.site.com/some/page.html.NewPathExtension#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-fragment-002 + AppendingPathExtension-3-parse-absolute-fragment-002 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AppendingPathExtension - http://my.site.com.NewPathExtension#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://my.site.com.NewPathExtension#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-fragment-003 + AppendingPathExtension-3-parse-absolute-fragment-003 In-URLCreator CFURLCreateWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AppendingPathExtension - scheme://user:pass@host:1/path/path2/file.html.NewPathExtension;params?query#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - scheme://user:pass@host:1/path/path2/file.html.NewPathExtension;params?query#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-001 + AppendingPathExtension-3-parse-absolute-escape-001 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AppendingPathExtension - http://test.com/a%20space.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/a%20space.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-002 + AppendingPathExtension-3-parse-absolute-escape-002 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AppendingPathExtension - http://test.com/aBrace%7B.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/aBrace%7B.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-003 + AppendingPathExtension-3-parse-absolute-escape-003 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AppendingPathExtension - http://test.com/aJ%4a.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/aJ%4a.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-004 + AppendingPathExtension-3-parse-absolute-escape-004 In-URLCreator CFURLCreateWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AppendingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me.NewPathExtension;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me.NewPathExtension;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-005 + AppendingPathExtension-3-parse-absolute-escape-005 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AppendingPathExtension - http://test.com/unescaped%20space.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/unescaped%20space.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-006 + AppendingPathExtension-3-parse-absolute-escape-006 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AppendingPathExtension - http://test.com/unescaped%7Cpipe.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/unescaped%7Cpipe.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-007 + AppendingPathExtension-3-parse-absolute-escape-007 In-URLCreator CFURLCreateWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AppendingPathExtension - http://darin%20adler@www.apple.com.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin%20adler@www.apple.com.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-008 + AppendingPathExtension-3-parse-absolute-escape-008 In-URLCreator CFURLCreateWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AppendingPathExtension - http://darin:clever%20password@www.apple.com.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin:clever%20password@www.apple.com.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-009 + AppendingPathExtension-3-parse-absolute-escape-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AppendingPathExtension - http://www.apple%20computer.com.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple%20computer.com.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-010 + AppendingPathExtension-3-parse-absolute-escape-010 In-URLCreator CFURLCreateWithBytes In-Url file:///%3F - Out-CFResults - - AppendingPathExtension - file:///%3F.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///%3F.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-011 + AppendingPathExtension-3-parse-absolute-escape-011 In-URLCreator CFURLCreateWithBytes In-Url file:///%78 - Out-CFResults - - AppendingPathExtension - file:///%78.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///%78.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-012 + AppendingPathExtension-3-parse-absolute-escape-012 In-URLCreator CFURLCreateWithBytes In-Url file:///? - Out-CFResults - - AppendingPathExtension - file:///.NewPathExtension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.NewPathExtension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-013 + AppendingPathExtension-3-parse-absolute-escape-013 In-URLCreator CFURLCreateWithBytes In-Url file:///& - Out-CFResults - - AppendingPathExtension - file:///&.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///&.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-014 + AppendingPathExtension-3-parse-absolute-escape-014 In-URLCreator CFURLCreateWithBytes In-Url file:///x - Out-CFResults - - AppendingPathExtension - file:///x.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///x.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-015 + AppendingPathExtension-3-parse-absolute-escape-015 In-URLCreator CFURLCreateWithBytes In-Url http:///%3F - Out-CFResults - - AppendingPathExtension - http:///%3F.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///%3F.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-016 + AppendingPathExtension-3-parse-absolute-escape-016 In-URLCreator CFURLCreateWithBytes In-Url http:///%78 - Out-CFResults - - AppendingPathExtension - http:///%78.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///%78.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-017 + AppendingPathExtension-3-parse-absolute-escape-017 In-URLCreator CFURLCreateWithBytes In-Url http:///? - Out-CFResults - - AppendingPathExtension - http:///.NewPathExtension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///.NewPathExtension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-018 + AppendingPathExtension-3-parse-absolute-escape-018 In-URLCreator CFURLCreateWithBytes In-Url http:///& - Out-CFResults - - AppendingPathExtension - http:///&.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///&.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-019 + AppendingPathExtension-3-parse-absolute-escape-019 In-URLCreator CFURLCreateWithBytes In-Url http:///x - Out-CFResults - - AppendingPathExtension - http:///x.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///x.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-020 + AppendingPathExtension-3-parse-absolute-escape-020 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%3F - Out-CFResults - - AppendingPathExtension - glorb:///%3F.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///%3F.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-021 + AppendingPathExtension-3-parse-absolute-escape-021 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%78 - Out-CFResults - - AppendingPathExtension - glorb:///%78.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///%78.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-022 + AppendingPathExtension-3-parse-absolute-escape-022 In-URLCreator CFURLCreateWithBytes In-Url glorb:///? - Out-CFResults - - AppendingPathExtension - glorb:///.NewPathExtension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///.NewPathExtension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-023 + AppendingPathExtension-3-parse-absolute-escape-023 In-URLCreator CFURLCreateWithBytes In-Url glorb:///& - Out-CFResults - - AppendingPathExtension - glorb:///&.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///&.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-escape-024 + AppendingPathExtension-3-parse-absolute-escape-024 In-URLCreator CFURLCreateWithBytes In-Url glorb:///x - Out-CFResults - - AppendingPathExtension - glorb:///x.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///x.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-mailto-001 + AppendingPathExtension-3-parse-absolute-mailto-001 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-mailto-002 + AppendingPathExtension-3-parse-absolute-mailto-002 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-news-001 + AppendingPathExtension-3-parse-absolute-news-001 In-URLCreator CFURLCreateWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-invalid-001 + AppendingPathExtension-3-parse-absolute-invalid-001 In-URLCreator CFURLCreateWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AppendingPathExtension - uahsfcncvuhrtgvnahr.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - uahsfcncvuhrtgvnahr.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-001 + AppendingPathExtension-3-parse-absolute-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AppendingPathExtension - http://10.1.1.1.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://10.1.1.1.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-002 + AppendingPathExtension-3-parse-absolute-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AppendingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-003 + AppendingPathExtension-3-parse-absolute-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AppendingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-004 + AppendingPathExtension-3-parse-absolute-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AppendingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark.cgi.NewPathExtension?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark.cgi.NewPathExtension?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-005 + AppendingPathExtension-3-parse-absolute-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AppendingPathExtension - http://ad.doubleclick.net/click.NewPathExtension;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://ad.doubleclick.net/click.NewPathExtension;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-006 + AppendingPathExtension-3-parse-absolute-real-world-006 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AppendingPathExtension - http://host.com/foo/bar/../index.html.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://host.com/foo/bar/../index.html.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-007 + AppendingPathExtension-3-parse-absolute-real-world-007 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AppendingPathExtension - http://host.com/foo/bar/./index.html.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://host.com/foo/bar/./index.html.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-real-world-008 + AppendingPathExtension-3-parse-absolute-real-world-008 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathExtension - http:/cgi-bin/Count.cgi.NewPathExtension?ft=0 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/cgi-bin/Count.cgi.NewPathExtension?ft=0 - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-001 + AppendingPathExtension-3-parse-ambiguous-url-001 In-URLCreator CFURLCreateWithBytes In-Url file:///// - Out-CFResults - - AppendingPathExtension - file:////.NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:////.NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-002 + AppendingPathExtension-3-parse-ambiguous-url-002 In-URLCreator CFURLCreateWithBytes - In-Url - file:/Volumes - Out-CFResults - - AppendingPathExtension - file:/Volumes.NewPathExtension - AppendingPathExtension-BaseURL - <null> - + In-Url + file:/Volumes Out-NSResults - - appendingPathExtension - file:/Volumes.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-003 + AppendingPathExtension-3-parse-ambiguous-url-003 In-URLCreator CFURLCreateWithBytes In-Url /Volumes - Out-CFResults - - AppendingPathExtension - /Volumes.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /Volumes.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-004 + AppendingPathExtension-3-parse-ambiguous-url-004 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathExtension - ..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-005 + AppendingPathExtension-3-parse-ambiguous-url-005 In-URLCreator CFURLCreateWithBytes In-Url ./a - Out-CFResults - - AppendingPathExtension - ./a.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ./a.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-006 + AppendingPathExtension-3-parse-ambiguous-url-006 In-URLCreator CFURLCreateWithBytes In-Url ../a - Out-CFResults - - AppendingPathExtension - ../a.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ../a.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-007 + AppendingPathExtension-3-parse-ambiguous-url-007 In-URLCreator CFURLCreateWithBytes In-Url ../../a - Out-CFResults - - AppendingPathExtension - ../../a.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ../../a.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-008 + AppendingPathExtension-3-parse-ambiguous-url-008 In-URLCreator CFURLCreateWithBytes In-Url file: - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-009 + AppendingPathExtension-3-parse-ambiguous-url-009 In-URLCreator CFURLCreateWithBytes In-Url / - Out-CFResults - - AppendingPathExtension - /.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-ambiguous-url-010 + AppendingPathExtension-3-parse-ambiguous-url-010 In-URLCreator CFURLCreateWithBytes In-Url http: - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://test.com/ In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-escape-001 + AppendingPathExtension-3-parse-relative-escape-001 In-URLCreator CFURLCreateWithBytes In-Url unescaped space - Out-CFResults - - AppendingPathExtension - unescaped%20space.NewPathExtension - AppendingPathExtension-BaseURL - http://test.com/ - Out-NSResults - - appendingPathExtension - unescaped%20space.NewPathExtension - appendingPathExtension-BaseURL - http://test.com/ - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-001 + AppendingPathExtension-3-parse-relative-basic-001 In-URLCreator CFURLCreateWithBytes In-Url #zoo - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-002 + AppendingPathExtension-3-parse-relative-basic-002 In-URLCreator CFURLCreateWithBytes In-Url joe/blow - Out-CFResults - - AppendingPathExtension - joe/blow.NewPathExtension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.NewPathExtension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-003 + AppendingPathExtension-3-parse-relative-basic-003 In-URLCreator CFURLCreateWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AppendingPathExtension - joe/blow.NewPathExtension?john=doe - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.NewPathExtension?john=doe - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-004 + AppendingPathExtension-3-parse-relative-basic-004 In-URLCreator CFURLCreateWithBytes In-Url ./joe/blow - Out-CFResults - - AppendingPathExtension - ./joe/blow.NewPathExtension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - ./joe/blow.NewPathExtension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-005 + AppendingPathExtension-3-parse-relative-basic-005 In-URLCreator CFURLCreateWithBytes In-Url ../joe/blow - Out-CFResults - - AppendingPathExtension - ../joe/blow.NewPathExtension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - ../joe/blow.NewPathExtension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-006 + AppendingPathExtension-3-parse-relative-basic-006 In-URLCreator CFURLCreateWithBytes In-Url /joe/blow - Out-CFResults - - AppendingPathExtension - /joe/blow.NewPathExtension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - /joe/blow.NewPathExtension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-007 + AppendingPathExtension-3-parse-relative-basic-007 In-URLCreator CFURLCreateWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AppendingPathExtension - joe/blow.NewPathExtension#frag2 - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.NewPathExtension#frag2 - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-008 + AppendingPathExtension-3-parse-relative-basic-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AppendingPathExtension - ftp://my.server.com/some/document.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://my.server.com/some/document.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-009 + AppendingPathExtension-3-parse-relative-basic-009 In-URLCreator CFURLCreateWithBytes In-Url /joe:blow - Out-CFResults - - AppendingPathExtension - /joe:blow.NewPathExtension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - /joe:blow.NewPathExtension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-basic-010 + AppendingPathExtension-3-parse-relative-basic-010 In-URLCreator CFURLCreateWithBytes In-Url joe:blow - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-illegal-001 + AppendingPathExtension-3-parse-relative-illegal-001 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-illegal-002 + AppendingPathExtension-3-parse-relative-illegal-002 In-URLCreator CFURLCreateWithBytes In-Url ??? - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-001 + AppendingPathExtension-3-parse-relative-rfc-001 In-URLCreator CFURLCreateWithBytes In-Url g:h - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-002 + AppendingPathExtension-3-parse-relative-rfc-002 In-URLCreator CFURLCreateWithBytes In-Url g - Out-CFResults - - AppendingPathExtension - g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-003 + AppendingPathExtension-3-parse-relative-rfc-003 In-URLCreator CFURLCreateWithBytes In-Url ./g - Out-CFResults - - AppendingPathExtension - ./g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ./g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-004 + AppendingPathExtension-3-parse-relative-rfc-004 In-URLCreator CFURLCreateWithBytes In-Url g/ - Out-CFResults - - AppendingPathExtension - g.NewPathExtension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-005 + AppendingPathExtension-3-parse-relative-rfc-005 In-URLCreator CFURLCreateWithBytes In-Url /g - Out-CFResults - - AppendingPathExtension - /g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-006 + AppendingPathExtension-3-parse-relative-rfc-006 In-URLCreator CFURLCreateWithBytes In-Url //g - Out-CFResults - - AppendingPathExtension - //g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - //g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-007 + AppendingPathExtension-3-parse-relative-rfc-007 In-URLCreator CFURLCreateWithBytes In-Url ?y - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-008 + AppendingPathExtension-3-parse-relative-rfc-008 In-URLCreator CFURLCreateWithBytes In-Url g?y - Out-CFResults - - AppendingPathExtension - g.NewPathExtension?y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension?y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-009 + AppendingPathExtension-3-parse-relative-rfc-009 In-URLCreator CFURLCreateWithBytes In-Url #s - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-010 + AppendingPathExtension-3-parse-relative-rfc-010 In-URLCreator CFURLCreateWithBytes In-Url g#s - Out-CFResults - - AppendingPathExtension - g.NewPathExtension#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-011 + AppendingPathExtension-3-parse-relative-rfc-011 In-URLCreator CFURLCreateWithBytes In-Url g?y#s - Out-CFResults - - AppendingPathExtension - g.NewPathExtension?y#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension?y#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-012 + AppendingPathExtension-3-parse-relative-rfc-012 In-URLCreator CFURLCreateWithBytes In-Url ;x - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-013 + AppendingPathExtension-3-parse-relative-rfc-013 In-URLCreator CFURLCreateWithBytes In-Url g;x - Out-CFResults - - AppendingPathExtension - g.NewPathExtension;x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension;x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-014 + AppendingPathExtension-3-parse-relative-rfc-014 In-URLCreator CFURLCreateWithBytes In-Url g;x?y#s - Out-CFResults - - AppendingPathExtension - g.NewPathExtension;x?y#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension;x?y#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-015 + AppendingPathExtension-3-parse-relative-rfc-015 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-016 + AppendingPathExtension-3-parse-relative-rfc-016 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathExtension - ..NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ..NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-017 + AppendingPathExtension-3-parse-relative-rfc-017 In-URLCreator CFURLCreateWithBytes In-Url ./ - Out-CFResults - - AppendingPathExtension - ..NewPathExtension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ..NewPathExtension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-018 + AppendingPathExtension-3-parse-relative-rfc-018 In-URLCreator CFURLCreateWithBytes In-Url .. - Out-CFResults - - AppendingPathExtension - ...NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ...NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-019 + AppendingPathExtension-3-parse-relative-rfc-019 In-URLCreator CFURLCreateWithBytes In-Url ../ - Out-CFResults - - AppendingPathExtension - ...NewPathExtension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ...NewPathExtension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-020 + AppendingPathExtension-3-parse-relative-rfc-020 In-URLCreator CFURLCreateWithBytes In-Url ../g - Out-CFResults - - AppendingPathExtension - ../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-021 + AppendingPathExtension-3-parse-relative-rfc-021 In-URLCreator CFURLCreateWithBytes In-Url ../.. - Out-CFResults - - AppendingPathExtension - ../...NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../...NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-022 + AppendingPathExtension-3-parse-relative-rfc-022 In-URLCreator CFURLCreateWithBytes In-Url ../../ - Out-CFResults - - AppendingPathExtension - ../...NewPathExtension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../...NewPathExtension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-023 + AppendingPathExtension-3-parse-relative-rfc-023 In-URLCreator CFURLCreateWithBytes In-Url ../../g - Out-CFResults - - AppendingPathExtension - ../../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-024 + AppendingPathExtension-3-parse-relative-rfc-024 In-URLCreator CFURLCreateWithBytes In-Url ../../../g - Out-CFResults - - AppendingPathExtension - ../../../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-025 + AppendingPathExtension-3-parse-relative-rfc-025 In-URLCreator CFURLCreateWithBytes In-Url ../../../../g - Out-CFResults - - AppendingPathExtension - ../../../../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../../../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-026 + AppendingPathExtension-3-parse-relative-rfc-026 In-URLCreator CFURLCreateWithBytes In-Url /./g - Out-CFResults - - AppendingPathExtension - /./g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /./g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-027 + AppendingPathExtension-3-parse-relative-rfc-027 In-URLCreator CFURLCreateWithBytes In-Url /../g - Out-CFResults - - AppendingPathExtension - /../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-028 + AppendingPathExtension-3-parse-relative-rfc-028 In-URLCreator CFURLCreateWithBytes In-Url g. - Out-CFResults - - AppendingPathExtension - g..NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g..NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-029 + AppendingPathExtension-3-parse-relative-rfc-029 In-URLCreator CFURLCreateWithBytes In-Url .g - Out-CFResults - - AppendingPathExtension - .g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - .g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-030 + AppendingPathExtension-3-parse-relative-rfc-030 In-URLCreator CFURLCreateWithBytes In-Url g.. - Out-CFResults - - AppendingPathExtension - g...NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g...NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-031 + AppendingPathExtension-3-parse-relative-rfc-031 In-URLCreator CFURLCreateWithBytes In-Url ..g - Out-CFResults - - AppendingPathExtension - ..g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ..g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-032 + AppendingPathExtension-3-parse-relative-rfc-032 In-URLCreator CFURLCreateWithBytes In-Url ./../g - Out-CFResults - - AppendingPathExtension - ./../g.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ./../g.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-033 + AppendingPathExtension-3-parse-relative-rfc-033 In-URLCreator CFURLCreateWithBytes - In-Url - ./g/. - Out-CFResults - - AppendingPathExtension - ./g/..NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - + In-Url + ./g/. Out-NSResults - - appendingPathExtension - ./g/..NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-034 + AppendingPathExtension-3-parse-relative-rfc-034 In-URLCreator CFURLCreateWithBytes In-Url g/./h - Out-CFResults - - AppendingPathExtension - g/./h.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g/./h.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-035 + AppendingPathExtension-3-parse-relative-rfc-035 In-URLCreator CFURLCreateWithBytes In-Url g/../h - Out-CFResults - - AppendingPathExtension - g/../h.NewPathExtension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g/../h.NewPathExtension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-036 + AppendingPathExtension-3-parse-relative-rfc-036 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/./y - Out-CFResults - - AppendingPathExtension - g.NewPathExtension;x=1/./y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension;x=1/./y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-037 + AppendingPathExtension-3-parse-relative-rfc-037 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/../y - Out-CFResults - - AppendingPathExtension - g.NewPathExtension;x=1/../y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension;x=1/../y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-038 + AppendingPathExtension-3-parse-relative-rfc-038 In-URLCreator CFURLCreateWithBytes In-Url g?y/./x - Out-CFResults - - AppendingPathExtension - g.NewPathExtension?y/./x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension?y/./x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-039 + AppendingPathExtension-3-parse-relative-rfc-039 In-URLCreator CFURLCreateWithBytes In-Url g?y/../x - Out-CFResults - - AppendingPathExtension - g.NewPathExtension?y/../x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension?y/../x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-040 + AppendingPathExtension-3-parse-relative-rfc-040 In-URLCreator CFURLCreateWithBytes In-Url g#s/./x - Out-CFResults - - AppendingPathExtension - g.NewPathExtension#s/./x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension#s/./x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-041 + AppendingPathExtension-3-parse-relative-rfc-041 In-URLCreator CFURLCreateWithBytes In-Url g#s/../x - Out-CFResults - - AppendingPathExtension - g.NewPathExtension#s/../x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.NewPathExtension#s/../x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-042 + AppendingPathExtension-3-parse-relative-rfc-042 In-URLCreator CFURLCreateWithBytes In-Url http:g - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-043 + AppendingPathExtension-3-parse-relative-rfc-043 In-URLCreator CFURLCreateWithBytes In-Url file:g - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-044 + AppendingPathExtension-3-parse-relative-rfc-044 In-URLCreator CFURLCreateWithBytes In-Url http:/g - Out-CFResults - - AppendingPathExtension - http:/g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-rfc-045 + AppendingPathExtension-3-parse-relative-rfc-045 In-URLCreator CFURLCreateWithBytes In-Url file:/g - Out-CFResults - - AppendingPathExtension - file:/g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://macosx.apple.com In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-real-world-001 + AppendingPathExtension-3-parse-relative-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url /Images/foo.gif - Out-CFResults - - AppendingPathExtension - /Images/foo.gif.NewPathExtension - AppendingPathExtension-BaseURL - http://macosx.apple.com - Out-NSResults - - appendingPathExtension - /Images/foo.gif.NewPathExtension - appendingPathExtension-BaseURL - http://macosx.apple.com - + <null url> In-Base http://www.ticketmaster.com/search?keyword=tool In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-real-world-002 + AppendingPathExtension-3-parse-relative-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url ../artist/720703 - Out-CFResults - - AppendingPathExtension - ../artist/720703.NewPathExtension - AppendingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - Out-NSResults - - appendingPathExtension - ../artist/720703.NewPathExtension - appendingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - + <null url> In-Base http://www.cnn.com In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-real-world-003 + AppendingPathExtension-3-parse-relative-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AppendingPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html.NewPathExtension - AppendingPathExtension-BaseURL - http://www.cnn.com - Out-NSResults - - appendingPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html.NewPathExtension - appendingPathExtension-BaseURL - http://www.cnn.com - + <null url> In-Base http://www.muquit.com/muquit/software/Count/Count.html In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-real-world-004 + AppendingPathExtension-3-parse-relative-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathExtension - http:/cgi-bin/Count.cgi.NewPathExtension?ft=0 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/cgi-bin/Count.cgi.NewPathExtension?ft=0 - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-relative-real-world-005 + AppendingPathExtension-3-parse-relative-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AppendingPathExtension - databases/76/containers/2891/items.NewPathExtension?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - Out-NSResults - - appendingPathExtension - databases/76/containers/2891/items.NewPathExtension?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-001 + AppendingPathExtension-3-parse-absolute-with-relative-001 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-002 + AppendingPathExtension-3-parse-absolute-with-relative-002 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/. - Out-CFResults - - AppendingPathExtension - http://a/b/c/..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-003 + AppendingPathExtension-3-parse-absolute-with-relative-003 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AppendingPathExtension - http://a/b/c/..NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-004 + AppendingPathExtension-3-parse-absolute-with-relative-004 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-005 + AppendingPathExtension-3-parse-absolute-with-relative-005 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AppendingPathExtension - http://a/b/c/...NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/...NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-006 + AppendingPathExtension-3-parse-absolute-with-relative-006 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-007 + AppendingPathExtension-3-parse-absolute-with-relative-007 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/../...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-008 + AppendingPathExtension-3-parse-absolute-with-relative-008 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AppendingPathExtension - http://a/b/c/../...NewPathExtension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../...NewPathExtension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-009 + AppendingPathExtension-3-parse-absolute-with-relative-009 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-010 + AppendingPathExtension-3-parse-absolute-with-relative-010 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-011 + AppendingPathExtension-3-parse-absolute-with-relative-011 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../../../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../../../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-012 + AppendingPathExtension-3-parse-absolute-with-relative-012 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-013 + AppendingPathExtension-3-parse-absolute-with-relative-013 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-014 + AppendingPathExtension-3-parse-absolute-with-relative-014 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AppendingPathExtension - http://a/b/c/g..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-015 + AppendingPathExtension-3-parse-absolute-with-relative-015 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AppendingPathExtension - http://a/b/c/.g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/.g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-016 + AppendingPathExtension-3-parse-absolute-with-relative-016 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/g...NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g...NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-017 + AppendingPathExtension-3-parse-absolute-with-relative-017 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AppendingPathExtension - http://a/b/c/..g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-018 + AppendingPathExtension-3-parse-absolute-with-relative-018 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./../g.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./../g.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-019 + AppendingPathExtension-3-parse-absolute-with-relative-019 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g/..NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g/..NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-020 + AppendingPathExtension-3-parse-absolute-with-relative-020 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/./h - Out-CFResults - - AppendingPathExtension - http://a/b/c/g/./h.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g/./h.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-021 + AppendingPathExtension-3-parse-absolute-with-relative-021 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AppendingPathExtension - http://a/b/c/g/../h.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g/../h.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-022 + AppendingPathExtension-3-parse-absolute-with-relative-022 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension;x=1/./y - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension;x=1/./y - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-023 + AppendingPathExtension-3-parse-absolute-with-relative-023 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension;x=1/../y - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension;x=1/../y - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-024 + AppendingPathExtension-3-parse-absolute-with-relative-024 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension?y/./x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension?y/./x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-025 + AppendingPathExtension-3-parse-absolute-with-relative-025 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension?y/../x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension?y/../x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-026 + AppendingPathExtension-3-parse-absolute-with-relative-026 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension#s/./x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension#s/./x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-027 + AppendingPathExtension-3-parse-absolute-with-relative-027 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.NewPathExtension#s/../x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.NewPathExtension#s/../x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-028 + AppendingPathExtension-3-parse-absolute-with-relative-028 In-URLCreator CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AppendingPathExtension - http://a/../../x.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/../../x.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - NewPathExtension + tar.gz In-Title - AppendingPathExtension-1-parse-absolute-with-relative-029 + AppendingPathExtension-3-parse-absolute-with-relative-029 In-URLCreator CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AppendingPathExtension - http://a/..///../x.NewPathExtension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/..///../x.NewPathExtension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-001 + AppendingPathExtension-4-parse-absolute-file-001 In-URLCreator CFURLCreateWithBytes In-Url file:///usr/local/bin - Out-CFResults - - AppendingPathExtension - file:///usr/local/bin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///usr/local/bin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-002 + AppendingPathExtension-4-parse-absolute-file-002 In-URLCreator CFURLCreateWithBytes In-Url file:/usr/local/bin - Out-CFResults - - AppendingPathExtension - file:/usr/local/bin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/usr/local/bin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-003 + AppendingPathExtension-4-parse-absolute-file-003 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin - Out-CFResults - - AppendingPathExtension - file://localhost/usr/local/bin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/usr/local/bin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-004 + AppendingPathExtension-4-parse-absolute-file-004 In-URLCreator CFURLCreateWithBytes In-Url file://usr/local/bin - Out-CFResults - - AppendingPathExtension - file://usr/local/bin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://usr/local/bin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-005 + AppendingPathExtension-4-parse-absolute-file-005 In-URLCreator CFURLCreateWithBytes In-Url /usr/local/bin - Out-CFResults - - AppendingPathExtension - /usr/local/bin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /usr/local/bin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-006 + AppendingPathExtension-4-parse-absolute-file-006 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathExtension - file://localhost/usr/local/bin.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/usr/local/bin.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-007 + AppendingPathExtension-4-parse-absolute-file-007 In-URLCreator CFURLCreateWithBytes In-Url file://localhost/ - Out-CFResults - - AppendingPathExtension - file://localhost/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-008 + AppendingPathExtension-4-parse-absolute-file-008 In-URLCreator CFURLCreateWithBytes In-Url file://localhost - Out-CFResults - - AppendingPathExtension - file://localhost.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://localhost.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-009 + AppendingPathExtension-4-parse-absolute-file-009 In-URLCreator CFURLCreateWithBytes In-Url file:/// - Out-CFResults - - AppendingPathExtension - file:///.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-010 + AppendingPathExtension-4-parse-absolute-file-010 In-URLCreator CFURLCreateWithBytes In-Url file:// - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-011 + AppendingPathExtension-4-parse-absolute-file-011 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathExtension - file:/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-012 + AppendingPathExtension-4-parse-absolute-file-012 In-URLCreator CFURLCreateWithBytes In-Url FILE:// - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-013 + AppendingPathExtension-4-parse-absolute-file-013 In-URLCreator CFURLCreateWithBytes In-Url file:///Volumes - Out-CFResults - - AppendingPathExtension - file:///Volumes.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///Volumes.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-014 + AppendingPathExtension-4-parse-absolute-file-014 In-URLCreator CFURLCreateWithBytes In-Url file:///Users/darin - Out-CFResults - - AppendingPathExtension - file:///Users/darin.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///Users/darin.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-015 + AppendingPathExtension-4-parse-absolute-file-015 In-URLCreator CFURLCreateWithBytes In-Url file:/ - Out-CFResults - - AppendingPathExtension - file:/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-016 + AppendingPathExtension-4-parse-absolute-file-016 In-URLCreator CFURLCreateWithBytes In-Url file://foo - Out-CFResults - - AppendingPathExtension - file://foo.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file://foo.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-017 + AppendingPathExtension-4-parse-absolute-file-017 In-URLCreator CFURLCreateWithBytes In-Url file:///. - Out-CFResults - - AppendingPathExtension - file:///..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-018 + AppendingPathExtension-4-parse-absolute-file-018 In-URLCreator CFURLCreateWithBytes In-Url file:///./. - Out-CFResults - - AppendingPathExtension - file:///./..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///./..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-019 + AppendingPathExtension-4-parse-absolute-file-019 In-URLCreator CFURLCreateWithBytes In-Url file:///.///. - Out-CFResults - - AppendingPathExtension - file:///.///..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.///..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-020 + AppendingPathExtension-4-parse-absolute-file-020 In-URLCreator CFURLCreateWithBytes In-Url file:///a/.. - Out-CFResults - - AppendingPathExtension - file:///a/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-021 + AppendingPathExtension-4-parse-absolute-file-021 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/.. - Out-CFResults - - AppendingPathExtension - file:///a/b/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-022 + AppendingPathExtension-4-parse-absolute-file-022 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b//.. - Out-CFResults - - AppendingPathExtension - file:///a/b//...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b//...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-023 + AppendingPathExtension-4-parse-absolute-file-023 In-URLCreator CFURLCreateWithBytes In-Url file:///./a/b/.. - Out-CFResults - - AppendingPathExtension - file:///./a/b/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///./a/b/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-024 + AppendingPathExtension-4-parse-absolute-file-024 In-URLCreator CFURLCreateWithBytes In-Url file:///a/./b/.. - Out-CFResults - - AppendingPathExtension - file:///a/./b/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/./b/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-025 + AppendingPathExtension-4-parse-absolute-file-025 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/./.. - Out-CFResults - - AppendingPathExtension - file:///a/b/./...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/./...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-026 + AppendingPathExtension-4-parse-absolute-file-026 In-URLCreator CFURLCreateWithBytes In-Url file:///a///b//.. - Out-CFResults - - AppendingPathExtension - file:///a///b//...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a///b//...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-027 + AppendingPathExtension-4-parse-absolute-file-027 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/../.. - Out-CFResults - - AppendingPathExtension - file:///a/b/../...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/../...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-028 + AppendingPathExtension-4-parse-absolute-file-028 In-URLCreator CFURLCreateWithBytes In-Url file:///a/b/c/../.. - Out-CFResults - - AppendingPathExtension - file:///a/b/c/../...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/b/c/../...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-029 + AppendingPathExtension-4-parse-absolute-file-029 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/.. - Out-CFResults - - AppendingPathExtension - file:///a/../b/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-030 + AppendingPathExtension-4-parse-absolute-file-030 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathExtension - file:///a/../b/../c.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/../c.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-file-031 + AppendingPathExtension-4-parse-absolute-file-031 In-URLCreator CFURLCreateWithBytes In-Url file:///a/../b/../c - Out-CFResults - - AppendingPathExtension - file:///a/../b/../c.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///a/../b/../c.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-001 + AppendingPathExtension-4-parse-absolute-ftp-001 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-002 + AppendingPathExtension-4-parse-absolute-ftp-002 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/ - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-003 + AppendingPathExtension-4-parse-absolute-ftp-003 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-004 + AppendingPathExtension-4-parse-absolute-ftp-004 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://luser@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-005 + AppendingPathExtension-4-parse-absolute-ftp-005 In-URLCreator CFURLCreateWithBytes In-Url ftp://@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-006 + AppendingPathExtension-4-parse-absolute-ftp-006 In-URLCreator CFURLCreateWithBytes In-Url ftp://luser:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://luser:password@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-007 + AppendingPathExtension-4-parse-absolute-ftp-007 In-URLCreator CFURLCreateWithBytes In-Url ftp://:password@ftp.gnu.org/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://:password@ftp.gnu.org/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-008 + AppendingPathExtension-4-parse-absolute-ftp-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://ftp.gnu.org:72/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://ftp.gnu.org:72/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://ftp.gnu.org:72/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-ftp-009 + AppendingPathExtension-4-parse-absolute-ftp-009 In-URLCreator CFURLCreateWithBytes In-Url ftp://:72/pub/gnu - Out-CFResults - - AppendingPathExtension - ftp://:72/pub/gnu.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://:72/pub/gnu.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-localhost-001 + AppendingPathExtension-4-parse-absolute-localhost-001 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/usr/local/bin/ - Out-CFResults - - AppendingPathExtension - http://localhost/usr/local/bin.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost/usr/local/bin.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-localhost-002 + AppendingPathExtension-4-parse-absolute-localhost-002 In-URLCreator CFURLCreateWithBytes In-Url http://localhost/ - Out-CFResults - - AppendingPathExtension - http://localhost/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-localhost-003 + AppendingPathExtension-4-parse-absolute-localhost-003 In-URLCreator CFURLCreateWithBytes In-Url http://localhost - Out-CFResults - - AppendingPathExtension - http://localhost.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://localhost.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-001 + AppendingPathExtension-4-parse-absolute-query-001 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-002 + AppendingPathExtension-4-parse-absolute-query-002 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/ - Out-CFResults - - AppendingPathExtension - http://www.apple.com/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-003 + AppendingPathExtension-4-parse-absolute-query-003 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir - Out-CFResults - - AppendingPathExtension - http://www.apple.com/dir.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/dir.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-004 + AppendingPathExtension-4-parse-absolute-query-004 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/dir/ - Out-CFResults - - AppendingPathExtension - http://www.apple.com/dir.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/dir.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-005 + AppendingPathExtension-4-parse-absolute-query-005 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com:80 - Out-CFResults - - AppendingPathExtension - http://www.apple.com:80.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com:80.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-006 + AppendingPathExtension-4-parse-absolute-query-006 In-URLCreator CFURLCreateWithBytes In-Url http://darin:nothin@www.apple.com:42/dir/ - Out-CFResults - - AppendingPathExtension - http://darin:nothin@www.apple.com:42/dir.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin:nothin@www.apple.com:42/dir.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-007 + AppendingPathExtension-4-parse-absolute-query-007 In-URLCreator CFURLCreateWithBytes In-Url http:/ - Out-CFResults - - AppendingPathExtension - http:/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-008 + AppendingPathExtension-4-parse-absolute-query-008 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com/query?email=darin@apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com/query.New%3BPath%3FExt%2Fension?email=darin@apple.com - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com/query.New%3BPath%3FExt%2Fension?email=darin@apple.com - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-009 + AppendingPathExtension-4-parse-absolute-query-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple.com?email=darin@apple.com - Out-CFResults - - AppendingPathExtension - http://www.apple.com.New%3BPath%3FExt%2Fension?email=darin@apple.com - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple.com.New%3BPath%3FExt%2Fension?email=darin@apple.com - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-010 + AppendingPathExtension-4-parse-absolute-query-010 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-011 + AppendingPathExtension-4-parse-absolute-query-011 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-012 + AppendingPathExtension-4-parse-absolute-query-012 In-URLCreator CFURLCreateWithBytes In-Url HTTP://WWW.ZOO.COM/ED - Out-CFResults - - AppendingPathExtension - HTTP://WWW.ZOO.COM/ED.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - HTTP://WWW.ZOO.COM/ED.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-013 + AppendingPathExtension-4-parse-absolute-query-013 In-URLCreator CFURLCreateWithBytes In-Url http://sega.com/pc/catalog/SegaProduct.jhtml;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - Out-CFResults - - AppendingPathExtension - http://sega.com/pc/catalog/SegaProduct.jhtml.New%3BPath%3FExt%2Fension;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://sega.com/pc/catalog/SegaProduct.jhtml.New%3BPath%3FExt%2Fension;$sessionid$MMBAWYIAABHS4CRSBUKCM4YKGIGQUMS0?PRODID=193 - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-query-014 + AppendingPathExtension-4-parse-absolute-query-014 In-URLCreator CFURLCreateWithBytes In-Url http://groups.google.com/groups?as_uauthors=joe@blow.com&as_scoring=d&hl=en - Out-CFResults - - AppendingPathExtension - http://groups.google.com/groups.New%3BPath%3FExt%2Fension?as_uauthors=joe@blow.com&as_scoring=d&hl=en - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://groups.google.com/groups.New%3BPath%3FExt%2Fension?as_uauthors=joe@blow.com&as_scoring=d&hl=en - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-fragment-001 + AppendingPathExtension-4-parse-absolute-fragment-001 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com/some/page.html#fragment - Out-CFResults - - AppendingPathExtension - http://my.site.com/some/page.html.New%3BPath%3FExt%2Fension#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://my.site.com/some/page.html.New%3BPath%3FExt%2Fension#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-fragment-002 + AppendingPathExtension-4-parse-absolute-fragment-002 In-URLCreator CFURLCreateWithBytes In-Url http://my.site.com#fragment - Out-CFResults - - AppendingPathExtension - http://my.site.com.New%3BPath%3FExt%2Fension#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://my.site.com.New%3BPath%3FExt%2Fension#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-fragment-003 + AppendingPathExtension-4-parse-absolute-fragment-003 In-URLCreator CFURLCreateWithBytes In-Url scheme://user:pass@host:1/path/path2/file.html;params?query#fragment - Out-CFResults - - AppendingPathExtension - scheme://user:pass@host:1/path/path2/file.html.New%3BPath%3FExt%2Fension;params?query#fragment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - scheme://user:pass@host:1/path/path2/file.html.New%3BPath%3FExt%2Fension;params?query#fragment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-001 + AppendingPathExtension-4-parse-absolute-escape-001 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/a%20space - Out-CFResults - - AppendingPathExtension - http://test.com/a%20space.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/a%20space.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-002 + AppendingPathExtension-4-parse-absolute-escape-002 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aBrace%7B - Out-CFResults - - AppendingPathExtension - http://test.com/aBrace%7B.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/aBrace%7B.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-003 + AppendingPathExtension-4-parse-absolute-escape-003 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/aJ%4a - Out-CFResults - - AppendingPathExtension - http://test.com/aJ%4a.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/aJ%4a.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-004 + AppendingPathExtension-4-parse-absolute-escape-004 In-URLCreator CFURLCreateWithBytes In-Url scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - Out-CFResults - - AppendingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me.New%3BPath%3FExt%2Fension;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - scheme://us%60%58er:pass%60%58word@host%60%58name.com:80/pa%60%58th/na%60%58me.New%3BPath%3FExt%2Fension;par%60%58ameter?qu%60%58ery=val%60%58ue&foo%60%58=bar#frag%60%58ment - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-005 + AppendingPathExtension-4-parse-absolute-escape-005 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped space - Out-CFResults - - AppendingPathExtension - http://test.com/unescaped%20space.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/unescaped%20space.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-006 + AppendingPathExtension-4-parse-absolute-escape-006 In-URLCreator CFURLCreateWithBytes In-Url http://test.com/unescaped|pipe - Out-CFResults - - AppendingPathExtension - http://test.com/unescaped%7Cpipe.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://test.com/unescaped%7Cpipe.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-007 + AppendingPathExtension-4-parse-absolute-escape-007 In-URLCreator CFURLCreateWithBytes In-Url http://darin%20adler@www.apple.com - Out-CFResults - - AppendingPathExtension - http://darin%20adler@www.apple.com.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin%20adler@www.apple.com.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-008 + AppendingPathExtension-4-parse-absolute-escape-008 In-URLCreator CFURLCreateWithBytes In-Url http://darin:clever%20password@www.apple.com - Out-CFResults - - AppendingPathExtension - http://darin:clever%20password@www.apple.com.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://darin:clever%20password@www.apple.com.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-009 + AppendingPathExtension-4-parse-absolute-escape-009 In-URLCreator CFURLCreateWithBytes In-Url http://www.apple%20computer.com - Out-CFResults - - AppendingPathExtension - http://www.apple%20computer.com.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://www.apple%20computer.com.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-010 + AppendingPathExtension-4-parse-absolute-escape-010 In-URLCreator CFURLCreateWithBytes In-Url file:///%3F - Out-CFResults - - AppendingPathExtension - file:///%3F.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///%3F.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-011 + AppendingPathExtension-4-parse-absolute-escape-011 In-URLCreator CFURLCreateWithBytes In-Url file:///%78 - Out-CFResults - - AppendingPathExtension - file:///%78.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///%78.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-012 + AppendingPathExtension-4-parse-absolute-escape-012 In-URLCreator CFURLCreateWithBytes In-Url file:///? - Out-CFResults - - AppendingPathExtension - file:///.New%3BPath%3FExt%2Fension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///.New%3BPath%3FExt%2Fension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-013 + AppendingPathExtension-4-parse-absolute-escape-013 In-URLCreator CFURLCreateWithBytes In-Url file:///& - Out-CFResults - - AppendingPathExtension - file:///&.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///&.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-014 + AppendingPathExtension-4-parse-absolute-escape-014 In-URLCreator CFURLCreateWithBytes In-Url file:///x - Out-CFResults - - AppendingPathExtension - file:///x.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:///x.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-015 + AppendingPathExtension-4-parse-absolute-escape-015 In-URLCreator CFURLCreateWithBytes - In-Url - http:///%3F - Out-CFResults - - AppendingPathExtension - http:///%3F.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - + In-Url + http:///%3F Out-NSResults - - appendingPathExtension - http:///%3F.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-016 + AppendingPathExtension-4-parse-absolute-escape-016 In-URLCreator CFURLCreateWithBytes In-Url http:///%78 - Out-CFResults - - AppendingPathExtension - http:///%78.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///%78.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-017 + AppendingPathExtension-4-parse-absolute-escape-017 In-URLCreator CFURLCreateWithBytes In-Url http:///? - Out-CFResults - - AppendingPathExtension - http:///.New%3BPath%3FExt%2Fension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///.New%3BPath%3FExt%2Fension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-018 + AppendingPathExtension-4-parse-absolute-escape-018 In-URLCreator CFURLCreateWithBytes In-Url http:///& - Out-CFResults - - AppendingPathExtension - http:///&.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///&.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-019 + AppendingPathExtension-4-parse-absolute-escape-019 In-URLCreator CFURLCreateWithBytes In-Url http:///x - Out-CFResults - - AppendingPathExtension - http:///x.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:///x.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-020 + AppendingPathExtension-4-parse-absolute-escape-020 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%3F - Out-CFResults - - AppendingPathExtension - glorb:///%3F.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///%3F.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-021 + AppendingPathExtension-4-parse-absolute-escape-021 In-URLCreator CFURLCreateWithBytes In-Url glorb:///%78 - Out-CFResults - - AppendingPathExtension - glorb:///%78.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///%78.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-022 + AppendingPathExtension-4-parse-absolute-escape-022 In-URLCreator CFURLCreateWithBytes In-Url glorb:///? - Out-CFResults - - AppendingPathExtension - glorb:///.New%3BPath%3FExt%2Fension? - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///.New%3BPath%3FExt%2Fension? - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-023 + AppendingPathExtension-4-parse-absolute-escape-023 In-URLCreator CFURLCreateWithBytes In-Url glorb:///& - Out-CFResults - - AppendingPathExtension - glorb:///&.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///&.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-escape-024 + AppendingPathExtension-4-parse-absolute-escape-024 In-URLCreator CFURLCreateWithBytes In-Url glorb:///x - Out-CFResults - - AppendingPathExtension - glorb:///x.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - glorb:///x.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-mailto-001 + AppendingPathExtension-4-parse-absolute-mailto-001 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-mailto-002 + AppendingPathExtension-4-parse-absolute-mailto-002 In-URLCreator CFURLCreateWithBytes In-Url mailto:mduerst@ifi.unizh.ch?Subject=nothing - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-news-001 + AppendingPathExtension-4-parse-absolute-news-001 In-URLCreator CFURLCreateWithBytes In-Url news:comp.infosystems.www.servers.unix - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-invalid-001 + AppendingPathExtension-4-parse-absolute-invalid-001 In-URLCreator CFURLCreateWithBytes In-Url uahsfcncvuhrtgvnahr - Out-CFResults - - AppendingPathExtension - uahsfcncvuhrtgvnahr.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - uahsfcncvuhrtgvnahr.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-001 + AppendingPathExtension-4-parse-absolute-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url http://10.1.1.1 - Out-CFResults - - AppendingPathExtension - http://10.1.1.1.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://10.1.1.1.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-002 + AppendingPathExtension-4-parse-absolute-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e]/ - Out-CFResults - - AppendingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://[fe80::20a:27ff:feae:8b9e]/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-003 + AppendingPathExtension-4-parse-absolute-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url http://[fe80::20a:27ff:feae:8b9e%25en0]/ - Out-CFResults - - AppendingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://[fe80::20a:27ff:feae:8b9e%25en0]/.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-004 + AppendingPathExtension-4-parse-absolute-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http://apps5.oingo.com/apps/domainpark/domainpark.cgi?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - Out-CFResults - - AppendingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark.cgi.New%3BPath%3FExt%2Fension?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://apps5.oingo.com/apps/domainpark/domainpark.cgi.New%3BPath%3FExt%2Fension?s=5thavenue&cid=VPERR2E0&tld=com&tld=net&tld=org&dp_p4pid=oingo_inclusion_xml_ns10&dp_lp=7&dp_format=1.3&dp_cm=_w&dp_c1=#FFFFFF - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-005 + AppendingPathExtension-4-parse-absolute-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url http://ad.doubleclick.net/click;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - Out-CFResults - - AppendingPathExtension - http://ad.doubleclick.net/click.New%3BPath%3FExt%2Fension;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://ad.doubleclick.net/click.New%3BPath%3FExt%2Fension;h=v2%7C2e88%7C0%7C0%7C%2a%7Co;4461766;0-0;0;7314133;255-0%7C0;1407955%7C1406690%7C1;;%3fhttp://meninblack2.station.sony.com/playgames.jsp - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-006 + AppendingPathExtension-4-parse-absolute-real-world-006 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/../index.html - Out-CFResults - - AppendingPathExtension - http://host.com/foo/bar/../index.html.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://host.com/foo/bar/../index.html.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-007 + AppendingPathExtension-4-parse-absolute-real-world-007 In-URLCreator CFURLCreateWithBytes In-Url http://host.com/foo/bar/./index.html - Out-CFResults - - AppendingPathExtension - http://host.com/foo/bar/./index.html.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://host.com/foo/bar/./index.html.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-real-world-008 + AppendingPathExtension-4-parse-absolute-real-world-008 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathExtension - http:/cgi-bin/Count.cgi.New%3BPath%3FExt%2Fension?ft=0 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/cgi-bin/Count.cgi.New%3BPath%3FExt%2Fension?ft=0 - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-001 + AppendingPathExtension-4-parse-ambiguous-url-001 In-URLCreator CFURLCreateWithBytes In-Url file:///// - Out-CFResults - - AppendingPathExtension - file:////.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:////.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-002 + AppendingPathExtension-4-parse-ambiguous-url-002 In-URLCreator CFURLCreateWithBytes In-Url file:/Volumes - Out-CFResults - - AppendingPathExtension - file:/Volumes.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/Volumes.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-003 + AppendingPathExtension-4-parse-ambiguous-url-003 In-URLCreator CFURLCreateWithBytes In-Url /Volumes - Out-CFResults - - AppendingPathExtension - /Volumes.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /Volumes.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-004 + AppendingPathExtension-4-parse-ambiguous-url-004 In-URLCreator CFURLCreateWithBytes In-Url . - Out-CFResults - - AppendingPathExtension - ..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-005 + AppendingPathExtension-4-parse-ambiguous-url-005 In-URLCreator CFURLCreateWithBytes In-Url ./a - Out-CFResults - - AppendingPathExtension - ./a.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ./a.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-006 + AppendingPathExtension-4-parse-ambiguous-url-006 In-URLCreator CFURLCreateWithBytes In-Url ../a - Out-CFResults - - AppendingPathExtension - ../a.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ../a.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-007 + AppendingPathExtension-4-parse-ambiguous-url-007 In-URLCreator CFURLCreateWithBytes In-Url ../../a - Out-CFResults - - AppendingPathExtension - ../../a.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ../../a.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-008 + AppendingPathExtension-4-parse-ambiguous-url-008 In-URLCreator CFURLCreateWithBytes In-Url file: - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-009 + AppendingPathExtension-4-parse-ambiguous-url-009 In-URLCreator CFURLCreateWithBytes In-Url / - Out-CFResults - - AppendingPathExtension - /.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - /.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-ambiguous-url-010 + AppendingPathExtension-4-parse-ambiguous-url-010 In-URLCreator CFURLCreateWithBytes In-Url http: - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://test.com/ In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-escape-001 + AppendingPathExtension-4-parse-relative-escape-001 In-URLCreator CFURLCreateWithBytes In-Url unescaped space - Out-CFResults - - AppendingPathExtension - unescaped%20space.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://test.com/ - Out-NSResults - - appendingPathExtension - unescaped%20space.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://test.com/ - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-001 + AppendingPathExtension-4-parse-relative-basic-001 In-URLCreator CFURLCreateWithBytes In-Url #zoo - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-002 + AppendingPathExtension-4-parse-relative-basic-002 In-URLCreator CFURLCreateWithBytes In-Url joe/blow - Out-CFResults - - AppendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-003 + AppendingPathExtension-4-parse-relative-basic-003 In-URLCreator CFURLCreateWithBytes In-Url joe/blow?john=doe - Out-CFResults - - AppendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension?john=doe - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension?john=doe - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-004 + AppendingPathExtension-4-parse-relative-basic-004 In-URLCreator CFURLCreateWithBytes In-Url ./joe/blow - Out-CFResults - - AppendingPathExtension - ./joe/blow.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - ./joe/blow.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-005 + AppendingPathExtension-4-parse-relative-basic-005 In-URLCreator CFURLCreateWithBytes In-Url ../joe/blow - Out-CFResults - - AppendingPathExtension - ../joe/blow.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - ../joe/blow.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-006 + AppendingPathExtension-4-parse-relative-basic-006 In-URLCreator CFURLCreateWithBytes In-Url /joe/blow - Out-CFResults - - AppendingPathExtension - /joe/blow.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - /joe/blow.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-007 + AppendingPathExtension-4-parse-relative-basic-007 In-URLCreator CFURLCreateWithBytes In-Url joe/blow#frag2 - Out-CFResults - - AppendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension#frag2 - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - joe/blow.New%3BPath%3FExt%2Fension#frag2 - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-008 + AppendingPathExtension-4-parse-relative-basic-008 In-URLCreator CFURLCreateWithBytes In-Url ftp://my.server.com/some/document - Out-CFResults - - AppendingPathExtension - ftp://my.server.com/some/document.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - ftp://my.server.com/some/document.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-009 + AppendingPathExtension-4-parse-relative-basic-009 In-URLCreator CFURLCreateWithBytes In-Url /joe:blow - Out-CFResults - - AppendingPathExtension - /joe:blow.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - Out-NSResults - - appendingPathExtension - /joe:blow.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://user:pass@hostname.com:42/some/path;param?name=value#fragment - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-basic-010 + AppendingPathExtension-4-parse-relative-basic-010 In-URLCreator CFURLCreateWithBytes In-Url joe:blow - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-illegal-001 + AppendingPathExtension-4-parse-relative-illegal-001 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://user:pass@hostname.com:42/some/path;param?name=value#fragment In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-illegal-002 + AppendingPathExtension-4-parse-relative-illegal-002 In-URLCreator CFURLCreateWithBytes In-Url ??? - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-001 + AppendingPathExtension-4-parse-relative-rfc-001 In-URLCreator CFURLCreateWithBytes In-Url g:h - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-002 + AppendingPathExtension-4-parse-relative-rfc-002 In-URLCreator CFURLCreateWithBytes In-Url g - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-003 + AppendingPathExtension-4-parse-relative-rfc-003 In-URLCreator CFURLCreateWithBytes In-Url ./g - Out-CFResults - - AppendingPathExtension - ./g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ./g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-004 + AppendingPathExtension-4-parse-relative-rfc-004 In-URLCreator CFURLCreateWithBytes In-Url g/ - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-005 + AppendingPathExtension-4-parse-relative-rfc-005 In-URLCreator CFURLCreateWithBytes In-Url /g - Out-CFResults - - AppendingPathExtension - /g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-006 + AppendingPathExtension-4-parse-relative-rfc-006 In-URLCreator CFURLCreateWithBytes In-Url //g - Out-CFResults - - AppendingPathExtension - //g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - //g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-007 + AppendingPathExtension-4-parse-relative-rfc-007 In-URLCreator CFURLCreateWithBytes In-Url ?y - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-008 + AppendingPathExtension-4-parse-relative-rfc-008 In-URLCreator CFURLCreateWithBytes In-Url g?y - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension?y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension?y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-009 + AppendingPathExtension-4-parse-relative-rfc-009 In-URLCreator CFURLCreateWithBytes In-Url #s - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-010 + AppendingPathExtension-4-parse-relative-rfc-010 In-URLCreator CFURLCreateWithBytes In-Url g#s - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-011 + AppendingPathExtension-4-parse-relative-rfc-011 In-URLCreator CFURLCreateWithBytes In-Url g?y#s - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension?y#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension?y#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-012 + AppendingPathExtension-4-parse-relative-rfc-012 In-URLCreator CFURLCreateWithBytes In-Url ;x - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-013 + AppendingPathExtension-4-parse-relative-rfc-013 In-URLCreator CFURLCreateWithBytes In-Url g;x - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension;x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension;x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-014 + AppendingPathExtension-4-parse-relative-rfc-014 In-URLCreator CFURLCreateWithBytes In-Url g;x?y#s - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension;x?y#s - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension;x?y#s - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-015 + AppendingPathExtension-4-parse-relative-rfc-015 In-URLCreator CFURLCreateWithBytes In-Url - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-016 + AppendingPathExtension-4-parse-relative-rfc-016 In-URLCreator CFURLCreateWithBytes - In-Url - . - Out-CFResults - - AppendingPathExtension - ..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - + In-Url + . Out-NSResults - - appendingPathExtension - ..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-017 + AppendingPathExtension-4-parse-relative-rfc-017 In-URLCreator CFURLCreateWithBytes In-Url ./ - Out-CFResults - - AppendingPathExtension - ..New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ..New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-018 + AppendingPathExtension-4-parse-relative-rfc-018 In-URLCreator CFURLCreateWithBytes In-Url .. - Out-CFResults - - AppendingPathExtension - ...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-019 + AppendingPathExtension-4-parse-relative-rfc-019 In-URLCreator CFURLCreateWithBytes In-Url ../ - Out-CFResults - - AppendingPathExtension - ...New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ...New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-020 + AppendingPathExtension-4-parse-relative-rfc-020 In-URLCreator CFURLCreateWithBytes In-Url ../g - Out-CFResults - - AppendingPathExtension - ../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-021 + AppendingPathExtension-4-parse-relative-rfc-021 In-URLCreator CFURLCreateWithBytes In-Url ../.. - Out-CFResults - - AppendingPathExtension - ../...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-022 + AppendingPathExtension-4-parse-relative-rfc-022 In-URLCreator CFURLCreateWithBytes In-Url ../../ - Out-CFResults - - AppendingPathExtension - ../...New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../...New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-023 + AppendingPathExtension-4-parse-relative-rfc-023 In-URLCreator CFURLCreateWithBytes In-Url ../../g - Out-CFResults - - AppendingPathExtension - ../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-024 + AppendingPathExtension-4-parse-relative-rfc-024 In-URLCreator CFURLCreateWithBytes In-Url ../../../g - Out-CFResults - - AppendingPathExtension - ../../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-025 + AppendingPathExtension-4-parse-relative-rfc-025 In-URLCreator CFURLCreateWithBytes In-Url ../../../../g - Out-CFResults - - AppendingPathExtension - ../../../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ../../../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-026 + AppendingPathExtension-4-parse-relative-rfc-026 In-URLCreator CFURLCreateWithBytes In-Url /./g - Out-CFResults - - AppendingPathExtension - /./g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /./g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-027 + AppendingPathExtension-4-parse-relative-rfc-027 In-URLCreator CFURLCreateWithBytes In-Url /../g - Out-CFResults - - AppendingPathExtension - /../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - /../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-028 + AppendingPathExtension-4-parse-relative-rfc-028 In-URLCreator CFURLCreateWithBytes In-Url g. - Out-CFResults - - AppendingPathExtension - g..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-029 + AppendingPathExtension-4-parse-relative-rfc-029 In-URLCreator CFURLCreateWithBytes In-Url .g - Out-CFResults - - AppendingPathExtension - .g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - .g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-030 + AppendingPathExtension-4-parse-relative-rfc-030 In-URLCreator CFURLCreateWithBytes In-Url g.. - Out-CFResults - - AppendingPathExtension - g...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-031 + AppendingPathExtension-4-parse-relative-rfc-031 In-URLCreator CFURLCreateWithBytes In-Url ..g - Out-CFResults - - AppendingPathExtension - ..g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ..g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-032 + AppendingPathExtension-4-parse-relative-rfc-032 In-URLCreator CFURLCreateWithBytes In-Url ./../g - Out-CFResults - - AppendingPathExtension - ./../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ./../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-033 + AppendingPathExtension-4-parse-relative-rfc-033 In-URLCreator CFURLCreateWithBytes In-Url ./g/. - Out-CFResults - - AppendingPathExtension - ./g/..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - ./g/..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-034 + AppendingPathExtension-4-parse-relative-rfc-034 In-URLCreator CFURLCreateWithBytes In-Url g/./h - Out-CFResults - - AppendingPathExtension - g/./h.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g/./h.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-035 + AppendingPathExtension-4-parse-relative-rfc-035 In-URLCreator CFURLCreateWithBytes In-Url g/../h - Out-CFResults - - AppendingPathExtension - g/../h.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g/../h.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-036 + AppendingPathExtension-4-parse-relative-rfc-036 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/./y - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension;x=1/./y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension;x=1/./y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-037 + AppendingPathExtension-4-parse-relative-rfc-037 In-URLCreator CFURLCreateWithBytes In-Url g;x=1/../y - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension;x=1/../y - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension;x=1/../y - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-038 + AppendingPathExtension-4-parse-relative-rfc-038 In-URLCreator CFURLCreateWithBytes In-Url g?y/./x - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension?y/./x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension?y/./x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-039 + AppendingPathExtension-4-parse-relative-rfc-039 In-URLCreator CFURLCreateWithBytes In-Url g?y/../x - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension?y/../x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension?y/../x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-040 + AppendingPathExtension-4-parse-relative-rfc-040 In-URLCreator CFURLCreateWithBytes In-Url g#s/./x - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension#s/./x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension#s/./x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-041 + AppendingPathExtension-4-parse-relative-rfc-041 In-URLCreator CFURLCreateWithBytes In-Url g#s/../x - Out-CFResults - - AppendingPathExtension - g.New%3BPath%3FExt%2Fension#s/../x - AppendingPathExtension-BaseURL - http://a/b/c/d;p?q - Out-NSResults - - appendingPathExtension - g.New%3BPath%3FExt%2Fension#s/../x - appendingPathExtension-BaseURL - http://a/b/c/d;p?q - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-042 + AppendingPathExtension-4-parse-relative-rfc-042 In-URLCreator CFURLCreateWithBytes In-Url http:g - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-043 + AppendingPathExtension-4-parse-relative-rfc-043 In-URLCreator CFURLCreateWithBytes In-Url file:g - Out-CFResults - - AppendingPathExtension - <null> - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - <null> - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-044 + AppendingPathExtension-4-parse-relative-rfc-044 In-URLCreator CFURLCreateWithBytes In-Url http:/g - Out-CFResults - - AppendingPathExtension - http:/g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://a/b/c/d;p?q In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-rfc-045 + AppendingPathExtension-4-parse-relative-rfc-045 In-URLCreator CFURLCreateWithBytes In-Url file:/g - Out-CFResults - - AppendingPathExtension - file:/g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - file:/g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://macosx.apple.com In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-real-world-001 + AppendingPathExtension-4-parse-relative-real-world-001 In-URLCreator CFURLCreateWithBytes In-Url /Images/foo.gif - Out-CFResults - - AppendingPathExtension - /Images/foo.gif.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://macosx.apple.com - Out-NSResults - - appendingPathExtension - /Images/foo.gif.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://macosx.apple.com - + <null url> In-Base http://www.ticketmaster.com/search?keyword=tool In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-real-world-002 + AppendingPathExtension-4-parse-relative-real-world-002 In-URLCreator CFURLCreateWithBytes In-Url ../artist/720703 - Out-CFResults - - AppendingPathExtension - ../artist/720703.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - Out-NSResults - - appendingPathExtension - ../artist/720703.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://www.ticketmaster.com/search?keyword=tool - + <null url> In-Base http://www.cnn.com In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-real-world-003 + AppendingPathExtension-4-parse-relative-real-world-003 In-URLCreator CFURLCreateWithBytes In-Url /interactive/world/0207/gallery.pope.tour/frameset.exclude.html - Out-CFResults - - AppendingPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - http://www.cnn.com - Out-NSResults - - appendingPathExtension - %20/interactive/world/0207/gallery.pope.tour/frameset.exclude.html.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - http://www.cnn.com - + <null url> In-Base http://www.muquit.com/muquit/software/Count/Count.html In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-real-world-004 + AppendingPathExtension-4-parse-relative-real-world-004 In-URLCreator CFURLCreateWithBytes In-Url http:/cgi-bin/Count.cgi?ft=0 - Out-CFResults - - AppendingPathExtension - http:/cgi-bin/Count.cgi.New%3BPath%3FExt%2Fension?ft=0 - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http:/cgi-bin/Count.cgi.New%3BPath%3FExt%2Fension?ft=0 - appendingPathExtension-BaseURL - <null> - + <null url> In-Base http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-relative-real-world-005 + AppendingPathExtension-4-parse-relative-real-world-005 In-URLCreator CFURLCreateWithBytes In-Url databases/76/containers/2891/items?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - Out-CFResults - - AppendingPathExtension - databases/76/containers/2891/items.New%3BPath%3FExt%2Fension?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - AppendingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - Out-NSResults - - appendingPathExtension - databases/76/containers/2891/items.New%3BPath%3FExt%2Fension?sort=dateadded&invert-sort-order=1&session-id=1866048351&query=(('com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32')+'daap.songdatakind:0')&meta=dmap.persistentid,dmap.itemname,daap.songalbum,com.apple.itunes.extended-media-kind,daap.songalbumid,daap.songformat,com.apple.itunes.gapless-heur,com.apple.itunes.gapless-enc-del,com.apple.itunes.gapless-enc-dr,com.apple.itunes.gapless-dur,com.apple.itunes.gapless-resy,com.apple.itunes.norm-volume,daap.songbookmark,daap.songhasbeenplayed,daap.songuserplaycount,daap.songtime,com.apple.itunes.is-hd-video,daap.songcontentrating,com.apple.itunes.content-rating,daap.songcontentdescription,daap.songlongcontentdescription,com.apple.itunes.movie-info-xml,daap.songstarttime,daap.songstoptime,com.apple.itunes.drm-key1-id,com.apple.itunes.rental-start,com.apple.itunes.drm-user-id,com.apple.itunes.rental-duration,com.apple.itunes.rental-pb-start,com.apple.itunes.rental-pb-duration,daap.songdateadded,com.apple.itunes.itms-songid,daap.songdisabled,dmap.itemid,com.apple.itunes.artworkchecksum&index=0-99 - appendingPathExtension-BaseURL - http://[fe80::7e6d:62ff:fe75:9e88%25en0]:3689 - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-001 + AppendingPathExtension-4-parse-absolute-with-relative-001 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-002 + AppendingPathExtension-4-parse-absolute-with-relative-002 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/. - Out-CFResults - - AppendingPathExtension - http://a/b/c/..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-003 + AppendingPathExtension-4-parse-absolute-with-relative-003 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./ - Out-CFResults - - AppendingPathExtension - http://a/b/c/..New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-004 + AppendingPathExtension-4-parse-absolute-with-relative-004 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-005 + AppendingPathExtension-4-parse-absolute-with-relative-005 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../ - Out-CFResults - - AppendingPathExtension - http://a/b/c/...New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/...New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-006 + AppendingPathExtension-4-parse-absolute-with-relative-006 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-007 + AppendingPathExtension-4-parse-absolute-with-relative-007 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/../...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-008 + AppendingPathExtension-4-parse-absolute-with-relative-008 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../ - Out-CFResults - - AppendingPathExtension - http://a/b/c/../...New%3BPath%3FExt%2Fension/ - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../...New%3BPath%3FExt%2Fension/ - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-009 + AppendingPathExtension-4-parse-absolute-with-relative-009 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-010 + AppendingPathExtension-4-parse-absolute-with-relative-010 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-011 + AppendingPathExtension-4-parse-absolute-with-relative-011 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../../../../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../../../../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../../../../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-012 + AppendingPathExtension-4-parse-absolute-with-relative-012 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-013 + AppendingPathExtension-4-parse-absolute-with-relative-013 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-014 + AppendingPathExtension-4-parse-absolute-with-relative-014 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g. - Out-CFResults - - AppendingPathExtension - http://a/b/c/g..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-015 + AppendingPathExtension-4-parse-absolute-with-relative-015 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/.g - Out-CFResults - - AppendingPathExtension - http://a/b/c/.g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/.g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-016 + AppendingPathExtension-4-parse-absolute-with-relative-016 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g.. - Out-CFResults - - AppendingPathExtension - http://a/b/c/g...New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g...New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-017 + AppendingPathExtension-4-parse-absolute-with-relative-017 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/..g - Out-CFResults - - AppendingPathExtension - http://a/b/c/..g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/..g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-018 + AppendingPathExtension-4-parse-absolute-with-relative-018 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./../g - Out-CFResults - - AppendingPathExtension - http://a/b/c/./../g.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./../g.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-019 + AppendingPathExtension-4-parse-absolute-with-relative-019 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/./g/. - Out-CFResults - - AppendingPathExtension - http://a/b/c/./g/..New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/./g/..New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-020 + AppendingPathExtension-4-parse-absolute-with-relative-020 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/./h - Out-CFResults - - AppendingPathExtension - http://a/b/c/g/./h.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g/./h.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-021 + AppendingPathExtension-4-parse-absolute-with-relative-021 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g/../h - Out-CFResults - - AppendingPathExtension - http://a/b/c/g/../h.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g/../h.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-022 + AppendingPathExtension-4-parse-absolute-with-relative-022 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/./y - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension;x=1/./y - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension;x=1/./y - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-023 + AppendingPathExtension-4-parse-absolute-with-relative-023 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g;x=1/../y - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension;x=1/../y - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension;x=1/../y - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-024 + AppendingPathExtension-4-parse-absolute-with-relative-024 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/./x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension?y/./x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension?y/./x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-025 + AppendingPathExtension-4-parse-absolute-with-relative-025 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g?y/../x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension?y/../x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension?y/../x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-026 + AppendingPathExtension-4-parse-absolute-with-relative-026 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/./x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension#s/./x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension#s/./x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-027 + AppendingPathExtension-4-parse-absolute-with-relative-027 In-URLCreator CFURLCreateWithBytes In-Url http://a/b/c/g#s/../x - Out-CFResults - - AppendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension#s/../x - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/b/c/g.New%3BPath%3FExt%2Fension#s/../x - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-028 + AppendingPathExtension-4-parse-absolute-with-relative-028 In-URLCreator CFURLCreateWithBytes In-Url http://a/../../x - Out-CFResults - - AppendingPathExtension - http://a/../../x.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/../../x.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> In-PathExtension - New;Path?Ext/ension + foobar .gz In-Title - AppendingPathExtension-2-parse-absolute-with-relative-029 + AppendingPathExtension-4-parse-absolute-with-relative-029 In-URLCreator CFURLCreateWithBytes In-Url http://a/..///../x - Out-CFResults - - AppendingPathExtension - http://a/..///../x.New%3BPath%3FExt%2Fension - AppendingPathExtension-BaseURL - <null> - Out-NSResults - - appendingPathExtension - http://a/..///../x.New%3BPath%3FExt%2Fension - appendingPathExtension-BaseURL - <null> - + <null url> diff --git a/TestFoundation/TestNSURL.swift b/TestFoundation/TestNSURL.swift index 55a57e6156..ff2584546a 100644 --- a/TestFoundation/TestNSURL.swift +++ b/TestFoundation/TestNSURL.swift @@ -102,8 +102,8 @@ class TestNSURL : XCTestCase { } } - internal func generateResults(_ url: URL, pathComponent: String?, pathExtension : String?) -> [String : String] { - var result = [String : String]() + internal func generateResults(_ url: URL, pathComponent: String?, pathExtension : String?) -> [String : Any] { + var result = [String : Any]() if let pathComponent = pathComponent { let newFileURL = url.appendingPathComponent(pathComponent, isDirectory: false) result["appendingPathComponent-File"] = newFileURL.relativeString @@ -123,8 +123,8 @@ class TestNSURL : XCTestCase { result["absoluteURLString"] = url.absoluteURL.relativeString result["scheme"] = url.scheme ?? kNullString result["host"] = url.host ?? kNullString - // Temporarily disabled because we're only checking string results - // result["port"] = url.port ?? kNullString + + result["port"] = url.port ?? kNullString result["user"] = url.user ?? kNullString result["password"] = url.password ?? kNullString result["path"] = url.path @@ -134,9 +134,8 @@ class TestNSURL : XCTestCase { result["isFileURL"] = url.isFileURL ? "YES" : "NO" result["standardizedURL"] = url.standardized.relativeString - // Temporarily disabled because we're only checking string results - // result["pathComponents"] = url.pathComponents ?? kNullString - result["lastPathComponent"] = url.lastPathComponent + result["pathComponents"] = url.pathComponents + result["lastPathComponent"] = url.lastPathComponent result["pathExtension"] = url.pathExtension result["deletingLastPathComponent"] = url.deletingLastPathComponent().relativeString result["deletingLastPathExtension"] = url.deletingPathExtension().relativeString @@ -144,18 +143,39 @@ class TestNSURL : XCTestCase { return result } - internal func compareResults(_ url : URL, expected : [String : Any], got : [String : String]) -> (Bool, [String]) { + internal func compareResults(_ url : URL, expected : [String : Any], got : [String : Any]) -> (Bool, [String]) { var differences = [String]() for (key, obj) in expected { // Skip non-string expected results if ["port", "standardizedURL", "pathComponents"].contains(key) { continue } - if let stringObj = obj as? String { - if stringObj != got[key] { - differences.append(" \(key) Expected = '\(stringObj)', Got = '\(got[key] as Optional)'") + if let expectedValue = obj as? String { + if let testedValue = got[key] as? String { + if expectedValue != testedValue { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(testedValue)'") + } + } else { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(got[key])'") + } + } else if let expectedValue = obj as? [String] { + if let testedValue = got[key] as? [String] { + if expectedValue != testedValue { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(testedValue)'") + } + } else { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(got[key])'") + } + } else if let expectedValue = obj as? Int { + if let testedValue = got[key] as? Int { + if expectedValue != testedValue { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(testedValue)'") + } + } else { + differences.append(" \(key) Expected = '\(expectedValue)', Got = '\(got[key])'") } } + } for (key, obj) in got { if expected[key] == nil { @@ -179,9 +199,9 @@ class TestNSURL : XCTestCase { let inBase = testDict[kURLTestBaseKey] as! String? let inPathComponent = testDict[kURLTestPathComponentKey] as! String? let inPathExtension = testDict[kURLTestPathExtensionKey] as! String? - let expectedCFResults = testDict[kURLTestCFResultsKey]! let expectedNSResult = testDict[kURLTestNSResultsKey]! var url : URL? = nil + switch (testDict[kURLTestURLCreatorKey]! as! String) { case kNSURLWithStringCreator: url = URLWithString(inURL, baseString: inBase) @@ -191,18 +211,16 @@ class TestNSURL : XCTestCase { default: XCTFail() } - - if let url = url { - if title == "NSURLWithString-parse-ambiguous-url-001" { - // TODO: Fix this test + if title == "NSURLWithString-parse-ambiguous-url-001" { + // TODO: Fix this test + } else { + if let url = url { + let results = generateResults(url, pathComponent: inPathComponent, pathExtension: inPathExtension) + let (isEqual, differences) = compareResults(url, expected: expectedNSResult as! [String: Any], got: results) + XCTAssertTrue(isEqual, "\(title): \(differences.joined(separator: "\n"))") } else { - let results = generateResults(url, pathComponent: inPathComponent, pathExtension: inPathExtension) - let (isEqual, differences) = compareResults(url, expected: expectedNSResult as! [String: Any], got: results) - XCTAssertTrue(isEqual, "\(title): \(differences)") + XCTAssertEqual(expectedNSResult as? String, kNullURLString) } - } else { - XCTAssertEqual(expectedCFResults as? String, kNullURLString) - XCTAssertEqual(expectedNSResult as? String, kNullURLString) } } diff --git a/build.py b/build.py index 247e360904..ccd9bf16d5 100644 --- a/build.py +++ b/build.py @@ -158,7 +158,8 @@ 'CoreFoundation/NumberDate.subproj/CFNumber.h', 'CoreFoundation/Collections.subproj/CFData.h', 'CoreFoundation/String.subproj/CFAttributedString.h', - 'CoreFoundation/Base.subproj/CoreFoundation_Prefix.h' + 'CoreFoundation/Base.subproj/CoreFoundation_Prefix.h', + 'CoreFoundation/AppServices.subproj/CFNotificationCenter.h' ], private = [ 'CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h', @@ -200,6 +201,8 @@ 'CoreFoundation/StringEncodings.subproj/CFICUConverters.h', 'CoreFoundation/String.subproj/CFRegularExpression.h', 'CoreFoundation/String.subproj/CFRunArray.h', + 'CoreFoundation/Locale.subproj/CFDateFormatter_Private.h', + 'CoreFoundation/Locale.subproj/CFLocale_Private.h', ], project = [ ]) @@ -513,7 +516,7 @@ """ extra_script += """ rule RunTestFoundation - command = echo "**** RUNNING TESTS ****\\nexecute:\\nLD_LIBRARY_PATH=${BUILD_DIR}/Foundation/:${LIBS_DIRS} ${BUILD_DIR}/TestFoundation/TestFoundation\\n**** DEBUGGING TESTS ****\\nexecute:\\nLD_LIBRARY_PATH=${BUILD_DIR}/Foundation/:${LIBS_DIRS} lldb ${BUILD_DIR}/TestFoundation/TestFoundation\\n" + command = echo "**** RUNNING TESTS ****\\nexecute:\\nLD_LIBRARY_PATH=${BUILD_DIR}/Foundation/:${LIBS_DIRS} ${BUILD_DIR}/TestFoundation/TestFoundation\\n**** DEBUGGING TESTS ****\\nexecute:\\nLD_LIBRARY_PATH=${BUILD_DIR}/Foundation/:${LIBS_DIRS} ${BUILD_DIR}/../lldb-${OS}-${ARCH}/bin/lldb ${BUILD_DIR}/TestFoundation/TestFoundation\\n" description = Building Tests build ${BUILD_DIR}/.test: RunTestFoundation | TestFoundation