Skip to content

Commit

Permalink
Merge branch 'release/2.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
0xced committed Jan 5, 2016
2 parents 28a36af + eee525b commit cced510
Show file tree
Hide file tree
Showing 74 changed files with 345 additions and 192 deletions.
3 changes: 0 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@ env:
matrix:
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s" CONFIGURATION="Code Coverage" SCHEME="XCDYouTubeKit iOS Static Library" OBJROOT="build"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=8.1" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=8.2" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=8.3" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=8.4" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=9.0" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=9.1" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=9.2" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 5s,OS=9.2" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library" IPHONEOS_DEPLOYMENT_TARGET="9.2"'
- 'DESTINATION="platform=iOS Simulator,name=iPhone 4s" CONFIGURATION="Release" SCHEME="XCDYouTubeKit iOS Static Library" RUN_CLANG_STATIC_ANALYZER="YES"'
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
#### Version 2.5.0

* Logging is fully configurable with the new `XCDYouTubeLogger` class.
* Added `XCDYouTubeAllowedCountriesUserInfoKey` for better diagnosis of some unplayable (geoblocked) videos. (#216)

#### Version 2.4.3

* Fixed *XCDYouTubeKit iOS Framework* deployment target. (#223)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2015 Cédric Luthi
Copyright (c) 2013-2016 Cédric Luthi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
27 changes: 4 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ XCDYouTubeKit is available through CocoaPods and Carthage.
CocoaPods:

```ruby
pod "XCDYouTubeKit", "~> 2.4.3"
pod "XCDYouTubeKit", "~> 2.5"
```

Carthage:

```objc
github "0xced/XCDYouTubeKit" ~> 2.4.3
github "0xced/XCDYouTubeKit" ~> 2.5
```

Alternatively, you can manually use the provided static library on iOS or dynamic framework on OS X. In order to use the iOS static library, you must:
Expand Down Expand Up @@ -108,28 +108,9 @@ See the demo project for more sample code.

## Logging

Since version 2.2.0, XCDYouTubeKit produces logs. XCDYouTubeKit supports [CocoaLumberjack](https://github.com/CocoaLumberjack/CocoaLumberjack) but does not require it. If your project includes CocoaLumberjack, all logs will be routed through CocoaLumberjack, else logs will be emitted with `NSLog`.
Since version 2.2.0, XCDYouTubeKit produces logs. XCDYouTubeKit supports [CocoaLumberjack](https://github.com/CocoaLumberjack/CocoaLumberjack) but does not require it.

The context for identifying all XCDYouTubeKit logs in CocoaLumberjack is the number `(NSInteger)0xced70676`. Beware, CocoaLumberjack contexts are NSIntegers, don’t forget the cast.

### Controlling log levels

If you are using CocoaLumberjack, you are responsible for controlling the log levels with the CocoaLumberjack APIs.

If you are not using CocoaLumberjack, you can control the log levels with the `XCDYouTubeKitLogLevel` environment variable. The log levels are the same as CocoaLumberjack, with the addition of the *trace* level.

Level | Value
--------|------
Error | 0x01
Warning | 0x02
Info | 0x04
Debug | 0x08
Verbose | 0x10
Trace | 0x20

The levels are bitmasks, so you can combine them. For example, if you want to log *error*, *warning* and *info* levels, set the `XCDYouTubeKitLogLevel` environment variable to `0x7`.

If you do not set the `XCDYouTubeKitLogLevel` environment variable, only warning and error levels are logged.
See the `XCDYouTubeLogger` class [documentation](http://cocoadocs.org/docsets/XCDYouTubeKit/) for more information.

## Credits

Expand Down
3 changes: 2 additions & 1 deletion Scripts/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ if [[ $# -ne 1 ]]; then
fi

VERSION=$1
VERSION_PARTS=(${VERSION//./ })

git flow release start ${VERSION}

Expand All @@ -28,7 +29,7 @@ sed -i "" "s/DYLIB_CURRENT_VERSION = .*;/DYLIB_CURRENT_VERSION = ${VERSION};/g"
sed -i "" "s/CURRENT_PROJECT_VERSION = .*;/CURRENT_PROJECT_VERSION = ${CURRENT_PROJECT_VERSION};/g" "XCDYouTubeKit.xcodeproj/project.pbxproj"
sed -i "" "s/CURRENT_PROJECT_VERSION = .*;/CURRENT_PROJECT_VERSION = ${VERSION};/g" "XCDYouTubeKit Demo/XCDYouTubeKit Demo.xcodeproj/project.pbxproj"
sed -i "" "s/^\(.*s.version.*=.*\)\".*\"/\1\"${VERSION}\"/" "XCDYouTubeKit.podspec"
sed -E -i "" "s/~> [0-9\.]+/~> ${VERSION}/g" "README.md"
sed -E -i "" "s/~> [0-9\.]+/~> ${VERSION_PARTS[0]}.${VERSION_PARTS[1]}/g" "README.md"
set +v
git add "XCDYouTubeKit.xcodeproj"
git add "XCDYouTubeKit Demo/XCDYouTubeKit Demo.xcodeproj"
Expand Down
2 changes: 1 addition & 1 deletion Scripts/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ done

COMMAND+=" | tee xcodebuild.log"

xcpretty --version > /dev/null 2>&1 && COMMAND+=" | xcpretty -c" && xcpretty-travis-formatter > /dev/null 2>&1 && COMMAND+=" -f `xcpretty-travis-formatter`"
xcpretty --version > /dev/null 2>&1 && COMMAND+=" | xcpretty" && [ "${TRAVIS}" == "true" ] && xcpretty-travis-formatter > /dev/null 2>&1 && COMMAND+=" -f `xcpretty-travis-formatter`"

set -x
eval "${COMMAND}" && rm xcodebuild.log
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/OS X Demo/AppDelegate.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import AppKit;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/OS X Demo/AppDelegate.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "AppDelegate.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2013-2015 Cédric Luthi. All rights reserved.</string>
<string>Copyright © 2013-2016 Cédric Luthi. All rights reserved.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/OS X Demo/Supporting Files/main.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import AppKit;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -760,7 +760,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2.4.3;
CURRENT_PROJECT_VERSION = 2.5.0;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
Expand Down Expand Up @@ -805,7 +805,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 2.4.3;
CURRENT_PROJECT_VERSION = 2.5.0;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/AppDelegate.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
7 changes: 4 additions & 3 deletions XCDYouTubeKit Demo/iOS Demo/AppDelegate.m
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "AppDelegate.h"

@import AVFoundation;
#import <XCDLumberjackNSLogger/XCDLumberjackNSLogger.h>
#import <XCDYouTubeKit/XCDYouTubeKit.h>

#import "ContextLogFormatter.h"

Expand Down Expand Up @@ -35,13 +36,13 @@ static void InitializeLoggers(void)
DDTTYLogger *ttyLogger = [DDTTYLogger sharedInstance];
DDLogLevel defaultLogLevel = LogLevelForEnvironmentVariable(@"DefaultLogLevel", DDLogLevelInfo);
DDLogLevel youTubeLogLevel = LogLevelForEnvironmentVariable(@"XCDYouTubeLogLevel", DDLogLevelWarning);
ttyLogger.logFormatter = [[ContextLogFormatter alloc] initWithLevels:@{ @((NSInteger)0xced70676) : @(youTubeLogLevel) } defaultLevel:defaultLogLevel];
ttyLogger.logFormatter = [[ContextLogFormatter alloc] initWithLevels:@{ @(XCDYouTubeKitLumberjackContext) : @(youTubeLogLevel) } defaultLevel:defaultLogLevel];
ttyLogger.colorsEnabled = YES;
[DDLog addLogger:ttyLogger];

NSString *bonjourServiceName = [[NSUserDefaults standardUserDefaults] objectForKey:@"NSLoggerBonjourServiceName"];
XCDLumberjackNSLogger *logger = [[XCDLumberjackNSLogger alloc] initWithBonjourServiceName:bonjourServiceName];
logger.tags = @{ @0: @"Movie Player", @((NSInteger)0xced70676) : @"XCDYouTubeKit" };
logger.tags = @{ @0: @"Movie Player", @(XCDYouTubeKitLumberjackContext) : @"XCDYouTubeKit" };
[DDLog addLogger:logger];
}

Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/ContextLogFormatter.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import Foundation;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/ContextLogFormatter.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "ContextLogFormatter.h"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "DemoAsynchronousViewController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoFullScreenViewController.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoFullScreenViewController.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "DemoFullScreenViewController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoInlineViewController.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoInlineViewController.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "DemoInlineViewController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoThumbnailViewController.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/DemoThumbnailViewController.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "DemoThumbnailViewController.h"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import MediaPlayer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "MPMoviePlayerController+BackgroundPlayback.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/NowPlayingInfoCenterProvider.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import Foundation;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/NowPlayingInfoCenterProvider.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "NowPlayingInfoCenterProvider.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/PlayerEventLogger.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import Foundation;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/PlayerEventLogger.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "PlayerEventLogger.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/SettingsViewController.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/SettingsViewController.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "SettingsViewController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/iOS Demo/Supporting Files/main.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2013-2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "AppDelegate.h"
Expand Down
6 changes: 1 addition & 5 deletions XCDYouTubeKit Demo/iOS Demo/VideoPickerController.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
//
// VideoPickerController.h
// XCDYouTubeKit Demo
//
// Created by Cédric Luthi on 20.01.15.
// Copyright (c) 2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

@import UIKit;
Expand Down
6 changes: 1 addition & 5 deletions XCDYouTubeKit Demo/iOS Demo/VideoPickerController.m
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
//
// VideoPickerController.m
// XCDYouTubeKit Demo
//
// Created by Cédric Luthi on 20.01.15.
// Copyright (c) 2015 Cédric Luthi. All rights reserved.
// Copyright (c) 2013-2016 Cédric Luthi. All rights reserved.
//

#import "VideoPickerController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/AppDelegate.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import <UIKit/UIKit.h>
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/AppDelegate.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import "AppDelegate.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/GradientMaskView.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import <UIKit/UIKit.h>
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/GradientMaskView.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import "GradientMaskView.h"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import <UIKit/UIKit.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import "PlaylistCollectionViewController.h"
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/Supporting Files/main.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import <UIKit/UIKit.h>
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit Demo/tvOS Demo/VideoCell.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright © 2015 Cédric Luthi. All rights reserved.
// Copyright © 2013-2016 Cédric Luthi. All rights reserved.
//

#import <UIKit/UIKit.h>
Expand Down
Loading

0 comments on commit cced510

Please sign in to comment.