Index: GoogleApisClient.sln
===================================================================
--- a/GoogleApisClient.sln
+++ b/GoogleApisClient.sln
@@ -26,106 +26,218 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleApis.Auth.Mvc4", "Src\GoogleApis.Auth.Mvc4\GoogleApis.Auth.Mvc4.csproj", "{B700243A-2FAC-454B-8858-47635BFA71C6}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleApis.Auth.WinRT", "Src\GoogleApis.Auth.WinRT\GoogleApis.Auth.WinRT.csproj", "{B1D5B962-3E98-46D4-992E-C6491E4E8A02}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleApis.WinRT", "Src\GoogleApis.WinRT\GoogleApis.WinRT.csproj", "{9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|ARM.ActiveCfg = Debug|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Debug|x86.ActiveCfg = Debug|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|ARM.ActiveCfg = Release|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|Win32.ActiveCfg = Release|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|x64.ActiveCfg = Release|Any CPU
+ {9A8AA9EF-6904-43D8-8A26-0AB62069C2DC}.Release|x86.ActiveCfg = Release|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|ARM.ActiveCfg = Debug|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Debug|x86.ActiveCfg = Debug|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Release|Any CPU.Build.0 = Release|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Release|ARM.ActiveCfg = Release|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{76106493-68EF-4E44-AF2E-971ABF29B300}.Release|Win32.ActiveCfg = Release|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Release|x64.ActiveCfg = Release|Any CPU
+ {76106493-68EF-4E44-AF2E-971ABF29B300}.Release|x86.ActiveCfg = Release|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|ARM.ActiveCfg = Debug|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Debug|x86.ActiveCfg = Debug|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|ARM.ActiveCfg = Release|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|Win32.ActiveCfg = Release|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|x64.ActiveCfg = Release|Any CPU
+ {E0B6A4D3-FDBD-4A1F-B592-4CEDB8001FB5}.Release|x86.ActiveCfg = Release|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|ARM.ActiveCfg = Debug|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Debug|x86.ActiveCfg = Debug|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|ARM.ActiveCfg = Release|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|Win32.ActiveCfg = Release|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|x64.ActiveCfg = Release|Any CPU
+ {826CF988-EEE8-4B75-8F53-B7E851A17BAA}.Release|x86.ActiveCfg = Release|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|ARM.ActiveCfg = Debug|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Debug|x86.ActiveCfg = Debug|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|ARM.ActiveCfg = Release|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|Win32.ActiveCfg = Release|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|x64.ActiveCfg = Release|Any CPU
+ {C4DA0ABE-2C2E-4BB8-9881-5FF80B0C1AFD}.Release|x86.ActiveCfg = Release|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|ARM.ActiveCfg = Debug|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Debug|x86.ActiveCfg = Debug|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|ARM.ActiveCfg = Release|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|Win32.ActiveCfg = Release|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|x64.ActiveCfg = Release|Any CPU
+ {0AAAF32E-2BF0-49C5-BC2D-90874CFB5510}.Release|x86.ActiveCfg = Release|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Debug|x86.ActiveCfg = Debug|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|ARM.ActiveCfg = Release|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|Win32.ActiveCfg = Release|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|x64.ActiveCfg = Release|Any CPU
+ {8CFBF8D2-64CB-4703-A5B0-F9EF4DE41FA7}.Release|x86.ActiveCfg = Release|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|ARM.ActiveCfg = Debug|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Debug|x86.ActiveCfg = Debug|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|Any CPU.ActiveCfg = Release|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|Any CPU.Build.0 = Release|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|ARM.ActiveCfg = Release|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|Win32.ActiveCfg = Release|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|x64.ActiveCfg = Release|Any CPU
+ {548D6C9B-A97B-4316-91AC-9AAD35202884}.Release|x86.ActiveCfg = Release|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Debug|x86.ActiveCfg = Debug|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Release|ARM.ActiveCfg = Release|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B700243A-2FAC-454B-8858-47635BFA71C6}.Release|Win32.ActiveCfg = Release|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Release|x64.ActiveCfg = Release|Any CPU
+ {B700243A-2FAC-454B-8858-47635BFA71C6}.Release|x86.ActiveCfg = Release|Any CPU
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|ARM.ActiveCfg = Debug|ARM
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|ARM.Build.0 = Debug|ARM
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Win32.ActiveCfg = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|Win32.Build.0 = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|x64.ActiveCfg = Debug|x64
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|x64.Build.0 = Debug|x64
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|x86.ActiveCfg = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Debug|x86.Build.0 = Debug|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|ARM.ActiveCfg = Release|ARM
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|ARM.Build.0 = Release|ARM
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Mixed Platforms.Build.0 = Release|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Win32.ActiveCfg = Release|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|Win32.Build.0 = Release|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|x64.ActiveCfg = Release|x64
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|x64.Build.0 = Release|x64
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|x86.ActiveCfg = Release|x86
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}.Release|x86.Build.0 = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|ARM.ActiveCfg = Debug|ARM
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|ARM.Build.0 = Debug|ARM
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Win32.ActiveCfg = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|Win32.Build.0 = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|x64.ActiveCfg = Debug|x64
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|x64.Build.0 = Debug|x64
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|x86.ActiveCfg = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Debug|x86.Build.0 = Debug|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|ARM.ActiveCfg = Release|ARM
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|ARM.Build.0 = Release|ARM
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Mixed Platforms.Build.0 = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Win32.ActiveCfg = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|Win32.Build.0 = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|x64.ActiveCfg = Release|x64
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|x64.Build.0 = Release|x64
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|x86.ActiveCfg = Release|x86
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Index: Src/GoogleApis.Auth.WinRT/GoogleApis.Auth.WinRT.csproj
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/GoogleApis.Auth.WinRT.csproj
@@ -0,0 +1,164 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {B1D5B962-3E98-46D4-992E-C6491E4E8A02}
+ Library
+ Properties
+ Google.Apis.Auth
+ Google.Apis.Auth.PlatformServices
+ en-US
+ 512
+ {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ ..\..\
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE;NETFX_CORE
+ prompt
+ 4
+ Google.Apis.Auth.PlatformServices.xml
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ Google.Apis.Auth.PlatformServices.xml
+
+
+
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl.Async.1.0.16\lib\win8\Microsoft.Threading.Tasks.dll
+
+
+ ..\..\packages\Microsoft.Bcl.Async.1.0.16\lib\win8\Microsoft.Threading.Tasks.Extensions.dll
+
+
+ ..\..\packages\Newtonsoft.Json.5.0.6\lib\netcore45\Newtonsoft.Json.dll
+
+
+ ..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Extensions.dll
+
+
+ ..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Primitives.dll
+
+
+
+
+ Designer
+
+
+
+
+ {0aaaf32e-2bf0-49c5-bc2d-90874cfb5510}
+ GoogleApis.Auth
+
+
+ {9cbb9ec3-c678-4fb7-889b-ded6de1f06b6}
+ GoogleApis.WinRT
+
+
+ {826cf988-eee8-4b75-8f53-b7e851a17baa}
+ GoogleApis
+
+
+
+ 11.0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: Src/GoogleApis.Auth.WinRT/OAuth2/AuthorizationCodeBroker.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/OAuth2/AuthorizationCodeBroker.cs
@@ -0,0 +1,101 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using Windows.Security.Authentication.Web;
+using Windows.ApplicationModel.Core;
+using Windows.UI.Core;
+
+using Google.Apis.Auth.OAuth2.Requests;
+using Google.Apis.Auth.OAuth2.Responses;
+
+namespace Google.Apis.Auth.OAuth2
+{
+ ///
+ /// OAuth 2.0 verification code receiver for Windows 8 application that opens an embedded Google account form to
+ /// enter the user's credentials and accepts the application access to its token.
+ ///
+ public class AuthorizationCodeBroker : ICodeReceiver
+ {
+ #region ICodeReceiver Members
+
+ public string RedirectUri
+ {
+ get { return GoogleAuthConsts.InstalledAppRedirectUri; }
+ }
+
+ public async Task ReceiveCodeAsync(AuthorizationCodeRequestUrl url,
+ CancellationToken taskCancellationToken)
+ {
+ TaskCompletionSource tcs =
+ new TaskCompletionSource();
+
+ // We should run WebAuthenticationBroker from the UI thread.
+ await InvokeFromUIThread(async () => await ReceiveCodeAsync(url, tcs));
+ return tcs.Task.Result;
+ }
+
+ private async Task InvokeFromUIThread(Action action)
+ {
+ await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
+ () => action());
+ }
+
+ /// Asynchronously receives the authorization code.
+ /// The authorization code request URL.
+ /// Task completion source whose result will be set to the authorization code.
+ private async Task ReceiveCodeAsync(AuthorizationCodeRequestUrl url,
+ TaskCompletionSource tcs)
+ {
+ const string Code = "code=";
+ const string Error = "error=";
+ try
+ {
+ WebAuthenticationResult result = await WebAuthenticationBroker.AuthenticateAsync
+ (WebAuthenticationOptions.UseTitle, url.Build(), new Uri(GoogleAuthConsts.ApprovalUrl));
+
+ if (!string.IsNullOrEmpty(result.ResponseData))
+ {
+ // Get the index of the error or the code.
+ var index = result.ResponseData.IndexOf(Code);
+ index = index != -1 ? index : result.ResponseData.IndexOf(Error);
+
+ if (index != -1)
+ {
+ tcs.SetResult(new AuthorizationCodeResponseUrl(result.ResponseData.Substring(index)));
+ return;
+ }
+ }
+
+ tcs.SetException(new TokenResponseException(
+ new TokenErrorResponse
+ {
+ Error = result.ResponseStatus.ToString(),
+ ErrorDescription = "The WebAuthenticationBroker didn't return a code or an error. Details:" +
+ result.ResponseErrorDetail,
+ }));
+ }
+ catch (Exception ex)
+ {
+ tcs.SetException(ex);
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Index: Src/GoogleApis.Auth.WinRT/OAuth2/AuthorizationCodeWinRTInstalledApp.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/OAuth2/AuthorizationCodeWinRTInstalledApp.cs
@@ -0,0 +1,70 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+using Google.Apis.Auth.OAuth2.Flows;
+
+namespace Google.Apis.Auth.OAuth2
+{
+ ///
+ /// OAuth 2.0 authorization code flow for a Windows 8 installed applications that persists end-user credentials.
+ ///
+ /// This installed app class uses an internal with a
+ /// for retrieving the authorization code.
+ ///
+ ///
+ public sealed class AuthorizationCodeWinRTInstalledApp : IAuthorizationCodeInstalledApp
+ {
+ private IAuthorizationCodeInstalledApp innerInstallApp;
+
+ private readonly AuthorizationCodeFlow.Initializer authorizationCodeFlowInitializer;
+
+ /// Constructs a new authorization code installed application for Windows Store.
+ /// A authorization code flow initializer
+ public AuthorizationCodeWinRTInstalledApp(AuthorizationCodeFlow.Initializer authorizationCodeFlowInitializer)
+ {
+ this.authorizationCodeFlowInitializer = authorizationCodeFlowInitializer;
+ }
+
+ #region IAuthorizationCodeInstalledApp Members
+
+ public IAuthorizationCodeFlow Flow
+ {
+ get { return innerInstallApp.Flow; }
+ }
+
+ public ICodeReceiver CodeReceiver
+ {
+ get { return innerInstallApp.CodeReceiver; }
+ }
+
+ public async Task AuthorizeAsync(string userId, CancellationToken taskCancellationToken)
+ {
+ if (innerInstallApp == null)
+ {
+ innerInstallApp = new AuthorizationCodeInstalledApp(
+ new AuthorizationCodeFlow(authorizationCodeFlowInitializer), new AuthorizationCodeBroker());
+ }
+
+ return await innerInstallApp.AuthorizeAsync(userId, taskCancellationToken);
+ }
+
+ #endregion
+ }
+}
Index: Src/GoogleApis.Auth.WinRT/OAuth2/GoogleWebAuthorizationBroker.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/OAuth2/GoogleWebAuthorizationBroker.cs
@@ -0,0 +1,74 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Windows.Storage;
+
+using Google.Apis.Auth.OAuth2.Flows;
+using Google.Apis.Util.Store;
+
+namespace Google.Apis.Auth.OAuth2
+{
+ /// A helper utility to manage the authorization code flow.
+ public class GoogleWebAuthorizationBroker
+ {
+ /// Asynchronously authorizes the specified user.
+ ///
+ /// It uses as the flow's data store by default.
+ ///
+ /// The client secrets URI.
+ ///
+ /// The scopes which indicate the Google API access your application is requesting.
+ ///
+ /// The user to authorize.
+ /// Cancellation token to cancel an operation.
+ /// User credential.
+ public static async Task AuthorizeAsync(Uri clientSecretsUri, IEnumerable scopes,
+ string user, CancellationToken taskCancellationToken)
+ {
+ var clientSecrets = await LoadClientSecrets(clientSecretsUri);
+
+ var initializer = new GoogleAuthorizationCodeFlow.Initializer
+ {
+ ClientSecrets = clientSecrets,
+ Scopes = scopes,
+ DataStore = new StroageDataStore()
+ };
+
+ var installedApp = new AuthorizationCodeWinRTInstalledApp(initializer);
+ return await installedApp.AuthorizeAsync(user, taskCancellationToken);
+ }
+
+ /// Loads the client secret from the given URI.
+ /// The client secrets URI.
+ /// Client secrets.
+ private static async Task LoadClientSecrets(Uri clientSecretsUri)
+ {
+ var file = await StorageFile.GetFileFromApplicationUriAsync(clientSecretsUri);
+ var content = await FileIO.ReadTextAsync(file);
+
+ using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(content)))
+ {
+ return GoogleClientSecrets.Load(stream).Secrets;
+ }
+ }
+ }
+}
Index: Src/GoogleApis.Auth.WinRT/Properties/AssemblyInfo.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/Properties/AssemblyInfo.cs
@@ -0,0 +1,41 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System.Reflection;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Google.Apis.Auth.PlatformServices")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Google Inc")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("Copyright © Google Inc 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: AssemblyMetadata("Author", "Eyal Peled, Noam Kfir")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+[assembly: AssemblyVersion("1.6.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
Index: Src/GoogleApis.Auth.WinRT/packages.config
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.Auth.WinRT/packages.config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: Src/GoogleApis.WinRT/Apis/Util/Store/StorageDataStore.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.WinRT/Apis/Util/Store/StorageDataStore.cs
@@ -0,0 +1,85 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System;
+using System.IO;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.Storage;
+
+using Google.Apis.Json;
+using Google.Apis.Logging;
+
+namespace Google.Apis.Util.Store
+{
+ ///
+ /// Windows Store data store that implements . This store creates a different file for each
+ /// combination of type and key.
+ ///
+ public class StroageDataStore : IDataStore
+ {
+ // TODO(peleyal): consider adding also PasswordValutDataStore
+
+ private static readonly StorageFolder LocalFolder = ApplicationData.Current.LocalFolder;
+ private static readonly ILogger Logger = ApplicationContext.Logger.ForType();
+
+ #region IDataStore Members
+
+ public async Task StoreAsync(string key, T value)
+ {
+ StorageFile file = await LocalFolder.CreateFileAsync(GenerateStoredKey(key, typeof(T)),
+ CreationCollisionOption.ReplaceExisting);
+
+ var content = Encoding.UTF8.GetBytes(NewtonsoftJsonSerializer.Instance.Serialize(value));
+ using (var stream = await file.OpenStreamForWriteAsync())
+ {
+ await stream.WriteAsync(content, 0, content.Length);
+ }
+ }
+
+ public async Task DeleteAsync(string key)
+ {
+ var storedKey = GenerateStoredKey(key, typeof(T));
+ var file = await LocalFolder.CreateFileAsync(storedKey, CreationCollisionOption.OpenIfExists);
+ await file.DeleteAsync(StorageDeleteOption.PermanentDelete);
+ }
+
+ public async Task GetAsync(string key)
+ {
+ StorageFile file = await LocalFolder.CreateFileAsync(GenerateStoredKey(key, typeof(T)),
+ CreationCollisionOption.OpenIfExists);
+ var content = await FileIO.ReadTextAsync(file);
+ if (string.IsNullOrEmpty(content))
+ {
+ return default(T);
+ }
+ return NewtonsoftJsonSerializer.Instance.Deserialize(content);
+
+ }
+
+ public async Task ClearAsync()
+ {
+ await LocalFolder.DeleteAsync();
+ }
+
+ #endregion
+
+ private string GenerateStoredKey(string key, Type t)
+ {
+ return string.Format("{0}-{1}", t.FullName, key);
+ }
+ }
+}
Index: Src/GoogleApis.WinRT/GoogleApis.WinRT.csproj
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.WinRT/GoogleApis.WinRT.csproj
@@ -0,0 +1,153 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {9CBB9EC3-C678-4FB7-889B-DED6DE1F06B6}
+ Library
+ Properties
+ Google
+ Google.Apis.PlatformServices
+ en-US
+ 512
+ {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ ..\..\
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE;NETFX_CORE
+ prompt
+ 4
+ Google.Apis.PlatformServices.xml
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ Google.Apis.PlatformServices.xml
+
+
+
+
+ {826cf988-eee8-4b75-8f53-b7e851a17baa}
+ GoogleApis
+
+
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl.Async.1.0.16\lib\win8\Microsoft.Threading.Tasks.dll
+
+
+ ..\..\packages\Microsoft.Bcl.Async.1.0.16\lib\win8\Microsoft.Threading.Tasks.Extensions.dll
+
+
+ ..\..\packages\Newtonsoft.Json.5.0.6\lib\netcore45\Newtonsoft.Json.dll
+
+
+ ..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Extensions.dll
+
+
+ ..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Primitives.dll
+
+
+
+
+
+
+ 11.0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: Src/GoogleApis.WinRT/Properties/AssemblyInfo.cs
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.WinRT/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+/*
+Copyright 2013 Google Inc
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+using System.Reflection;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Google.Apis.PlatformServices")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Google Inc")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("Copyright © Google Inc 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+[assembly: AssemblyVersion("1.6.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
Index: Src/GoogleApis.WinRT/packages.config
===================================================================
new file mode 100644
--- /dev/null
+++ b/Src/GoogleApis.WinRT/packages.config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file