Skip to content

Instantly share code, notes, and snippets.

@qt-kaneko
Last active May 8, 2024 12:02
Show Gist options
  • Save qt-kaneko/d5969bae8c31b306408038581297dd33 to your computer and use it in GitHub Desktop.
Save qt-kaneko/d5969bae8c31b306408038581297dd33 to your computer and use it in GitHub Desktop.
Google Lens API POC
using System;
using System.Linq;
using System.Net.Http;
using System.Text.Json;
using System.Text.RegularExpressions;
var http = new HttpClient();
// Here is image, i.e. File.ReadAllBytes("smth.png");
var file = new byte[] {137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 44, 0, 0, 0, 44, 8, 6, 0, 0, 0, 30, 132, 90, 1, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0, 154, 156, 24, 0, 0, 5, 194, 105, 84, 88, 116, 88, 77, 76, 58, 99, 111, 109, 46, 97, 100, 111, 98, 101, 46, 120, 109, 112, 0, 0, 0, 0, 0, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 98, 101, 103, 105, 110, 61, 34, 239, 187, 191, 34, 32, 105, 100, 61, 34, 87, 53, 77, 48, 77, 112, 67, 101, 104, 105, 72, 122, 114, 101, 83, 122, 78, 84, 99, 122, 107, 99, 57, 100, 34, 63, 62, 32, 60, 120, 58, 120, 109, 112, 109, 101, 116, 97, 32, 120, 109, 108, 110, 115, 58, 120, 61, 34, 97, 100, 111, 98, 101, 58, 110, 115, 58, 109, 101, 116, 97, 47, 34, 32, 120, 58, 120, 109, 112, 116, 107, 61, 34, 65, 100, 111, 98, 101, 32, 88, 77, 80, 32, 67, 111, 114, 101, 32, 55, 46, 49, 45, 99, 48, 48, 48, 32, 55, 57, 46, 98, 48, 102, 56, 98, 101, 57, 48, 44, 32, 50, 48, 50, 49, 47, 49, 50, 47, 49, 53, 45, 50, 49, 58, 50, 53, 58, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 34, 62, 32, 60, 114, 100, 102, 58, 82, 68, 70, 32, 120, 109, 108, 110, 115, 58, 114, 100, 102, 61, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 49, 57, 57, 57, 47, 48, 50, 47, 50, 50, 45, 114, 100, 102, 45, 115, 121, 110, 116, 97, 120, 45, 110, 115, 35, 34, 62, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 34, 34, 32, 120, 109, 108, 110, 115, 58, 120, 109, 112, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 34, 32, 120, 109, 108, 110, 115, 58, 100, 99, 61, 34, 104, 116, 116, 112, 58, 47, 47, 112, 117, 114, 108, 46, 111, 114, 103, 47, 100, 99, 47, 101, 108, 101, 109, 101, 110, 116, 115, 47, 49, 46, 49, 47, 34, 32, 120, 109, 108, 110, 115, 58, 120, 109, 112, 77, 77, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 109, 109, 47, 34, 32, 120, 109, 108, 110, 115, 58, 115, 116, 69, 118, 116, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 115, 84, 121, 112, 101, 47, 82, 101, 115, 111, 117, 114, 99, 101, 69, 118, 101, 110, 116, 35, 34, 32, 120, 109, 108, 110, 115, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 47, 49, 46, 48, 47, 34, 32, 120, 109, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, 111, 111, 108, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 32, 120, 109, 112, 58, 67, 114, 101, 97, 116, 101, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 49, 58, 51, 50, 43, 48, 51, 58, 48, 48, 34, 32, 120, 109, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 120, 109, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 100, 99, 58, 102, 111, 114, 109, 97, 116, 61, 34, 105, 109, 97, 103, 101, 47, 112, 110, 103, 34, 32, 120, 109, 112, 77, 77, 58, 73, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 49, 101, 101, 101, 51, 99, 100, 102, 45, 102, 55, 102, 49, 45, 52, 49, 99, 54, 45, 57, 53, 49, 54, 45, 49, 100, 52, 98, 51, 100, 99, 57, 99, 53, 49, 48, 34, 32, 120, 109, 112, 77, 77, 58, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 61, 34, 120, 109, 112, 46, 100, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 120, 109, 112, 77, 77, 58, 79, 114, 105, 103, 105, 110, 97, 108, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 61, 34, 120, 109, 112, 46, 100, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 67, 111, 108, 111, 114, 77, 111, 100, 101, 61, 34, 51, 34, 62, 32, 60, 120, 109, 112, 77, 77, 58, 72, 105, 115, 116, 111, 114, 121, 62, 32, 60, 114, 100, 102, 58, 83, 101, 113, 62, 32, 60, 114, 100, 102, 58, 108, 105, 32, 115, 116, 69, 118, 116, 58, 97, 99, 116, 105, 111, 110, 61, 34, 99, 114, 101, 97, 116, 101, 100, 34, 32, 115, 116, 69, 118, 116, 58, 105, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 115, 116, 69, 118, 116, 58, 119, 104, 101, 110, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 49, 58, 51, 50, 43, 48, 51, 58, 48, 48, 34, 32, 115, 116, 69, 118, 116, 58, 115, 111, 102, 116, 119, 97, 114, 101, 65, 103, 101, 110, 116, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 47, 62, 32, 60, 114, 100, 102, 58, 108, 105, 32, 115, 116, 69, 118, 116, 58, 97, 99, 116, 105, 111, 110, 61, 34, 115, 97, 118, 101, 100, 34, 32, 115, 116, 69, 118, 116, 58, 105, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 49, 101, 101, 101, 51, 99, 100, 102, 45, 102, 55, 102, 49, 45, 52, 49, 99, 54, 45, 57, 53, 49, 54, 45, 49, 100, 52, 98, 51, 100, 99, 57, 99, 53, 49, 48, 34, 32, 115, 116, 69, 118, 116, 58, 119, 104, 101, 110, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 115, 116, 69, 118, 116, 58, 115, 111, 102, 116, 119, 97, 114, 101, 65, 103, 101, 110, 116, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 32, 115, 116, 69, 118, 116, 58, 99, 104, 97, 110, 103, 101, 100, 61, 34, 47, 34, 47, 62, 32, 60, 47, 114, 100, 102, 58, 83, 101, 113, 62, 32, 60, 47, 120, 109, 112, 77, 77, 58, 72, 105, 115, 116, 111, 114, 121, 62, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 32, 60, 47, 114, 100, 102, 58, 82, 68, 70, 62, 32, 60, 47, 120, 58, 120, 109, 112, 109, 101, 116, 97, 62, 32, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 101, 110, 100, 61, 34, 114, 34, 63, 62, 45, 72, 73, 151, 0, 0, 17, 137, 73, 68, 65, 84, 88, 9, 157, 193, 121, 176, 94, 103, 125, 216, 241, 239, 239, 121, 206, 246, 238, 247, 222, 247, 234, 234, 106, 187, 87, 155, 141, 87, 89, 146, 109, 140, 109, 188, 0, 118, 137, 83, 2, 152, 226, 44, 148, 54, 211, 36, 211, 64, 73, 251, 71, 58, 109, 167, 157, 204, 100, 50, 153, 100, 166, 211, 204, 100, 107, 135, 214, 147, 20, 178, 64, 128, 98, 146, 58, 96, 99, 155, 120, 193, 70, 6, 44, 203, 182, 22, 203, 214, 238, 43, 91, 186, 210, 221, 222, 253, 61, 239, 57, 231, 121, 126, 209, 22, 42, 40, 16, 39, 159, 143, 168, 234, 28, 80, 231, 237, 202, 134, 188, 158, 26, 210, 40, 194, 122, 135, 0, 78, 192, 139, 146, 33, 12, 212, 210, 119, 144, 143, 4, 231, 10, 194, 184, 32, 142, 67, 98, 132, 170, 122, 202, 120, 76, 46, 20, 214, 226, 197, 49, 230, 6, 204, 212, 106, 128, 225, 109, 232, 4, 192, 26, 32, 224, 135, 80, 45, 232, 21, 142, 167, 150, 71, 116, 226, 26, 149, 220, 113, 118, 80, 176, 63, 183, 12, 66, 143, 193, 99, 212, 128, 40, 106, 10, 172, 7, 65, 49, 156, 35, 130, 32, 232, 200, 227, 53, 71, 213, 0, 30, 163, 224, 125, 76, 102, 5, 165, 96, 210, 229, 220, 56, 204, 241, 65, 140, 115, 35, 110, 43, 195, 108, 41, 194, 26, 46, 17, 46, 83, 17, 85, 109, 1, 13, 46, 211, 245, 142, 87, 59, 5, 207, 116, 114, 6, 65, 196, 124, 90, 144, 217, 144, 208, 43, 65, 16, 80, 177, 138, 245, 14, 16, 148, 139, 68, 5, 21, 206, 81, 46, 82, 64, 0, 65, 56, 79, 81, 132, 150, 243, 68, 121, 142, 81, 199, 208, 70, 132, 81, 130, 47, 114, 50, 4, 85, 199, 84, 32, 148, 188, 231, 134, 146, 178, 109, 60, 100, 83, 24, 112, 153, 182, 168, 106, 11, 104, 112, 129, 227, 169, 118, 206, 223, 12, 44, 243, 3, 79, 37, 20, 4, 33, 54, 130, 168, 71, 69, 0, 69, 0, 69, 120, 187, 4, 112, 10, 3, 15, 247, 214, 148, 153, 32, 197, 120, 207, 192, 132, 236, 26, 132, 188, 58, 18, 166, 172, 2, 66, 166, 224, 212, 147, 59, 65, 3, 195, 246, 18, 124, 176, 33, 172, 9, 13, 32, 109, 81, 213, 22, 208, 0, 229, 43, 203, 35, 254, 111, 91, 168, 89, 67, 221, 10, 78, 57, 71, 240, 128, 160, 24, 148, 127, 40, 5, 10, 12, 190, 176, 252, 147, 49, 229, 190, 49, 206, 17, 254, 78, 47, 119, 252, 143, 133, 17, 123, 179, 144, 10, 80, 53, 66, 98, 64, 69, 241, 30, 206, 56, 88, 107, 60, 247, 68, 142, 247, 78, 39, 109, 81, 213, 22, 234, 26, 207, 174, 164, 124, 161, 91, 102, 34, 4, 35, 10, 8, 30, 79, 81, 20, 68, 34, 152, 56, 34, 51, 92, 80, 112, 137, 1, 9, 65, 11, 48, 25, 68, 10, 234, 60, 34, 92, 144, 169, 96, 61, 228, 217, 144, 13, 101, 248, 149, 233, 4, 16, 126, 208, 192, 229, 60, 209, 11, 105, 4, 194, 158, 52, 103, 46, 53, 52, 196, 128, 40, 130, 48, 114, 48, 26, 229, 220, 81, 235, 183, 69, 85, 91, 138, 54, 254, 251, 233, 17, 139, 62, 32, 49, 32, 10, 25, 134, 49, 151, 242, 238, 49, 152, 137, 35, 222, 26, 101, 60, 218, 9, 112, 253, 140, 6, 25, 38, 81, 140, 83, 252, 226, 10, 84, 202, 20, 211, 235, 152, 143, 192, 36, 144, 44, 3, 35, 199, 88, 232, 120, 127, 77, 136, 85, 137, 141, 163, 17, 39, 228, 6, 80, 190, 71, 128, 80, 132, 88, 148, 243, 150, 125, 206, 151, 23, 149, 185, 220, 80, 19, 131, 162, 168, 8, 106, 160, 72, 179, 118, 192, 57, 111, 142, 28, 94, 66, 26, 86, 8, 132, 11, 172, 66, 197, 88, 110, 168, 9, 150, 0, 247, 135, 127, 200, 125, 175, 31, 34, 185, 229, 122, 166, 18, 165, 116, 228, 16, 195, 185, 69, 58, 243, 203, 76, 92, 123, 5, 75, 83, 179, 28, 112, 101, 202, 27, 183, 240, 218, 29, 239, 229, 204, 170, 128, 109, 98, 105, 90, 101, 136, 144, 41, 156, 200, 1, 225, 135, 18, 21, 20, 104, 216, 136, 59, 199, 51, 158, 233, 120, 134, 185, 193, 136, 65, 1, 65, 209, 36, 65, 84, 181, 245, 236, 114, 218, 216, 61, 10, 168, 134, 22, 225, 34, 1, 70, 234, 152, 48, 202, 6, 147, 179, 116, 252, 45, 214, 29, 221, 205, 182, 215, 191, 73, 239, 224, 105, 210, 202, 58, 202, 166, 160, 123, 118, 137, 124, 188, 66, 189, 72, 153, 152, 170, 35, 206, 112, 118, 231, 54, 14, 94, 187, 141, 227, 59, 238, 64, 60, 216, 229, 156, 72, 21, 69, 120, 59, 2, 129, 76, 133, 14, 6, 43, 194, 101, 218, 162, 170, 173, 23, 58, 89, 227, 229, 84, 40, 7, 6, 225, 255, 17, 132, 161, 87, 188, 58, 100, 60, 130, 0, 102, 190, 248, 8, 87, 254, 193, 111, 51, 249, 207, 238, 167, 187, 120, 150, 112, 176, 130, 219, 186, 22, 91, 45, 19, 198, 33, 105, 127, 64, 124, 232, 24, 201, 96, 196, 241, 45, 55, 113, 116, 231, 237, 180, 238, 186, 153, 209, 10, 152, 188, 0, 195, 219, 18, 136, 96, 5, 148, 239, 211, 22, 85, 109, 29, 30, 20, 141, 61, 41, 4, 70, 48, 252, 8, 10, 136, 165, 63, 6, 213, 111, 239, 97, 251, 159, 254, 30, 149, 43, 214, 18, 172, 95, 131, 44, 182, 240, 39, 22, 9, 124, 136, 235, 14, 56, 54, 223, 102, 188, 18, 49, 155, 13, 73, 183, 93, 207, 222, 184, 204, 220, 47, 255, 123, 108, 172, 4, 67, 143, 10, 255, 88, 109, 81, 213, 214, 64, 105, 60, 223, 83, 82, 167, 4, 194, 143, 161, 16, 24, 134, 21, 97, 236, 216, 107, 220, 248, 228, 67, 20, 175, 204, 49, 90, 233, 131, 142, 232, 110, 187, 158, 153, 55, 15, 50, 104, 229, 180, 71, 3, 86, 153, 144, 150, 21, 106, 251, 95, 102, 225, 183, 126, 135, 215, 63, 240, 81, 108, 203, 131, 240, 143, 213, 14, 56, 167, 172, 158, 208, 121, 156, 24, 172, 240, 99, 8, 82, 40, 97, 46, 12, 58, 208, 63, 218, 161, 118, 234, 52, 165, 123, 222, 79, 250, 234, 30, 94, 122, 161, 205, 183, 39, 62, 194, 68, 44, 228, 213, 8, 7, 136, 23, 146, 237, 41, 221, 63, 27, 17, 175, 90, 98, 245, 45, 77, 6, 93, 143, 120, 80, 225, 31, 44, 224, 60, 35, 36, 86, 233, 123, 48, 252, 120, 42, 144, 133, 48, 243, 220, 51, 76, 143, 186, 156, 45, 53, 217, 247, 234, 106, 14, 164, 191, 138, 153, 169, 211, 41, 175, 225, 205, 216, 17, 134, 6, 81, 197, 99, 113, 94, 112, 237, 1, 225, 103, 206, 160, 54, 98, 234, 166, 26, 131, 182, 71, 248, 251, 41, 223, 47, 224, 2, 97, 83, 41, 100, 161, 175, 128, 242, 227, 168, 130, 1, 74, 33, 60, 183, 171, 204, 183, 174, 254, 20, 43, 163, 25, 234, 13, 165, 90, 74, 153, 140, 23, 8, 34, 139, 181, 10, 170, 8, 130, 243, 130, 171, 195, 208, 37, 188, 254, 224, 34, 174, 40, 88, 117, 243, 24, 121, 159, 115, 148, 31, 70, 0, 7, 120, 15, 98, 56, 71, 192, 43, 1, 151, 4, 234, 80, 15, 4, 2, 202, 143, 100, 3, 33, 72, 11, 158, 28, 189, 151, 253, 51, 31, 161, 156, 88, 166, 226, 37, 194, 48, 32, 142, 3, 162, 68, 48, 70, 81, 229, 28, 1, 1, 107, 193, 196, 32, 147, 1, 78, 149, 215, 63, 123, 150, 198, 76, 153, 100, 109, 204, 168, 163, 252, 48, 94, 33, 87, 216, 20, 43, 179, 49, 231, 24, 150, 211, 28, 195, 37, 137, 81, 202, 86, 17, 53, 140, 69, 6, 11, 196, 198, 16, 25, 131, 87, 190, 39, 172, 8, 157, 35, 3, 14, 61, 23, 210, 24, 207, 169, 75, 15, 9, 67, 130, 200, 18, 197, 160, 36, 228, 121, 140, 45, 60, 206, 197, 56, 181, 168, 122, 196, 42, 38, 16, 202, 19, 6, 201, 39, 56, 242, 232, 0, 151, 21, 104, 96, 0, 131, 112, 145, 67, 200, 129, 161, 40, 155, 74, 112, 77, 201, 82, 49, 150, 138, 129, 13, 229, 0, 195, 37, 37, 27, 176, 174, 20, 176, 152, 231, 60, 246, 230, 18, 113, 108, 200, 165, 96, 33, 29, 17, 9, 23, 136, 17, 124, 166, 44, 238, 237, 17, 25, 176, 154, 99, 172, 193, 6, 6, 27, 10, 185, 212, 136, 138, 51, 148, 138, 163, 44, 23, 33, 137, 30, 199, 247, 186, 116, 91, 33, 189, 150, 33, 237, 41, 237, 78, 72, 45, 57, 67, 103, 223, 17, 250, 189, 140, 106, 250, 38, 206, 40, 94, 64, 21, 202, 20, 108, 47, 121, 222, 93, 130, 205, 17, 100, 234, 200, 188, 35, 243, 142, 204, 67, 192, 101, 106, 1, 16, 195, 171, 195, 62, 199, 151, 148, 131, 199, 78, 242, 209, 13, 51, 92, 221, 108, 50, 223, 85, 84, 32, 31, 122, 78, 191, 152, 34, 161, 162, 36, 20, 166, 130, 179, 30, 85, 7, 163, 156, 155, 174, 125, 1, 54, 111, 224, 245, 188, 201, 117, 209, 1, 70, 115, 142, 37, 51, 131, 147, 37, 212, 215, 24, 12, 51, 54, 54, 94, 164, 85, 217, 193, 162, 43, 147, 180, 158, 160, 95, 62, 69, 183, 249, 78, 26, 169, 103, 44, 52, 100, 106, 24, 169, 176, 152, 130, 67, 185, 92, 192, 101, 14, 173, 164, 252, 183, 215, 14, 179, 174, 209, 224, 203, 251, 223, 32, 235, 100, 24, 179, 196, 222, 97, 198, 173, 205, 38, 219, 234, 17, 237, 145, 98, 136, 112, 226, 80, 9, 153, 116, 39, 9, 242, 18, 62, 92, 203, 13, 171, 63, 79, 119, 235, 109, 108, 185, 238, 26, 198, 181, 207, 153, 246, 93, 172, 93, 247, 50, 87, 166, 95, 34, 171, 93, 15, 195, 131, 148, 58, 187, 57, 92, 255, 25, 234, 165, 105, 218, 69, 198, 161, 181, 31, 98, 235, 209, 63, 103, 178, 191, 204, 252, 236, 79, 176, 144, 193, 124, 174, 136, 40, 234, 149, 32, 49, 224, 161, 200, 60, 98, 4, 195, 101, 78, 165, 125, 242, 81, 198, 195, 47, 29, 68, 51, 71, 80, 141, 121, 165, 63, 164, 221, 201, 169, 20, 30, 99, 65, 2, 5, 95, 193, 13, 103, 217, 81, 60, 198, 253, 195, 79, 113, 231, 217, 223, 160, 62, 60, 66, 43, 152, 98, 101, 56, 73, 29, 216, 245, 236, 27, 252, 238, 127, 124, 150, 5, 185, 142, 190, 150, 209, 249, 67, 216, 236, 101, 14, 118, 175, 230, 193, 255, 170, 180, 222, 26, 16, 87, 13, 214, 195, 217, 230, 29, 248, 112, 13, 214, 65, 161, 138, 138, 226, 188, 18, 150, 13, 89, 251, 36, 195, 238, 105, 76, 4, 30, 37, 224, 50, 255, 116, 109, 147, 71, 90, 41, 51, 245, 213, 220, 190, 110, 156, 167, 230, 151, 120, 252, 232, 28, 7, 99, 203, 147, 163, 50, 171, 250, 150, 177, 92, 8, 42, 79, 208, 216, 254, 21, 110, 60, 177, 136, 201, 106, 52, 245, 53, 214, 117, 191, 193, 178, 187, 134, 106, 92, 198, 2, 55, 221, 124, 13, 171, 38, 61, 213, 202, 10, 245, 241, 157, 28, 126, 125, 3, 13, 60, 171, 215, 61, 71, 47, 59, 65, 169, 116, 3, 133, 49, 120, 129, 208, 167, 36, 121, 7, 47, 96, 81, 206, 51, 21, 131, 100, 41, 223, 253, 147, 109, 36, 87, 221, 207, 141, 247, 254, 111, 172, 40, 1, 151, 201, 138, 130, 237, 129, 227, 195, 235, 75, 60, 159, 119, 184, 170, 81, 226, 241, 126, 202, 230, 119, 212, 248, 208, 236, 36, 43, 14, 254, 242, 20, 36, 59, 31, 99, 166, 248, 34, 199, 210, 237, 220, 114, 162, 68, 59, 44, 115, 92, 238, 100, 178, 51, 128, 149, 39, 120, 104, 207, 77, 36, 214, 179, 106, 90, 209, 19, 95, 231, 193, 207, 10, 71, 231, 239, 38, 244, 134, 159, 184, 235, 59, 124, 234, 147, 107, 217, 219, 221, 73, 41, 55, 4, 110, 196, 196, 242, 83, 116, 198, 110, 64, 4, 48, 6, 85, 168, 133, 240, 194, 195, 95, 167, 151, 191, 159, 43, 183, 125, 2, 21, 69, 85, 17, 85, 109, 1, 13, 206, 113, 128, 5, 126, 253, 229, 151, 120, 223, 134, 73, 246, 180, 75, 252, 233, 201, 83, 220, 181, 126, 21, 255, 101, 125, 137, 39, 30, 249, 101, 30, 220, 240, 49, 226, 226, 61, 220, 246, 185, 63, 34, 172, 174, 103, 211, 130, 208, 11, 155, 204, 199, 55, 178, 190, 214, 163, 98, 30, 163, 19, 156, 96, 213, 116, 0, 35, 203, 96, 233, 102, 246, 29, 217, 73, 165, 210, 161, 53, 8, 72, 92, 198, 142, 173, 223, 165, 216, 56, 199, 182, 109, 85, 74, 19, 87, 178, 104, 39, 152, 159, 185, 9, 227, 161, 228, 160, 17, 194, 174, 63, 255, 34, 203, 89, 143, 123, 127, 225, 23, 25, 102, 80, 164, 14, 65, 218, 162, 170, 45, 160, 193, 37, 187, 22, 87, 120, 122, 113, 133, 255, 116, 213, 102, 62, 115, 242, 12, 141, 90, 149, 143, 212, 203, 236, 57, 181, 155, 191, 250, 242, 251, 88, 127, 197, 118, 198, 54, 127, 141, 87, 127, 179, 194, 194, 202, 25, 178, 90, 130, 213, 156, 9, 187, 8, 65, 66, 100, 171, 108, 158, 122, 131, 168, 20, 51, 202, 35, 78, 183, 167, 137, 194, 156, 209, 48, 36, 12, 28, 139, 237, 54, 217, 82, 157, 235, 110, 249, 5, 204, 29, 235, 216, 252, 158, 79, 131, 133, 108, 144, 146, 63, 244, 127, 104, 46, 156, 230, 249, 230, 36, 131, 168, 204, 237, 15, 252, 44, 82, 64, 49, 242, 156, 231, 69, 218, 1, 63, 224, 116, 86, 208, 43, 60, 22, 248, 151, 27, 86, 19, 113, 209, 231, 170, 55, 243, 215, 183, 31, 224, 47, 86, 183, 217, 48, 83, 161, 242, 111, 123, 12, 247, 116, 24, 155, 30, 162, 106, 128, 50, 34, 32, 102, 132, 178, 17, 84, 49, 129, 114, 67, 115, 196, 95, 127, 102, 200, 169, 35, 41, 39, 230, 230, 249, 248, 39, 39, 104, 110, 53, 28, 155, 188, 143, 63, 158, 253, 57, 238, 124, 241, 207, 120, 224, 141, 99, 84, 190, 117, 138, 100, 247, 115, 124, 65, 170, 196, 159, 248, 207, 252, 228, 207, 125, 152, 65, 7, 122, 206, 129, 17, 172, 8, 137, 75, 9, 248, 1, 222, 10, 255, 102, 203, 12, 231, 69, 92, 52, 234, 207, 51, 254, 216, 47, 242, 175, 102, 255, 57, 59, 103, 62, 198, 169, 188, 96, 211, 187, 202, 172, 153, 157, 229, 232, 126, 75, 109, 34, 192, 123, 199, 121, 170, 10, 8, 170, 10, 170, 172, 90, 29, 145, 148, 230, 57, 53, 223, 166, 179, 28, 80, 173, 214, 120, 239, 253, 27, 169, 242, 73, 62, 122, 214, 17, 190, 250, 23, 216, 207, 238, 162, 89, 190, 22, 179, 105, 35, 239, 106, 174, 227, 206, 7, 62, 68, 85, 33, 45, 121, 142, 12, 61, 46, 8, 153, 141, 28, 147, 65, 137, 128, 75, 94, 234, 182, 121, 181, 155, 177, 175, 221, 231, 129, 213, 147, 92, 238, 208, 153, 67, 116, 119, 63, 194, 79, 85, 39, 9, 248, 24, 37, 44, 85, 41, 72, 202, 134, 231, 159, 121, 139, 35, 47, 13, 24, 175, 87, 176, 9, 100, 30, 68, 184, 64, 0, 27, 8, 11, 167, 70, 76, 150, 133, 119, 126, 112, 3, 181, 245, 16, 226, 153, 42, 12, 239, 105, 90, 118, 252, 244, 23, 88, 126, 234, 95, 208, 75, 123, 148, 81, 182, 247, 78, 17, 116, 23, 8, 154, 83, 84, 67, 195, 246, 208, 112, 145, 229, 201, 185, 57, 2, 46, 153, 119, 134, 143, 239, 58, 201, 61, 235, 98, 190, 219, 90, 100, 104, 234, 168, 207, 9, 74, 1, 122, 108, 192, 79, 237, 223, 76, 252, 198, 107, 28, 78, 190, 193, 154, 247, 221, 131, 37, 36, 26, 243, 124, 226, 183, 86, 115, 102, 175, 231, 11, 159, 107, 51, 56, 147, 50, 149, 11, 133, 83, 16, 240, 10, 163, 220, 115, 251, 13, 17, 95, 61, 109, 225, 103, 2, 238, 253, 201, 117, 228, 192, 148, 81, 234, 70, 56, 179, 220, 193, 198, 101, 54, 165, 45, 6, 43, 11, 152, 255, 240, 219, 36, 205, 41, 78, 14, 134, 28, 236, 102, 196, 101, 203, 211, 199, 143, 241, 232, 114, 159, 189, 203, 67, 2, 206, 83, 229, 155, 167, 87, 32, 82, 158, 89, 108, 113, 215, 83, 75, 20, 181, 49, 156, 22, 104, 37, 230, 147, 187, 95, 224, 215, 71, 171, 57, 93, 20, 204, 253, 175, 223, 231, 203, 155, 110, 65, 198, 106, 248, 65, 78, 148, 88, 214, 92, 157, 240, 244, 245, 41, 71, 79, 119, 184, 227, 206, 49, 124, 106, 200, 13, 228, 94, 25, 165, 25, 253, 123, 66, 190, 246, 149, 148, 135, 31, 94, 193, 111, 174, 83, 89, 157, 80, 100, 142, 45, 111, 124, 135, 207, 255, 201, 67, 36, 119, 254, 107, 238, 210, 14, 75, 174, 75, 105, 199, 7, 72, 22, 50, 118, 189, 185, 200, 95, 46, 246, 72, 162, 144, 188, 8, 233, 249, 6, 141, 230, 106, 2, 206, 19, 248, 244, 220, 28, 120, 33, 143, 99, 242, 0, 72, 7, 16, 149, 25, 63, 179, 204, 207, 30, 59, 192, 66, 45, 160, 48, 49, 155, 180, 195, 151, 190, 250, 121, 30, 188, 229, 167, 25, 27, 140, 168, 215, 75, 244, 151, 91, 44, 61, 185, 0, 19, 37, 134, 247, 196, 36, 97, 4, 185, 96, 240, 4, 182, 194, 43, 3, 143, 47, 181, 25, 188, 102, 249, 189, 215, 114, 18, 173, 48, 177, 120, 152, 15, 127, 237, 110, 150, 239, 254, 52, 135, 110, 124, 15, 79, 21, 16, 120, 240, 251, 91, 56, 148, 106, 52, 198, 213, 171, 154, 168, 247, 136, 8, 6, 80, 129, 128, 115, 14, 116, 50, 214, 143, 205, 82, 171, 230, 148, 140, 225, 34, 161, 27, 199, 92, 163, 41, 215, 181, 231, 89, 78, 34, 66, 148, 153, 246, 10, 191, 116, 224, 81, 254, 230, 182, 123, 73, 170, 21, 174, 91, 91, 103, 89, 134, 60, 209, 63, 75, 92, 19, 182, 143, 2, 140, 19, 112, 10, 8, 10, 148, 106, 49, 43, 119, 207, 240, 196, 190, 163, 188, 115, 186, 96, 114, 194, 144, 14, 170, 244, 238, 254, 77, 214, 206, 124, 128, 90, 230, 176, 46, 229, 130, 70, 200, 121, 194, 69, 5, 134, 28, 69, 84, 8, 80, 2, 206, 121, 177, 111, 216, 57, 181, 129, 181, 37, 80, 207, 247, 168, 133, 98, 227, 20, 95, 93, 252, 37, 118, 60, 253, 57, 38, 82, 207, 35, 31, 252, 21, 246, 223, 113, 43, 31, 26, 159, 165, 101, 45, 21, 148, 206, 209, 148, 36, 24, 163, 146, 244, 217, 90, 77, 48, 161, 224, 157, 114, 129, 8, 73, 236, 121, 254, 141, 121, 226, 176, 196, 242, 11, 45, 166, 41, 216, 178, 121, 134, 254, 250, 95, 99, 58, 135, 166, 203, 232, 249, 24, 241, 128, 128, 10, 40, 10, 234, 169, 139, 103, 44, 12, 72, 0, 103, 12, 65, 234, 11, 186, 129, 167, 26, 20, 72, 161, 128, 160, 128, 160, 132, 30, 68, 45, 123, 222, 255, 113, 14, 221, 124, 31, 65, 225, 89, 156, 90, 69, 175, 4, 183, 164, 5, 239, 40, 195, 67, 207, 30, 227, 233, 111, 100, 108, 190, 114, 13, 221, 209, 144, 131, 123, 78, 114, 235, 251, 54, 49, 232, 57, 206, 19, 81, 200, 13, 43, 115, 21, 166, 102, 75, 28, 221, 63, 160, 94, 83, 174, 190, 1, 130, 149, 130, 12, 207, 214, 32, 99, 42, 78, 112, 234, 144, 32, 166, 8, 161, 112, 160, 185, 231, 250, 178, 176, 165, 44, 156, 204, 97, 111, 23, 130, 151, 82, 120, 185, 231, 217, 108, 2, 36, 4, 49, 25, 1, 1, 185, 183, 180, 157, 67, 114, 71, 228, 161, 24, 107, 50, 18, 136, 115, 101, 162, 39, 212, 155, 1, 185, 133, 217, 235, 214, 241, 239, 210, 30, 223, 218, 215, 37, 243, 21, 146, 122, 21, 27, 9, 54, 14, 80, 46, 26, 25, 216, 113, 247, 36, 201, 107, 243, 76, 140, 85, 233, 111, 41, 115, 114, 37, 135, 17, 100, 10, 203, 33, 252, 124, 61, 167, 22, 133, 208, 59, 6, 11, 7, 161, 209, 132, 168, 10, 35, 97, 148, 247, 136, 210, 17, 51, 11, 93, 130, 111, 46, 166, 152, 44, 39, 40, 15, 153, 109, 76, 80, 243, 134, 8, 207, 96, 232, 248, 122, 223, 51, 140, 67, 178, 17, 108, 244, 41, 191, 58, 149, 80, 18, 193, 185, 30, 173, 133, 3, 100, 218, 227, 166, 245, 183, 147, 220, 93, 230, 217, 120, 47, 113, 169, 204, 246, 45, 49, 69, 219, 3, 57, 35, 13, 233, 106, 137, 21, 99, 136, 183, 111, 34, 174, 173, 64, 231, 0, 103, 107, 91, 120, 43, 90, 75, 104, 134, 4, 18, 177, 102, 162, 138, 132, 224, 128, 193, 96, 68, 209, 159, 163, 22, 245, 177, 69, 136, 144, 19, 27, 225, 42, 163, 92, 53, 89, 69, 14, 117, 134, 173, 150, 207, 27, 253, 40, 198, 169, 197, 59, 197, 184, 33, 86, 61, 198, 86, 16, 10, 164, 240, 88, 163, 220, 90, 19, 176, 33, 218, 59, 73, 126, 248, 175, 136, 220, 34, 44, 159, 224, 104, 120, 63, 103, 194, 13, 212, 252, 60, 215, 87, 119, 67, 80, 6, 227, 65, 3, 208, 24, 108, 131, 98, 241, 69, 246, 143, 182, 210, 14, 222, 201, 100, 89, 89, 189, 110, 138, 201, 85, 85, 200, 230, 65, 3, 208, 28, 197, 144, 46, 30, 70, 138, 69, 162, 230, 86, 204, 168, 192, 227, 192, 86, 17, 159, 35, 213, 117, 237, 224, 138, 252, 21, 16, 129, 81, 14, 126, 8, 105, 23, 6, 125, 200, 122, 160, 57, 132, 17, 24, 133, 188, 197, 112, 206, 18, 98, 17, 151, 97, 39, 174, 192, 215, 239, 195, 231, 255, 147, 238, 210, 73, 58, 225, 42, 162, 250, 36, 7, 146, 7, 88, 55, 17, 210, 136, 58, 136, 58, 16, 7, 46, 66, 151, 159, 35, 150, 140, 161, 115, 80, 169, 147, 154, 26, 75, 29, 75, 179, 28, 66, 231, 36, 228, 5, 206, 70, 36, 165, 24, 9, 174, 70, 11, 135, 6, 17, 162, 2, 113, 3, 138, 54, 217, 242, 51, 72, 126, 242, 225, 86, 32, 182, 225, 197, 33, 40, 50, 2, 194, 49, 20, 7, 110, 25, 231, 28, 166, 212, 68, 253, 0, 176, 136, 42, 134, 243, 10, 136, 215, 194, 170, 155, 89, 56, 115, 150, 110, 103, 137, 90, 173, 65, 84, 170, 82, 120, 168, 228, 199, 73, 138, 211, 168, 24, 16, 135, 155, 190, 143, 65, 215, 145, 247, 223, 162, 57, 61, 67, 81, 228, 12, 50, 229, 153, 199, 191, 196, 173, 87, 88, 38, 167, 166, 241, 206, 96, 52, 69, 17, 64, 0, 1, 20, 16, 212, 8, 89, 251, 80, 59, 160, 58, 133, 235, 157, 66, 204, 4, 98, 28, 116, 191, 67, 62, 236, 98, 87, 223, 136, 148, 39, 144, 116, 5, 241, 57, 98, 74, 8, 138, 2, 138, 34, 81, 133, 133, 214, 34, 223, 222, 253, 4, 130, 48, 187, 97, 13, 179, 91, 215, 98, 5, 90, 237, 33, 206, 133, 128, 130, 128, 96, 217, 245, 212, 227, 244, 243, 132, 82, 108, 25, 237, 59, 204, 88, 189, 204, 119, 191, 189, 139, 122, 52, 32, 121, 215, 173, 160, 30, 163, 57, 170, 1, 136, 7, 20, 53, 17, 168, 195, 8, 136, 137, 72, 38, 110, 36, 48, 181, 235, 96, 216, 70, 242, 21, 156, 9, 49, 205, 157, 24, 15, 106, 45, 226, 11, 108, 212, 64, 213, 3, 138, 138, 34, 170, 168, 10, 196, 53, 70, 253, 51, 236, 251, 230, 227, 12, 71, 30, 110, 123, 55, 149, 160, 224, 235, 143, 126, 141, 187, 238, 190, 141, 171, 174, 24, 135, 126, 128, 136, 1, 49, 28, 121, 229, 27, 156, 62, 219, 34, 78, 2, 242, 81, 151, 107, 223, 177, 145, 159, 255, 192, 14, 234, 99, 85, 80, 65, 179, 12, 68, 64, 60, 23, 9, 226, 61, 234, 29, 62, 61, 139, 47, 77, 99, 195, 8, 81, 213, 22, 69, 187, 161, 243, 223, 194, 21, 25, 54, 105, 0, 5, 194, 57, 170, 40, 2, 40, 72, 0, 214, 66, 158, 130, 88, 112, 57, 146, 148, 96, 114, 28, 8, 96, 56, 224, 248, 222, 189, 188, 178, 247, 0, 183, 221, 118, 11, 205, 233, 41, 52, 205, 81, 85, 188, 247, 196, 171, 154, 16, 9, 120, 7, 18, 192, 112, 4, 189, 62, 136, 65, 85, 249, 255, 8, 224, 13, 121, 54, 128, 108, 25, 17, 197, 150, 87, 183, 69, 85, 115, 133, 64, 242, 101, 252, 210, 62, 212, 117, 49, 38, 6, 17, 240, 5, 24, 11, 202, 37, 6, 240, 92, 32, 130, 203, 11, 58, 253, 33, 198, 6, 180, 187, 93, 68, 28, 19, 99, 147, 180, 91, 93, 210, 116, 128, 216, 0, 85, 65, 240, 128, 226, 92, 1, 8, 30, 131, 181, 33, 155, 54, 76, 97, 13, 168, 42, 63, 138, 170, 34, 198, 130, 122, 80, 45, 68, 85, 231, 128, 58, 231, 120, 159, 162, 173, 87, 48, 131, 51, 16, 141, 83, 4, 53, 76, 122, 22, 43, 160, 8, 223, 71, 4, 151, 231, 244, 134, 25, 157, 110, 143, 209, 40, 199, 70, 1, 222, 121, 188, 3, 17, 225, 60, 99, 5, 241, 14, 139, 97, 124, 98, 156, 32, 48, 56, 95, 96, 173, 165, 148, 36, 128, 231, 239, 39, 92, 164, 157, 191, 5, 41, 186, 173, 78, 52, 102, 169, 136, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130};
var size = file.Length;
var startRequest = new HttpRequestMessage(HttpMethod.Post, "https://lens.google.com/_/upload/?ep=subb") {
Headers = {
{"X-Client-Side-Image-Upload", "true"},
{"X-Goog-Upload-Command", "start"},
{"X-Goog-Upload-Header-Content-Length", size.ToString()},
{"X-Goog-Upload-Protocol", "resumable"}
}
};
var startResponse = http.Send(startRequest);
var uploadUrl = startResponse.Headers.GetValues("x-goog-upload-url")
.Single();
var resumeRequest = new HttpRequestMessage(HttpMethod.Post, uploadUrl) {
Headers = {
{"X-Client-Side-Image-Upload", "true"},
{"X-Goog-Upload-Command", "upload, finalize"},
{"X-Goog-Upload-Offset", "0"}
},
Content = new ByteArrayContent(file)
};
var resumeResponse = http.Send(resumeRequest);
var resumeContent = resumeResponse.Content.ReadAsStringAsync().Result;
resumeContent = resumeContent.Remove(0, ")]}'\n".Length);
var resumeJson = JsonSerializer.Deserialize<JsonElement>(resumeContent);
var url = resumeJson.GetProperty("url").GetString()!;
url = Regex.Unescape(url);
var result = "https://lens.google.com" + url;
Console.WriteLine(result);
@IvanTsaryk
Copy link

Hello, does this POC work?

@qt-kaneko
Copy link
Author

@IvanTsaryk, not anymore, but, here is a fixed version:

using System;
using System.Net.Http;
using System.Net.Http.Headers;

var http = new HttpClient();

// Here is image, i.e. File.ReadAllBytes("smth.png");
var file = new byte[] {137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 44, 0, 0, 0, 44, 8, 6, 0, 0, 0, 30, 132, 90, 1, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0, 154, 156, 24, 0, 0, 5, 194, 105, 84, 88, 116, 88, 77, 76, 58, 99, 111, 109, 46, 97, 100, 111, 98, 101, 46, 120, 109, 112, 0, 0, 0, 0, 0, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 98, 101, 103, 105, 110, 61, 34, 239, 187, 191, 34, 32, 105, 100, 61, 34, 87, 53, 77, 48, 77, 112, 67, 101, 104, 105, 72, 122, 114, 101, 83, 122, 78, 84, 99, 122, 107, 99, 57, 100, 34, 63, 62, 32, 60, 120, 58, 120, 109, 112, 109, 101, 116, 97, 32, 120, 109, 108, 110, 115, 58, 120, 61, 34, 97, 100, 111, 98, 101, 58, 110, 115, 58, 109, 101, 116, 97, 47, 34, 32, 120, 58, 120, 109, 112, 116, 107, 61, 34, 65, 100, 111, 98, 101, 32, 88, 77, 80, 32, 67, 111, 114, 101, 32, 55, 46, 49, 45, 99, 48, 48, 48, 32, 55, 57, 46, 98, 48, 102, 56, 98, 101, 57, 48, 44, 32, 50, 48, 50, 49, 47, 49, 50, 47, 49, 53, 45, 50, 49, 58, 50, 53, 58, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 34, 62, 32, 60, 114, 100, 102, 58, 82, 68, 70, 32, 120, 109, 108, 110, 115, 58, 114, 100, 102, 61, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 49, 57, 57, 57, 47, 48, 50, 47, 50, 50, 45, 114, 100, 102, 45, 115, 121, 110, 116, 97, 120, 45, 110, 115, 35, 34, 62, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 34, 34, 32, 120, 109, 108, 110, 115, 58, 120, 109, 112, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 34, 32, 120, 109, 108, 110, 115, 58, 100, 99, 61, 34, 104, 116, 116, 112, 58, 47, 47, 112, 117, 114, 108, 46, 111, 114, 103, 47, 100, 99, 47, 101, 108, 101, 109, 101, 110, 116, 115, 47, 49, 46, 49, 47, 34, 32, 120, 109, 108, 110, 115, 58, 120, 109, 112, 77, 77, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 109, 109, 47, 34, 32, 120, 109, 108, 110, 115, 58, 115, 116, 69, 118, 116, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 115, 84, 121, 112, 101, 47, 82, 101, 115, 111, 117, 114, 99, 101, 69, 118, 101, 110, 116, 35, 34, 32, 120, 109, 108, 110, 115, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 61, 34, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 47, 49, 46, 48, 47, 34, 32, 120, 109, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, 111, 111, 108, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 32, 120, 109, 112, 58, 67, 114, 101, 97, 116, 101, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 49, 58, 51, 50, 43, 48, 51, 58, 48, 48, 34, 32, 120, 109, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 120, 109, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 100, 99, 58, 102, 111, 114, 109, 97, 116, 61, 34, 105, 109, 97, 103, 101, 47, 112, 110, 103, 34, 32, 120, 109, 112, 77, 77, 58, 73, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 49, 101, 101, 101, 51, 99, 100, 102, 45, 102, 55, 102, 49, 45, 52, 49, 99, 54, 45, 57, 53, 49, 54, 45, 49, 100, 52, 98, 51, 100, 99, 57, 99, 53, 49, 48, 34, 32, 120, 109, 112, 77, 77, 58, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 61, 34, 120, 109, 112, 46, 100, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 120, 109, 112, 77, 77, 58, 79, 114, 105, 103, 105, 110, 97, 108, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 61, 34, 120, 109, 112, 46, 100, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 67, 111, 108, 111, 114, 77, 111, 100, 101, 61, 34, 51, 34, 62, 32, 60, 120, 109, 112, 77, 77, 58, 72, 105, 115, 116, 111, 114, 121, 62, 32, 60, 114, 100, 102, 58, 83, 101, 113, 62, 32, 60, 114, 100, 102, 58, 108, 105, 32, 115, 116, 69, 118, 116, 58, 97, 99, 116, 105, 111, 110, 61, 34, 99, 114, 101, 97, 116, 101, 100, 34, 32, 115, 116, 69, 118, 116, 58, 105, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 51, 53, 49, 54, 102, 55, 56, 98, 45, 100, 49, 50, 56, 45, 52, 51, 97, 50, 45, 97, 99, 100, 99, 45, 55, 100, 100, 53, 48, 51, 53, 97, 52, 52, 56, 97, 34, 32, 115, 116, 69, 118, 116, 58, 119, 104, 101, 110, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 49, 58, 51, 50, 43, 48, 51, 58, 48, 48, 34, 32, 115, 116, 69, 118, 116, 58, 115, 111, 102, 116, 119, 97, 114, 101, 65, 103, 101, 110, 116, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 47, 62, 32, 60, 114, 100, 102, 58, 108, 105, 32, 115, 116, 69, 118, 116, 58, 97, 99, 116, 105, 111, 110, 61, 34, 115, 97, 118, 101, 100, 34, 32, 115, 116, 69, 118, 116, 58, 105, 110, 115, 116, 97, 110, 99, 101, 73, 68, 61, 34, 120, 109, 112, 46, 105, 105, 100, 58, 49, 101, 101, 101, 51, 99, 100, 102, 45, 102, 55, 102, 49, 45, 52, 49, 99, 54, 45, 57, 53, 49, 54, 45, 49, 100, 52, 98, 51, 100, 99, 57, 99, 53, 49, 48, 34, 32, 115, 116, 69, 118, 116, 58, 119, 104, 101, 110, 61, 34, 50, 48, 50, 51, 45, 48, 55, 45, 49, 51, 84, 48, 49, 58, 48, 52, 58, 49, 52, 43, 48, 51, 58, 48, 48, 34, 32, 115, 116, 69, 118, 116, 58, 115, 111, 102, 116, 119, 97, 114, 101, 65, 103, 101, 110, 116, 61, 34, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 50, 51, 46, 50, 32, 40, 77, 97, 99, 105, 110, 116, 111, 115, 104, 41, 34, 32, 115, 116, 69, 118, 116, 58, 99, 104, 97, 110, 103, 101, 100, 61, 34, 47, 34, 47, 62, 32, 60, 47, 114, 100, 102, 58, 83, 101, 113, 62, 32, 60, 47, 120, 109, 112, 77, 77, 58, 72, 105, 115, 116, 111, 114, 121, 62, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 32, 60, 47, 114, 100, 102, 58, 82, 68, 70, 62, 32, 60, 47, 120, 58, 120, 109, 112, 109, 101, 116, 97, 62, 32, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 101, 110, 100, 61, 34, 114, 34, 63, 62, 45, 72, 73, 151, 0, 0, 17, 137, 73, 68, 65, 84, 88, 9, 157, 193, 121, 176, 94, 103, 125, 216, 241, 239, 239, 121, 206, 246, 238, 247, 222, 247, 234, 234, 106, 187, 87, 155, 141, 87, 89, 146, 109, 140, 109, 188, 0, 118, 137, 83, 2, 152, 226, 44, 148, 54, 211, 36, 211, 64, 73, 251, 71, 58, 109, 167, 157, 204, 100, 50, 153, 100, 166, 211, 204, 100, 107, 135, 214, 147, 20, 178, 64, 128, 98, 146, 58, 96, 99, 155, 120, 193, 70, 6, 44, 203, 182, 22, 203, 214, 238, 43, 91, 186, 210, 221, 222, 253, 61, 239, 57, 231, 121, 126, 209, 22, 42, 40, 16, 39, 159, 143, 168, 234, 28, 80, 231, 237, 202, 134, 188, 158, 26, 210, 40, 194, 122, 135, 0, 78, 192, 139, 146, 33, 12, 212, 210, 119, 144, 143, 4, 231, 10, 194, 184, 32, 142, 67, 98, 132, 170, 122, 202, 120, 76, 46, 20, 214, 226, 197, 49, 230, 6, 204, 212, 106, 128, 225, 109, 232, 4, 192, 26, 32, 224, 135, 80, 45, 232, 21, 142, 167, 150, 71, 116, 226, 26, 149, 220, 113, 118, 80, 176, 63, 183, 12, 66, 143, 193, 99, 212, 128, 40, 106, 10, 172, 7, 65, 49, 156, 35, 130, 32, 232, 200, 227, 53, 71, 213, 0, 30, 163, 224, 125, 76, 102, 5, 165, 96, 210, 229, 220, 56, 204, 241, 65, 140, 115, 35, 110, 43, 195, 108, 41, 194, 26, 46, 17, 46, 83, 17, 85, 109, 1, 13, 46, 211, 245, 142, 87, 59, 5, 207, 116, 114, 6, 65, 196, 124, 90, 144, 217, 144, 208, 43, 65, 16, 80, 177, 138, 245, 14, 16, 148, 139, 68, 5, 21, 206, 81, 46, 82, 64, 0, 65, 56, 79, 81, 132, 150, 243, 68, 121, 142, 81, 199, 208, 70, 132, 81, 130, 47, 114, 50, 4, 85, 199, 84, 32, 148, 188, 231, 134, 146, 178, 109, 60, 100, 83, 24, 112, 153, 182, 168, 106, 11, 104, 112, 129, 227, 169, 118, 206, 223, 12, 44, 243, 3, 79, 37, 20, 4, 33, 54, 130, 168, 71, 69, 0, 69, 0, 69, 120, 187, 4, 112, 10, 3, 15, 247, 214, 148, 153, 32, 197, 120, 207, 192, 132, 236, 26, 132, 188, 58, 18, 166, 172, 2, 66, 166, 224, 212, 147, 59, 65, 3, 195, 246, 18, 124, 176, 33, 172, 9, 13, 32, 109, 81, 213, 22, 208, 0, 229, 43, 203, 35, 254, 111, 91, 168, 89, 67, 221, 10, 78, 57, 71, 240, 128, 160, 24, 148, 127, 40, 5, 10, 12, 190, 176, 252, 147, 49, 229, 190, 49, 206, 17, 254, 78, 47, 119, 252, 143, 133, 17, 123, 179, 144, 10, 80, 53, 66, 98, 64, 69, 241, 30, 206, 56, 88, 107, 60, 247, 68, 142, 247, 78, 39, 109, 81, 213, 22, 234, 26, 207, 174, 164, 124, 161, 91, 102, 34, 4, 35, 10, 8, 30, 79, 81, 20, 68, 34, 152, 56, 34, 51, 92, 80, 112, 137, 1, 9, 65, 11, 48, 25, 68, 10, 234, 60, 34, 92, 144, 169, 96, 61, 228, 217, 144, 13, 101, 248, 149, 233, 4, 16, 126, 208, 192, 229, 60, 209, 11, 105, 4, 194, 158, 52, 103, 46, 53, 52, 196, 128, 40, 130, 48, 114, 48, 26, 229, 220, 81, 235, 183, 69, 85, 91, 138, 54, 254, 251, 233, 17, 139, 62, 32, 49, 32, 10, 25, 134, 49, 151, 242, 238, 49, 152, 137, 35, 222, 26, 101, 60, 218, 9, 112, 253, 140, 6, 25, 38, 81, 140, 83, 252, 226, 10, 84, 202, 20, 211, 235, 152, 143, 192, 36, 144, 44, 3, 35, 199, 88, 232, 120, 127, 77, 136, 85, 137, 141, 163, 17, 39, 228, 6, 80, 190, 71, 128, 80, 132, 88, 148, 243, 150, 125, 206, 151, 23, 149, 185, 220, 80, 19, 131, 162, 168, 8, 106, 160, 72, 179, 118, 192, 57, 111, 142, 28, 94, 66, 26, 86, 8, 132, 11, 172, 66, 197, 88, 110, 168, 9, 150, 0, 247, 135, 127, 200, 125, 175, 31, 34, 185, 229, 122, 166, 18, 165, 116, 228, 16, 195, 185, 69, 58, 243, 203, 76, 92, 123, 5, 75, 83, 179, 28, 112, 101, 202, 27, 183, 240, 218, 29, 239, 229, 204, 170, 128, 109, 98, 105, 90, 101, 136, 144, 41, 156, 200, 1, 225, 135, 18, 21, 20, 104, 216, 136, 59, 199, 51, 158, 233, 120, 134, 185, 193, 136, 65, 1, 65, 209, 36, 65, 84, 181, 245, 236, 114, 218, 216, 61, 10, 168, 134, 22, 225, 34, 1, 70, 234, 152, 48, 202, 6, 147, 179, 116, 252, 45, 214, 29, 221, 205, 182, 215, 191, 73, 239, 224, 105, 210, 202, 58, 202, 166, 160, 123, 118, 137, 124, 188, 66, 189, 72, 153, 152, 170, 35, 206, 112, 118, 231, 54, 14, 94, 187, 141, 227, 59, 238, 64, 60, 216, 229, 156, 72, 21, 69, 120, 59, 2, 129, 76, 133, 14, 6, 43, 194, 101, 218, 162, 170, 173, 23, 58, 89, 227, 229, 84, 40, 7, 6, 225, 255, 17, 132, 161, 87, 188, 58, 100, 60, 130, 0, 102, 190, 248, 8, 87, 254, 193, 111, 51, 249, 207, 238, 167, 187, 120, 150, 112, 176, 130, 219, 186, 22, 91, 45, 19, 198, 33, 105, 127, 64, 124, 232, 24, 201, 96, 196, 241, 45, 55, 113, 116, 231, 237, 180, 238, 186, 153, 209, 10, 152, 188, 0, 195, 219, 18, 136, 96, 5, 148, 239, 211, 22, 85, 109, 29, 30, 20, 141, 61, 41, 4, 70, 48, 252, 8, 10, 136, 165, 63, 6, 213, 111, 239, 97, 251, 159, 254, 30, 149, 43, 214, 18, 172, 95, 131, 44, 182, 240, 39, 22, 9, 124, 136, 235, 14, 56, 54, 223, 102, 188, 18, 49, 155, 13, 73, 183, 93, 207, 222, 184, 204, 220, 47, 255, 123, 108, 172, 4, 67, 143, 10, 255, 88, 109, 81, 213, 214, 64, 105, 60, 223, 83, 82, 167, 4, 194, 143, 161, 16, 24, 134, 21, 97, 236, 216, 107, 220, 248, 228, 67, 20, 175, 204, 49, 90, 233, 131, 142, 232, 110, 187, 158, 153, 55, 15, 50, 104, 229, 180, 71, 3, 86, 153, 144, 150, 21, 106, 251, 95, 102, 225, 183, 126, 135, 215, 63, 240, 81, 108, 203, 131, 240, 143, 213, 14, 56, 167, 172, 158, 208, 121, 156, 24, 172, 240, 99, 8, 82, 40, 97, 46, 12, 58, 208, 63, 218, 161, 118, 234, 52, 165, 123, 222, 79, 250, 234, 30, 94, 122, 161, 205, 183, 39, 62, 194, 68, 44, 228, 213, 8, 7, 136, 23, 146, 237, 41, 221, 63, 27, 17, 175, 90, 98, 245, 45, 77, 6, 93, 143, 120, 80, 225, 31, 44, 224, 60, 35, 36, 86, 233, 123, 48, 252, 120, 42, 144, 133, 48, 243, 220, 51, 76, 143, 186, 156, 45, 53, 217, 247, 234, 106, 14, 164, 191, 138, 153, 169, 211, 41, 175, 225, 205, 216, 17, 134, 6, 81, 197, 99, 113, 94, 112, 237, 1, 225, 103, 206, 160, 54, 98, 234, 166, 26, 131, 182, 71, 248, 251, 41, 223, 47, 224, 2, 97, 83, 41, 100, 161, 175, 128, 242, 227, 168, 130, 1, 74, 33, 60, 183, 171, 204, 183, 174, 254, 20, 43, 163, 25, 234, 13, 165, 90, 74, 153, 140, 23, 8, 34, 139, 181, 10, 170, 8, 130, 243, 130, 171, 195, 208, 37, 188, 254, 224, 34, 174, 40, 88, 117, 243, 24, 121, 159, 115, 148, 31, 70, 0, 7, 120, 15, 98, 56, 71, 192, 43, 1, 151, 4, 234, 80, 15, 4, 2, 202, 143, 100, 3, 33, 72, 11, 158, 28, 189, 151, 253, 51, 31, 161, 156, 88, 166, 226, 37, 194, 48, 32, 142, 3, 162, 68, 48, 70, 81, 229, 28, 1, 1, 107, 193, 196, 32, 147, 1, 78, 149, 215, 63, 123, 150, 198, 76, 153, 100, 109, 204, 168, 163, 252, 48, 94, 33, 87, 216, 20, 43, 179, 49, 231, 24, 150, 211, 28, 195, 37, 137, 81, 202, 86, 17, 53, 140, 69, 6, 11, 196, 198, 16, 25, 131, 87, 190, 39, 172, 8, 157, 35, 3, 14, 61, 23, 210, 24, 207, 169, 75, 15, 9, 67, 130, 200, 18, 197, 160, 36, 228, 121, 140, 45, 60, 206, 197, 56, 181, 168, 122, 196, 42, 38, 16, 202, 19, 6, 201, 39, 56, 242, 232, 0, 151, 21, 104, 96, 0, 131, 112, 145, 67, 200, 129, 161, 40, 155, 74, 112, 77, 201, 82, 49, 150, 138, 129, 13, 229, 0, 195, 37, 37, 27, 176, 174, 20, 176, 152, 231, 60, 246, 230, 18, 113, 108, 200, 165, 96, 33, 29, 17, 9, 23, 136, 17, 124, 166, 44, 238, 237, 17, 25, 176, 154, 99, 172, 193, 6, 6, 27, 10, 185, 212, 136, 138, 51, 148, 138, 163, 44, 23, 33, 137, 30, 199, 247, 186, 116, 91, 33, 189, 150, 33, 237, 41, 237, 78, 72, 45, 57, 67, 103, 223, 17, 250, 189, 140, 106, 250, 38, 206, 40, 94, 64, 21, 202, 20, 108, 47, 121, 222, 93, 130, 205, 17, 100, 234, 200, 188, 35, 243, 142, 204, 67, 192, 101, 106, 1, 16, 195, 171, 195, 62, 199, 151, 148, 131, 199, 78, 242, 209, 13, 51, 92, 221, 108, 50, 223, 85, 84, 32, 31, 122, 78, 191, 152, 34, 161, 162, 36, 20, 166, 130, 179, 30, 85, 7, 163, 156, 155, 174, 125, 1, 54, 111, 224, 245, 188, 201, 117, 209, 1, 70, 115, 142, 37, 51, 131, 147, 37, 212, 215, 24, 12, 51, 54, 54, 94, 164, 85, 217, 193, 162, 43, 147, 180, 158, 160, 95, 62, 69, 183, 249, 78, 26, 169, 103, 44, 52, 100, 106, 24, 169, 176, 152, 130, 67, 185, 92, 192, 101, 14, 173, 164, 252, 183, 215, 14, 179, 174, 209, 224, 203, 251, 223, 32, 235, 100, 24, 179, 196, 222, 97, 198, 173, 205, 38, 219, 234, 17, 237, 145, 98, 136, 112, 226, 80, 9, 153, 116, 39, 9, 242, 18, 62, 92, 203, 13, 171, 63, 79, 119, 235, 109, 108, 185, 238, 26, 198, 181, 207, 153, 246, 93, 172, 93, 247, 50, 87, 166, 95, 34, 171, 93, 15, 195, 131, 148, 58, 187, 57, 92, 255, 25, 234, 165, 105, 218, 69, 198, 161, 181, 31, 98, 235, 209, 63, 103, 178, 191, 204, 252, 236, 79, 176, 144, 193, 124, 174, 136, 40, 234, 149, 32, 49, 224, 161, 200, 60, 98, 4, 195, 101, 78, 165, 125, 242, 81, 198, 195, 47, 29, 68, 51, 71, 80, 141, 121, 165, 63, 164, 221, 201, 169, 20, 30, 99, 65, 2, 5, 95, 193, 13, 103, 217, 81, 60, 198, 253, 195, 79, 113, 231, 217, 223, 160, 62, 60, 66, 43, 152, 98, 101, 56, 73, 29, 216, 245, 236, 27, 252, 238, 127, 124, 150, 5, 185, 142, 190, 150, 209, 249, 67, 216, 236, 101, 14, 118, 175, 230, 193, 255, 170, 180, 222, 26, 16, 87, 13, 214, 195, 217, 230, 29, 248, 112, 13, 214, 65, 161, 138, 138, 226, 188, 18, 150, 13, 89, 251, 36, 195, 238, 105, 76, 4, 30, 37, 224, 50, 255, 116, 109, 147, 71, 90, 41, 51, 245, 213, 220, 190, 110, 156, 167, 230, 151, 120, 252, 232, 28, 7, 99, 203, 147, 163, 50, 171, 250, 150, 177, 92, 8, 42, 79, 208, 216, 254, 21, 110, 60, 177, 136, 201, 106, 52, 245, 53, 214, 117, 191, 193, 178, 187, 134, 106, 92, 198, 2, 55, 221, 124, 13, 171, 38, 61, 213, 202, 10, 245, 241, 157, 28, 126, 125, 3, 13, 60, 171, 215, 61, 71, 47, 59, 65, 169, 116, 3, 133, 49, 120, 129, 208, 167, 36, 121, 7, 47, 96, 81, 206, 51, 21, 131, 100, 41, 223, 253, 147, 109, 36, 87, 221, 207, 141, 247, 254, 111, 172, 40, 1, 151, 201, 138, 130, 237, 129, 227, 195, 235, 75, 60, 159, 119, 184, 170, 81, 226, 241, 126, 202, 230, 119, 212, 248, 208, 236, 36, 43, 14, 254, 242, 20, 36, 59, 31, 99, 166, 248, 34, 199, 210, 237, 220, 114, 162, 68, 59, 44, 115, 92, 238, 100, 178, 51, 128, 149, 39, 120, 104, 207, 77, 36, 214, 179, 106, 90, 209, 19, 95, 231, 193, 207, 10, 71, 231, 239, 38, 244, 134, 159, 184, 235, 59, 124, 234, 147, 107, 217, 219, 221, 73, 41, 55, 4, 110, 196, 196, 242, 83, 116, 198, 110, 64, 4, 48, 6, 85, 168, 133, 240, 194, 195, 95, 167, 151, 191, 159, 43, 183, 125, 2, 21, 69, 85, 17, 85, 109, 1, 13, 206, 113, 128, 5, 126, 253, 229, 151, 120, 223, 134, 73, 246, 180, 75, 252, 233, 201, 83, 220, 181, 126, 21, 255, 101, 125, 137, 39, 30, 249, 101, 30, 220, 240, 49, 226, 226, 61, 220, 246, 185, 63, 34, 172, 174, 103, 211, 130, 208, 11, 155, 204, 199, 55, 178, 190, 214, 163, 98, 30, 163, 19, 156, 96, 213, 116, 0, 35, 203, 96, 233, 102, 246, 29, 217, 73, 165, 210, 161, 53, 8, 72, 92, 198, 142, 173, 223, 165, 216, 56, 199, 182, 109, 85, 74, 19, 87, 178, 104, 39, 152, 159, 185, 9, 227, 161, 228, 160, 17, 194, 174, 63, 255, 34, 203, 89, 143, 123, 127, 225, 23, 25, 102, 80, 164, 14, 65, 218, 162, 170, 45, 160, 193, 37, 187, 22, 87, 120, 122, 113, 133, 255, 116, 213, 102, 62, 115, 242, 12, 141, 90, 149, 143, 212, 203, 236, 57, 181, 155, 191, 250, 242, 251, 88, 127, 197, 118, 198, 54, 127, 141, 87, 127, 179, 194, 194, 202, 25, 178, 90, 130, 213, 156, 9, 187, 8, 65, 66, 100, 171, 108, 158, 122, 131, 168, 20, 51, 202, 35, 78, 183, 167, 137, 194, 156, 209, 48, 36, 12, 28, 139, 237, 54, 217, 82, 157, 235, 110, 249, 5, 204, 29, 235, 216, 252, 158, 79, 131, 133, 108, 144, 146, 63, 244, 127, 104, 46, 156, 230, 249, 230, 36, 131, 168, 204, 237, 15, 252, 44, 82, 64, 49, 242, 156, 231, 69, 218, 1, 63, 224, 116, 86, 208, 43, 60, 22, 248, 151, 27, 86, 19, 113, 209, 231, 170, 55, 243, 215, 183, 31, 224, 47, 86, 183, 217, 48, 83, 161, 242, 111, 123, 12, 247, 116, 24, 155, 30, 162, 106, 128, 50, 34, 32, 102, 132, 178, 17, 84, 49, 129, 114, 67, 115, 196, 95, 127, 102, 200, 169, 35, 41, 39, 230, 230, 249, 248, 39, 39, 104, 110, 53, 28, 155, 188, 143, 63, 158, 253, 57, 238, 124, 241, 207, 120, 224, 141, 99, 84, 190, 117, 138, 100, 247, 115, 124, 65, 170, 196, 159, 248, 207, 252, 228, 207, 125, 152, 65, 7, 122, 206, 129, 17, 172, 8, 137, 75, 9, 248, 1, 222, 10, 255, 102, 203, 12, 231, 69, 92, 52, 234, 207, 51, 254, 216, 47, 242, 175, 102, 255, 57, 59, 103, 62, 198, 169, 188, 96, 211, 187, 202, 172, 153, 157, 229, 232, 126, 75, 109, 34, 192, 123, 199, 121, 170, 10, 8, 170, 10, 170, 172, 90, 29, 145, 148, 230, 57, 53, 223, 166, 179, 28, 80, 173, 214, 120, 239, 253, 27, 169, 242, 73, 62, 122, 214, 17, 190, 250, 23, 216, 207, 238, 162, 89, 190, 22, 179, 105, 35, 239, 106, 174, 227, 206, 7, 62, 68, 85, 33, 45, 121, 142, 12, 61, 46, 8, 153, 141, 28, 147, 65, 137, 128, 75, 94, 234, 182, 121, 181, 155, 177, 175, 221, 231, 129, 213, 147, 92, 238, 208, 153, 67, 116, 119, 63, 194, 79, 85, 39, 9, 248, 24, 37, 44, 85, 41, 72, 202, 134, 231, 159, 121, 139, 35, 47, 13, 24, 175, 87, 176, 9, 100, 30, 68, 184, 64, 0, 27, 8, 11, 167, 70, 76, 150, 133, 119, 126, 112, 3, 181, 245, 16, 226, 153, 42, 12, 239, 105, 90, 118, 252, 244, 23, 88, 126, 234, 95, 208, 75, 123, 148, 81, 182, 247, 78, 17, 116, 23, 8, 154, 83, 84, 67, 195, 246, 208, 112, 145, 229, 201, 185, 57, 2, 46, 153, 119, 134, 143, 239, 58, 201, 61, 235, 98, 190, 219, 90, 100, 104, 234, 168, 207, 9, 74, 1, 122, 108, 192, 79, 237, 223, 76, 252, 198, 107, 28, 78, 190, 193, 154, 247, 221, 131, 37, 36, 26, 243, 124, 226, 183, 86, 115, 102, 175, 231, 11, 159, 107, 51, 56, 147, 50, 149, 11, 133, 83, 16, 240, 10, 163, 220, 115, 251, 13, 17, 95, 61, 109, 225, 103, 2, 238, 253, 201, 117, 228, 192, 148, 81, 234, 70, 56, 179, 220, 193, 198, 101, 54, 165, 45, 6, 43, 11, 152, 255, 240, 219, 36, 205, 41, 78, 14, 134, 28, 236, 102, 196, 101, 203, 211, 199, 143, 241, 232, 114, 159, 189, 203, 67, 2, 206, 83, 229, 155, 167, 87, 32, 82, 158, 89, 108, 113, 215, 83, 75, 20, 181, 49, 156, 22, 104, 37, 230, 147, 187, 95, 224, 215, 71, 171, 57, 93, 20, 204, 253, 175, 223, 231, 203, 155, 110, 65, 198, 106, 248, 65, 78, 148, 88, 214, 92, 157, 240, 244, 245, 41, 71, 79, 119, 184, 227, 206, 49, 124, 106, 200, 13, 228, 94, 25, 165, 25, 253, 123, 66, 190, 246, 149, 148, 135, 31, 94, 193, 111, 174, 83, 89, 157, 80, 100, 142, 45, 111, 124, 135, 207, 255, 201, 67, 36, 119, 254, 107, 238, 210, 14, 75, 174, 75, 105, 199, 7, 72, 22, 50, 118, 189, 185, 200, 95, 46, 246, 72, 162, 144, 188, 8, 233, 249, 6, 141, 230, 106, 2, 206, 19, 248, 244, 220, 28, 120, 33, 143, 99, 242, 0, 72, 7, 16, 149, 25, 63, 179, 204, 207, 30, 59, 192, 66, 45, 160, 48, 49, 155, 180, 195, 151, 190, 250, 121, 30, 188, 229, 167, 25, 27, 140, 168, 215, 75, 244, 151, 91, 44, 61, 185, 0, 19, 37, 134, 247, 196, 36, 97, 4, 185, 96, 240, 4, 182, 194, 43, 3, 143, 47, 181, 25, 188, 102, 249, 189, 215, 114, 18, 173, 48, 177, 120, 152, 15, 127, 237, 110, 150, 239, 254, 52, 135, 110, 124, 15, 79, 21, 16, 120, 240, 251, 91, 56, 148, 106, 52, 198, 213, 171, 154, 168, 247, 136, 8, 6, 80, 129, 128, 115, 14, 116, 50, 214, 143, 205, 82, 171, 230, 148, 140, 225, 34, 161, 27, 199, 92, 163, 41, 215, 181, 231, 89, 78, 34, 66, 148, 153, 246, 10, 191, 116, 224, 81, 254, 230, 182, 123, 73, 170, 21, 174, 91, 91, 103, 89, 134, 60, 209, 63, 75, 92, 19, 182, 143, 2, 140, 19, 112, 10, 8, 10, 148, 106, 49, 43, 119, 207, 240, 196, 190, 163, 188, 115, 186, 96, 114, 194, 144, 14, 170, 244, 238, 254, 77, 214, 206, 124, 128, 90, 230, 176, 46, 229, 130, 70, 200, 121, 194, 69, 5, 134, 28, 69, 84, 8, 80, 2, 206, 121, 177, 111, 216, 57, 181, 129, 181, 37, 80, 207, 247, 168, 133, 98, 227, 20, 95, 93, 252, 37, 118, 60, 253, 57, 38, 82, 207, 35, 31, 252, 21, 246, 223, 113, 43, 31, 26, 159, 165, 101, 45, 21, 148, 206, 209, 148, 36, 24, 163, 146, 244, 217, 90, 77, 48, 161, 224, 157, 114, 129, 8, 73, 236, 121, 254, 141, 121, 226, 176, 196, 242, 11, 45, 166, 41, 216, 178, 121, 134, 254, 250, 95, 99, 58, 135, 166, 203, 232, 249, 24, 241, 128, 128, 10, 40, 10, 234, 169, 139, 103, 44, 12, 72, 0, 103, 12, 65, 234, 11, 186, 129, 167, 26, 20, 72, 161, 128, 160, 128, 160, 132, 30, 68, 45, 123, 222, 255, 113, 14, 221, 124, 31, 65, 225, 89, 156, 90, 69, 175, 4, 183, 164, 5, 239, 40, 195, 67, 207, 30, 227, 233, 111, 100, 108, 190, 114, 13, 221, 209, 144, 131, 123, 78, 114, 235, 251, 54, 49, 232, 57, 206, 19, 81, 200, 13, 43, 115, 21, 166, 102, 75, 28, 221, 63, 160, 94, 83, 174, 190, 1, 130, 149, 130, 12, 207, 214, 32, 99, 42, 78, 112, 234, 144, 32, 166, 8, 161, 112, 160, 185, 231, 250, 178, 176, 165, 44, 156, 204, 97, 111, 23, 130, 151, 82, 120, 185, 231, 217, 108, 2, 36, 4, 49, 25, 1, 1, 185, 183, 180, 157, 67, 114, 71, 228, 161, 24, 107, 50, 18, 136, 115, 101, 162, 39, 212, 155, 1, 185, 133, 217, 235, 214, 241, 239, 210, 30, 223, 218, 215, 37, 243, 21, 146, 122, 21, 27, 9, 54, 14, 80, 46, 26, 25, 216, 113, 247, 36, 201, 107, 243, 76, 140, 85, 233, 111, 41, 115, 114, 37, 135, 17, 100, 10, 203, 33, 252, 124, 61, 167, 22, 133, 208, 59, 6, 11, 7, 161, 209, 132, 168, 10, 35, 97, 148, 247, 136, 210, 17, 51, 11, 93, 130, 111, 46, 166, 152, 44, 39, 40, 15, 153, 109, 76, 80, 243, 134, 8, 207, 96, 232, 248, 122, 223, 51, 140, 67, 178, 17, 108, 244, 41, 191, 58, 149, 80, 18, 193, 185, 30, 173, 133, 3, 100, 218, 227, 166, 245, 183, 147, 220, 93, 230, 217, 120, 47, 113, 169, 204, 246, 45, 49, 69, 219, 3, 57, 35, 13, 233, 106, 137, 21, 99, 136, 183, 111, 34, 174, 173, 64, 231, 0, 103, 107, 91, 120, 43, 90, 75, 104, 134, 4, 18, 177, 102, 162, 138, 132, 224, 128, 193, 96, 68, 209, 159, 163, 22, 245, 177, 69, 136, 144, 19, 27, 225, 42, 163, 92, 53, 89, 69, 14, 117, 134, 173, 150, 207, 27, 253, 40, 198, 169, 197, 59, 197, 184, 33, 86, 61, 198, 86, 16, 10, 164, 240, 88, 163, 220, 90, 19, 176, 33, 218, 59, 73, 126, 248, 175, 136, 220, 34, 44, 159, 224, 104, 120, 63, 103, 194, 13, 212, 252, 60, 215, 87, 119, 67, 80, 6, 227, 65, 3, 208, 24, 108, 131, 98, 241, 69, 246, 143, 182, 210, 14, 222, 201, 100, 89, 89, 189, 110, 138, 201, 85, 85, 200, 230, 65, 3, 208, 28, 197, 144, 46, 30, 70, 138, 69, 162, 230, 86, 204, 168, 192, 227, 192, 86, 17, 159, 35, 213, 117, 237, 224, 138, 252, 21, 16, 129, 81, 14, 126, 8, 105, 23, 6, 125, 200, 122, 160, 57, 132, 17, 24, 133, 188, 197, 112, 206, 18, 98, 17, 151, 97, 39, 174, 192, 215, 239, 195, 231, 255, 147, 238, 210, 73, 58, 225, 42, 162, 250, 36, 7, 146, 7, 88, 55, 17, 210, 136, 58, 136, 58, 16, 7, 46, 66, 151, 159, 35, 150, 140, 161, 115, 80, 169, 147, 154, 26, 75, 29, 75, 179, 28, 66, 231, 36, 228, 5, 206, 70, 36, 165, 24, 9, 174, 70, 11, 135, 6, 17, 162, 2, 113, 3, 138, 54, 217, 242, 51, 72, 126, 242, 225, 86, 32, 182, 225, 197, 33, 40, 50, 2, 194, 49, 20, 7, 110, 25, 231, 28, 166, 212, 68, 253, 0, 176, 136, 42, 134, 243, 10, 136, 215, 194, 170, 155, 89, 56, 115, 150, 110, 103, 137, 90, 173, 65, 84, 170, 82, 120, 168, 228, 199, 73, 138, 211, 168, 24, 16, 135, 155, 190, 143, 65, 215, 145, 247, 223, 162, 57, 61, 67, 81, 228, 12, 50, 229, 153, 199, 191, 196, 173, 87, 88, 38, 167, 166, 241, 206, 96, 52, 69, 17, 64, 0, 1, 20, 16, 212, 8, 89, 251, 80, 59, 160, 58, 133, 235, 157, 66, 204, 4, 98, 28, 116, 191, 67, 62, 236, 98, 87, 223, 136, 148, 39, 144, 116, 5, 241, 57, 98, 74, 8, 138, 2, 138, 34, 81, 133, 133, 214, 34, 223, 222, 253, 4, 130, 48, 187, 97, 13, 179, 91, 215, 98, 5, 90, 237, 33, 206, 133, 128, 130, 128, 96, 217, 245, 212, 227, 244, 243, 132, 82, 108, 25, 237, 59, 204, 88, 189, 204, 119, 191, 189, 139, 122, 52, 32, 121, 215, 173, 160, 30, 163, 57, 170, 1, 136, 7, 20, 53, 17, 168, 195, 8, 136, 137, 72, 38, 110, 36, 48, 181, 235, 96, 216, 70, 242, 21, 156, 9, 49, 205, 157, 24, 15, 106, 45, 226, 11, 108, 212, 64, 213, 3, 138, 138, 34, 170, 168, 10, 196, 53, 70, 253, 51, 236, 251, 230, 227, 12, 71, 30, 110, 123, 55, 149, 160, 224, 235, 143, 126, 141, 187, 238, 190, 141, 171, 174, 24, 135, 126, 128, 136, 1, 49, 28, 121, 229, 27, 156, 62, 219, 34, 78, 2, 242, 81, 151, 107, 223, 177, 145, 159, 255, 192, 14, 234, 99, 85, 80, 65, 179, 12, 68, 64, 60, 23, 9, 226, 61, 234, 29, 62, 61, 139, 47, 77, 99, 195, 8, 81, 213, 22, 69, 187, 161, 243, 223, 194, 21, 25, 54, 105, 0, 5, 194, 57, 170, 40, 2, 40, 72, 0, 214, 66, 158, 130, 88, 112, 57, 146, 148, 96, 114, 28, 8, 96, 56, 224, 248, 222, 189, 188, 178, 247, 0, 183, 221, 118, 11, 205, 233, 41, 52, 205, 81, 85, 188, 247, 196, 171, 154, 16, 9, 120, 7, 18, 192, 112, 4, 189, 62, 136, 65, 85, 249, 255, 8, 224, 13, 121, 54, 128, 108, 25, 17, 197, 150, 87, 183, 69, 85, 115, 133, 64, 242, 101, 252, 210, 62, 212, 117, 49, 38, 6, 17, 240, 5, 24, 11, 202, 37, 6, 240, 92, 32, 130, 203, 11, 58, 253, 33, 198, 6, 180, 187, 93, 68, 28, 19, 99, 147, 180, 91, 93, 210, 116, 128, 216, 0, 85, 65, 240, 128, 226, 92, 1, 8, 30, 131, 181, 33, 155, 54, 76, 97, 13, 168, 42, 63, 138, 170, 34, 198, 130, 122, 80, 45, 68, 85, 231, 128, 58, 231, 120, 159, 162, 173, 87, 48, 131, 51, 16, 141, 83, 4, 53, 76, 122, 22, 43, 160, 8, 223, 71, 4, 151, 231, 244, 134, 25, 157, 110, 143, 209, 40, 199, 70, 1, 222, 121, 188, 3, 17, 225, 60, 99, 5, 241, 14, 139, 97, 124, 98, 156, 32, 48, 56, 95, 96, 173, 165, 148, 36, 128, 231, 239, 39, 92, 164, 157, 191, 5, 41, 186, 173, 78, 52, 102, 169, 136, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130};

var request = new HttpRequestMessage(HttpMethod.Post, "https://lens.google.com/v3/upload") {
  Content = new MultipartFormDataContent() {
    {
      new ByteArrayContent(file) {
        Headers = {
          ContentType = new MediaTypeHeaderValue("image/png")
        }
      },
      "encoded_image",
      "encoded_image.png"
    },
  }
};
var response = http.Send(request);
var content = response.Content.ReadAsStringAsync().Result;

Console.WriteLine(content);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment