# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
#     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
#     DEPENDING ON IT IN YOUR PROJECT. ***
third_party {
  # would be RESTRICTED save for:
  #   Apple Java Extensions License in:
  #     common/m2/repository/com/apple/AppleJavaExtensions/NOTICE
  #     common/m2/repository/com/apple/AppleJavaExtensions/1.4/AppleJavaExtensions-1.4.pom
  #   Crittercism Integration Code License in:
  #     common/m2/repository/com/crittercism/crittercism-android-agent/5.6.4/crittercism-android-agent-5.6.4.pom
  #   Atlassian End User Agreement in:
  #     common/m2/repository/com/cenqua/clover/clover/3.1.12/clover-3.1.12.pom
  #   Facebook Platform License in:
  #     common/m2/repository/com/facebook/android/facebook-android-sdk/4.14.0/facebook-android-sdk-4.14.0.pom
  #   Proprietary Helpshift License in:
  #     common/m2/repository/com/helpshift/android-helpshift-aar/4.7.0/android-helpshift-aar-4.7.0.pom
  license_type: BY_EXCEPTION_ONLY
}
