From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from au-smtp-delivery-117.mimecast.com (au-smtp-delivery-117.mimecast.com [103.96.21.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id B63A13B29D for ; Wed, 24 Jan 2024 20:27:28 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=auckland.ac.nz; s=mimecast20200506; t=1706146046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=8zY+LSfbvBdSOtIuCYHV+h5wDn9BSVMFbQUaKK/sQnU=; b=RNPmTzlObkR0R3GX7/NTNfaS3K8XMrL4Trh6Gi4r07Vo3jI+yuRmigL58yP0uooAYNYM+Q pDxfFwWrKFQKUve6qw3S3EzA9jjjue5skp0qYHFlsT1TMxWiDtbHO4PwIvr81vXLholbap UhOsrcFzNJl+2Cxv2dfbesvvEBqJX9M= Received: from AUS01-SY4-obe.outbound.protection.outlook.com (mail-sy4aus01lp2169.outbound.protection.outlook.com [104.47.71.169]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id au-mta-75-BIAc2U9mOVGqDQj5DBh-GA-1; Thu, 25 Jan 2024 12:27:23 +1100 X-MC-Unique: BIAc2U9mOVGqDQj5DBh-GA-1 Received: from SY4PR01MB6979.ausprd01.prod.outlook.com (2603:10c6:10:142::13) by MEYPR01MB7149.ausprd01.prod.outlook.com (2603:10c6:220:143::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22; Thu, 25 Jan 2024 01:27:21 +0000 Received: from SY4PR01MB6979.ausprd01.prod.outlook.com ([fe80::2faf:5dbf:9124:8a6f]) by SY4PR01MB6979.ausprd01.prod.outlook.com ([fe80::2faf:5dbf:9124:8a6f%5]) with mapi id 15.20.7228.023; Thu, 25 Jan 2024 01:27:21 +0000 Message-ID: <8155f3b7-45cd-478c-b2f8-26062f414f88@auckland.ac.nz> Date: Thu, 25 Jan 2024 14:27:18 +1300 User-Agent: Mozilla Thunderbird To: "starlink@lists.bufferbloat.net" From: Ulrich Speidel X-ClientProxiedBy: SYCP282CA0021.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:80::33) To SY4PR01MB6979.ausprd01.prod.outlook.com (2603:10c6:10:142::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SY4PR01MB6979:EE_|MEYPR01MB7149:EE_ X-MS-Office365-Filtering-Correlation-Id: ff2bb4fa-4b62-4c83-aa02-08dc1d44c6bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: P8yZsJoRhnNDdY6nHVc3Bcqo4jj8Jj5x7MUHFqHXERlH7LpPJcctki4QxmWBtjeq2EH3XYQZa/l+/8i6oW4ul5yhE62adnJzyK8ZoqVd0N59KmqmWDnpnj4hIxvU8qNjfbfyzKGw+1pnopPMvPJ0AM55PlJAWC4+X+jeroZhgLeqp1MNL1AFyRLI8GhJN4MFAe/B5ZPe6S0DTYcPnTCXN/hxhnL8xyBsnmFbo4SG2D7IzRudMB6YWxprz1oKenVY0hJzVBdaMG94PxtlzyhFRzUbxMT3hBysM1rmViccUfVHvmBufiYFWiU5IZeYqql3KaTtdguDJwGBvoRjvGY5xtGSzbPVmlgf4EResm/2lETuyTzvnIV0YgIMSwMAhX/byQEcw4CIXdOWWCbQjgiK1O6ZGTTGblM6FKMHJEpeWeHA6c5IQfjiF0fOjUjBSRUfQBRaZyc6XPPSi8fItwsAiVtdzfC+l9mCPohoMzQtoZTGrXj2Ar7KCW1dAmtHrn+JiDqQTBvgHQ6Qe+roOiRaWFQCOJXc6esDhLhIvGwoD21X2+WyYIsZj5K904ba4BJxUwwoXqa1b8zGCufgyFIQnF4HBmN/LrJFLjRNq43A2SEDqrh6/k0B5gc+6E9JOCbUG5QQiQk4phveii3mdd0OhA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SY4PR01MB6979.ausprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(136003)(346002)(376002)(366004)(39860400002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(2906002)(31696002)(86362001)(41300700001)(36756003)(38100700002)(166002)(6506007)(33964004)(6666004)(6512007)(66476007)(6916009)(2616005)(316002)(786003)(66556008)(66946007)(966005)(478600001)(6486002)(3480700007)(31686004)(66574015)(83380400001)(8936002)(8676002)(5660300002)(43740500002)(45980500001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N2hWeEQ2blpQTVRhUWFtUkRqMXNMNjg3SWl6VHlQaG9TZVVRS3FQVEwrdFRj?= =?utf-8?B?VS8yRnNaSWdPbFg1TFZCaWJaMTg0enZLMmhrK2NGMUtsSkFwT0svOVRXRC8v?= =?utf-8?B?dzJJcUNOQlgxbjZTMGhEdC9NeGF5RFpoOVhQa0hxdVdTQ3pHbVJ1S1cxa2VV?= =?utf-8?B?TWFFR3lpdzVFOG00S0xvWVRsTWRuU2c5bHFSL0NVMHRJYjZ1VVN5U2M3djhB?= =?utf-8?B?b0RrcVo1TTdycTg1MVc3VUNxc0YrOXUyOGc3R3RiRmpOaDdKME56SjlxdFBZ?= =?utf-8?B?MWd1OHcva3N0NmtQd3Z2VE5pdDJ0TTV2ZnJQL1QxTWFTcGJ6R3hITTFaQWp3?= =?utf-8?B?THoweTk2Q0FXN1VrYU9CdWVSVzhoZlNmL2hqSjE4S2dadHhCV2czbm9oaDYy?= =?utf-8?B?dkQ2M3YwakFJclZUaklZM004SnAzaWJNR3BJbGJLKzNyTWFVbWpDSFNDYWlr?= =?utf-8?B?ZHJpYlRCNkpyTXo3SXlKL0VFc0o5MkdJMGo4b1BpQ2V3cDM5RUl4Z3FjZ1Zi?= =?utf-8?B?V1ZlaW8vdW9aVVJ6V3AwWGNIL0VhNFphb0VFenJBNDB5MFBxWGowQjk4d21C?= =?utf-8?B?S3ZKdTJJZytkUG5SU2huMkNIU0ZnWlUvalZmdm4yWDJWNVcrYUgwNXdaRzU2?= =?utf-8?B?REFxRWRHRHRsaHAwWHdiVGF1VWcxYUFwZVQ2Zk9UZk1KbVR3UDlVWlVzVVVo?= =?utf-8?B?VnNhUkN2eWFnZ2VsbTRERHVFWHVjSmZnQTBLSWtjTzllbDJwZHRmS3cyMkdt?= =?utf-8?B?aDNMQXlhSUlaVjk0Um82RVRoYjNIWHltK0lCSzF0b0lwU2RRa1BBcjdIUlFL?= =?utf-8?B?MlVSanB3N0pOd3lOdkFQWGVsQ3A2c0RMMHgzdElpYmFTeGh0MktYaHdNMEMv?= =?utf-8?B?UUhkc2g2dFYxbWZVR3V0S0hXQUhvSEdqNExlMWVOR25WckZva3pJdFlYcGM4?= =?utf-8?B?bmRBU1AxMmV6eFRqa1VZMlVJeUFZSE4weUhPUVk1d0hqWGYvWU8vU2NEV25W?= =?utf-8?B?ZkY1cFpRWUJhcVA3YjVmeVJPZDcxUyszWXlPYVJtbVd1Z2JCYUJqU3FQWS9V?= =?utf-8?B?cHZIdkZRd3VaQXR1S0NlNkdjU0VZQlRQMnB6djZIVEtyZG83d2hkU25QRUJG?= =?utf-8?B?anpSaGlzeWNKVFFUKzIzb0hTVmsvdGZXSE9Qc0dBc3BRdmdOQ2JRc2Rya0NY?= =?utf-8?B?MlJhZE0wS1Q1Q1NCRWdqWEpRLzBDK1RwUlhkb2Fob3dsUVdLQkFodDRsYjht?= =?utf-8?B?Sy92dHRsU3BaUjRBLzNWbWtYRi9vMzR3UUhiOWNiZ2dEWTV5K1JtNmlPbGZa?= =?utf-8?B?b0I1MGFIaFFxUHhzTExsYUVTN1NjanRhSE1SWkRWdlBXVzhwdGhGN3c3ZmpF?= =?utf-8?B?OUt1Z084b2lTMUhuUTdYNFoxbVNpb1lRQ2tLTFZvazZWYUs0Ym5yZWpvc3B3?= =?utf-8?B?VnYydWNlZDV0d2FLcU5YVzA4aFZrbkl0UTlaNUk2c2Z2emFEYTVCVUFicVI3?= =?utf-8?B?T1lNZ3VTU2d1RlFjaXk1SlBSOS8zU3FZVXMxOHJQL2VKSFlMdzJNUW1BaEZN?= =?utf-8?B?c3RoNmdIbnBkb0kyREdET3A5TU5jWUgwR3BPSmVvTTVpdkUxK3ExZzhzL3ZU?= =?utf-8?B?UzRZbko2ZGxna3ZwbUZHZCtFYjZQdUZPanp1b3pJMzYyQm5UNGo5a2dweGtm?= =?utf-8?B?SlgreldKRUVMTHJJRDk2eUpXWFpsaUVQTEpqZE1FSm5INXJRUUlRTkRnYU1G?= =?utf-8?B?Z3lqRXA3ZHNtTlQ0OXJjaWNIRW1RNklXUlUrNTlJZldlOHd3bHVrb3RoZW9v?= =?utf-8?B?eFR1REhYUFF3NThKVkFkY09IbjdNYlZCYlZ1THdwZW5VM3ZJUklsTFdHa2NY?= =?utf-8?B?UUVvT2pTRzBCNEk4YVE0UTBXWnZOeTRwTWFwRVNDMjVadlh5WnZ1R0MzWUNy?= =?utf-8?B?a0RkTXd6UmcyN3F0V2RkNGpKZjRMY1pWTmNoaDk1am1UVml1TjBGU0hpMWVJ?= =?utf-8?B?dnhOK0tQNXFWL0FGbXdveWlmdkY2YzNqMDZ5a0xEMU1HYWpMdEpqSmdhTGdD?= =?utf-8?B?Q3loN1hRL0pveGU5dkdZQ3k4WUl1WGNhU1dmalkvNytOWEI4d2lZTm9jSEdk?= =?utf-8?B?aE03TGw4aG00d21LRFB1TXFDclA5OHdvbDdNNmluRC9tUC9PVzVOQzR6UFF3?= =?utf-8?B?Z2x1OElDbUdqQkVSeDNvQjJnQjFUZDJkd3YyMSt4OFFxOFk5aTg1V25UVDgr?= =?utf-8?B?M052amo5WDNDZlZod1R1WXRMU2FBPT0=?= X-OriginatorOrg: auckland.ac.nz X-MS-Exchange-CrossTenant-Network-Message-Id: ff2bb4fa-4b62-4c83-aa02-08dc1d44c6bc X-MS-Exchange-CrossTenant-AuthSource: SY4PR01MB6979.ausprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2024 01:27:21.0077 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d1b36e95-0d50-42e9-958f-b63fa906beaa X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ps9+WLOrwgdrYFkjnfK2tuF3+3LAxIsUCMq4VuhjpoyDtIBE1aPbSkIizpMV3cWjaNO83622Yf8Wr4VDSBCrNX0fXAUjgCGyVqx110wASJY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MEYPR01MB7149 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: auckland.ac.nz Content-Type: multipart/alternative; boundary="------------dUec1bGbSb0Jb7F8iV6Ja6KC" Content-Language: en-US Subject: [Starlink] Dishy GRPC obstruction maps X-BeenThere: starlink@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Starlink has bufferbloat. Bad." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jan 2024 01:27:29 -0000 --------------dUec1bGbSb0Jb7F8iV6Ja6KC Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable I've been playing a little bit with these: https://github.com/sparky8512/starlink-grpc-tools More specifically, I've been playing with the python script that's=20 getting the obstruction map here. This grabs an array of 123 row tuples=20 with 123 floating point number column entries each, which represent SNR=20 (signal to noise ratio) data, with the row and column indices of the=20 data structure being 2D coordinates of the direction in which this data=20 was observed. A value of -1 meaning that Dishy hasn't ever seen a=20 satellite in this direction, actual signal strengths are coded as values=20 between 0.0 and 1.0. You can output these as PNGs as well, like here=20 (with a slightly changed colour scheme): What you are looking at is a screenshot (so not exactly 123x123 but very=20 close), with white pixels corresponding to good signal and anything=20 blueish to impaired signal, and anything black to no signal. North is=20 top, west is left and east is right. You're looking at the corner of my=20 house as seen by Dishy on my deck, the flattish bit on the left is a=20 wooden trellis getting in the way, and the light blue line crossing the=20 white top part is the aluminium front bar of my awning (the awning=20 fabric appears to be transparent to the RF signal). My ultimate goal here is to be able to identify which satellite Dishy is=20 currently talking to, something the grpc interface doesn't seem to=20 reveal directly (anymore). This is of some interest in order to see=20 where signals enter the Starlink network, which ground stations the=20 satellite may relay to in bent pipe mode, and perhaps for an educated=20 guess as to which ISL hops it's taking. I'm trying to do this essentially by comparing two successive retrievals=20 of this map and detecting which entry has changed. This is the easy part. The hard part is trying to figure out which satellite this corresponds=20 to. Essentially, the idea is to translate this pixel data into a unit=20 vector pointing at the satellite, and then compare that with the unit=20 vectors from Dishy's location pointing at the thousands of Starlink sats=20 up there, and picking the one pair with the smallest angle. All this=20 takes conceptually are a few coordinate transforms to get everything=20 into the same coordinate system, with sat positions computed from NORAD=20 two line elements. My initial thought was that: 1. Index coordinate (62,62) in the SNR data matrix corresponds to a satellite that sits on the Dishy surface normal. 2. Indices minus 62 correspond to some sort of Cartesian x-y coordinate that should let me derive a unit vector for the direction to the satellite in a polar coordinate system based on Dishy's surface and the surface normal. 3. That then needs transforming into a coordinate system based on Dishy's location, removing Dishy orientation in the step. Dishy location and orientation are kindly available from Dishy itself via grpc. 4. Coming the other way, two line elements need to be turned into global coordinates for satellites at the current time, and these need to be turned into local coordinates in the system we're transforming into under 3 above. The crux is at step 1 and 2. If the assumption under 1 is correct and we=20 assume that the scales in row and column direction are the same, getting=20 at the azimuth is easy. But what does the distance of an entry (pixel)=20 to the centre of the map represent? * A linear function of the elevation angle? * A cosine projection of the elevation angle? * Would a map position in the middle of each map edge represent an elevation of 0 or, given the much rumoured phased array "cone" of 100 degrees, an angle of 40 degrees over Dishy surface? * Something else? But I'm not even sure that the assumption under 1 is correct. Note how=20 the area with valid SNR values in the map above is slightly elliptic and=20 offset a bit towards the bottom? This can't be due to Dishy's geometry=20 as the long dimension of it is top to bottom (north to south) rather=20 than east to west. Could this already be a projection into=20 the=C2=A0coordinate system based on Dishy's location, such that (62,62) is= =20 straight up from the ground? Anyone got any insights on this? Thanks muchly in advance. Ulrich --=20 **************************************************************** Dr. Ulrich Speidel School of Computer Science Room 303S.594 (City Campus) The University of Auckland u.speidel@auckland.ac.nz =20 http://www.cs.auckland.ac.nz/~ulrich/ **************************************************************** --------------dUec1bGbSb0Jb7F8iV6Ja6KC Content-Type: multipart/related; boundary="------------Kh8Xhj9IXPJvTd071JdiJFgd" --------------Kh8Xhj9IXPJvTd071JdiJFgd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

I've been playing a little bit with these:

https://github.com/sparky8512/starlink-grpc-tools=

More specifically, I've been playing with the python script that's getting the obstruction map here. This grabs an array of 123 row tuples with 123 floating point number column entries each, which represent SNR (signal to noise ratio) data, with the row and column indices of the data structure being 2D coordinates of the direction in which this data was observed. A value of -1 meaning that Dishy hasn't ever seen a satellite in this direction, actual signal strengths are coded as values between 0.0 and 1.0. You can output these as PNGs as well, like here (with a slightly changed colour scheme):

3D""

What you are looking at is a screenshot (so not exactly 123x123 but very close), with white pixels corresponding to good signal and anything blueish to impaired signal, and anything black to no signal. North is top, west is left and east is right. You're looking at the corner of my house as seen by Dishy on my deck, the flattish bit on the left is a wooden trellis getting in the way, and the light blue line crossing the white top part is the aluminium front bar of my awning (the awning fabric appears to be transparent to the RF signal).

My ultimate goal here is to be able to identify which satellite Dishy is currently talking to, something the grpc interface doesn't seem to reveal directly (anymore). This is of some interest in order to see where signals enter the Starlink network, which ground stations the satellite may relay to in bent pipe mode, and perhaps for an educated guess as to which ISL hops it's taking.

I'm trying to do this essentially by comparing two successive retrievals of this map and detecting which entry has changed. This is the easy part.

The hard part is trying to figure out which satellite this corresponds to. Essentially, the idea is to translate this pixel data into a unit vector pointing at the satellite, and then compare that with the unit vectors from Dishy's location pointing at the thousands of Starlink sats up there, and picking the one pair with the smallest angle. All this takes conceptually are a few coordinate transforms to get everything into the same coordinate system, with sat positions computed from NORAD two line elements.

My initial thought was that:

  1. Index coordinate (62,62) in the SNR data matrix corresponds to a satellite that sits on the Dishy surface normal.
  2. Indices minus 62 correspond to some sort of Cartesian x-y coordinate that should let me derive a unit vector for the direction to the satellite in a polar coordinate system based on Dishy's surface and the surface normal.
  3. That then needs transforming into a coordinate system based on Dishy's location, removing Dishy orientation in the step. Dishy location and orientation are kindly available from Dishy itself via grpc.
  4. Coming the other way, two line elements need to be turned into global coordinates for satellites at the current time, and these need to be turned into local coordinates in the system we're transforming into under 3 above.

The crux is at step 1 and 2. If the assumption under 1 is correct and we assume that the scales in row and column direction are the same, getting at the azimuth is easy. But what does the distance of an entry (pixel) to the centre of the map represent?

  • A linear function of the elevation angle?
  • A cosine projection of the elevation angle?
  • Would a map position in the middle of each map edge represent an elevation of 0 or, given the much rumoured phased array "cone" of 100 degrees, an angle of 40 degrees over Dishy surface?
  • Something else?

But I'm not even sure that the assumption under 1 is correct. Note how the area with valid SNR values in the map above is slightly elliptic and offset a bit towards the bottom? This can't be due to Dishy's geometry as the long dimension of it is top to bottom (north to south) rather than east to west. Could this already be a projection into the coordinate system based on Dishy's location, such that (62,62) is straight up from the ground?

Anyone got any insights on this?

Thanks muchly in advance.

Ulrich

--=20
****************************************************************
Dr. Ulrich Speidel

School of Computer Science

Room 303S.594 (City Campus)

The University of Auckland
u.speidel@auckland.ac.nz=20
http://www.cs.auckland.ac.nz/~ulrich/
****************************************************************



--------------Kh8Xhj9IXPJvTd071JdiJFgd Content-Type: image/png; name="nt53GBZYWHk9iG0c.png" Content-Disposition: inline; filename="nt53GBZYWHk9iG0c.png" Content-Id: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAlEAAAJXCAYAAACzJQHDAAAgAElEQVR4Xu3dAXLcRnYG4KF4CjM5 hansJZZycomldQuTPoUlXSKxqEskok6RzJ6CZDhre60BmkLPQwPoBj5WJVVLoRuN770Rf496mme7 3e7p+f98ESBAgAABAgQInCBwJkSdoOVSAgQIECBAgMDvAkKUViBAgAABAgQIBASEqACaIQQIECBA gAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjS AwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQI ECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgI CFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0Q AgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQI ECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6 gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAAB AgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEB ISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlC gAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAAB AgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoP ECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBA gACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAg RAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMI ECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBA gIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkB AgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQI ECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASE qACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggB AgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQI EBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1A gAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAAB AgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQ FUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFA gAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAAB AkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcI ECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBA gEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCi AmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQI ECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBA QIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AAB AgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQI EAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJU AM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAAB AgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQI CFF6gAABAgQIECAQEBCiAmiGECBAgAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBA gAABAgQIBASEqACaIQQIECBAgAABIUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAAB AgEBISqAZggBAgQIECBAQIjSAwQIECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgK oBlCgAABAgQIEBCi9AABAgQIECBAICAgRAXQDCFAgAABAgQICFF6gAABAgQIECAQEBCiAmiGECBA gAABAgSEKD1AgAABAgQIEAgICFEBNEMIECBAgAABAkKUHiBAgAABAgQIBASEqACaIQQIECBAgAAB IUoPECBAgAABAgQCAkJUAM0QAgQIECBAgIAQpQcIECBAgAABAgEBISqAZggBAgQIECBAQIjSAwQI ECBAgACBgIAQFUAzhAABAgQIECAgROkBAgQIECBAgEBAQIgKoBlCgAABAgQIEBCi9AABAgQIECBA ICAgRAXQDCFAgAABAgQICFF6gMCGBR4fH3dnZ4e/Bn77evXq1e7p6WlQpDvupQG586XGR9c2uPhv XPDLL8ceh0vfvs0zGXPf7tiU7xjLkmszFwECfwoIUbqBwIYFokFFiJq2aYSoaX3NTqCUgBBVStI8 BBoUEKKOi+adqAab2JIJLCggRC2I79YElhYQooSopXvQ/Qm0LCBEtVw9aycwUkCIEqJGtpDhBDYt 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 IQEhakjInxMgQIAAAQIEEgJClLYgQIAAAQIECAQEhKgAmiEECBAgQIAAASFKDxAgQIAAAQIEAgJC VADNEAIECBAgQICAEKUHCBAgQIAAAQIBASEqgGYIAQIECBAgQECI0gMECBAgQIAAgYCAEBVAM4QA AQIECBAgIETpAQIECBAgQIBAQECICqAZQoAAAQIECBAQovQAAQIECBAgQCAgIEQF0AwhQIAAAQIE CAhReoAAAQIECBAgEBAQogJohhAgQIAAAQIEhCg9QIAAAQIECBAICAhRATRDCBAgQIAAAQJClB4g QIAAAQIECAQEhKgAmiEECBAgQIAAASFKDxAgQIAAAQIEAgJCVADNEAIECBAgQICAEKUHCBAgQIAA AQIBASEqgGYIAQIECBAgQECI0gMECBAgQIAAgYCAEBVAM4QAAQIECBAgIETpAQIECBAgQIBAQECI CqAZQoAAAQIECBAQovQAAQIECBAgQCAgIEQF0AwhQIAAAQIECAhReoAAAQIECBAgEBAQogJohhAg QIAAAQIEhCg9QIAAAQIECBAICAhRATRDCBAgQIAAAQJClB4gQIAAAQIECAQEhKgAmiEECBAgQIAA ASFKDxAgQIAAAQIEAgJCVADNEAIECBAgQICAEKUHCBAgQIAAAQIBASEqgGYIAQIECBAgQECI0gME CBAgQIAAgYCAEBVAM4QAAQIECBAgIETpAQIECBAgQIBAQECICqAZQoAAAQIECBAQovQAAQIECBAg QCAgIEQF0AwhQIAAAQIECAhReoAAAQIECBAgEBAQogJohhAgQIAAAQIEhCg9QIAAAQIECBAICAhR ATRDCBAgQIAAAQJClB4gQIAAAQIECAQEhKgAmiEECBAgQIAAASFKDxAgQIAAAQIEAgJCVADNEAIE CBAgQICAEKUHCBAgQIAAAQIBASEqgGYIAQIECBAgQECI0gMECBAgQIAAgYCAEBVAM4QAAQIECBAg IETpAQIECBAgQIBAQECICqAZQoAAAQIECBAQovQAAQIECBAgQCAgIEQF0AwhQIAAAQIECAhReoAA AQIECBAgEBAQogJohhAgQIAAAQIEhCg9QIAAAQIECBAICAhRATRDCBAgQIAAAQJClB4gQIAAAQIE CAQEhKgAmiEECBAgQIAAASFKDxAgQIAAAQIEAgJCVADNEAIECBAgQICAEKUHCBAgQIAAAQIBASEq gGYIAQIECBAgQECI0gMECBAgQIAAgYCAEBVAM4QAAQIECBAgIETpAQIECBAgQIBAQECICqAZQoAA AQIECBAQovQAAQIECBAgQCAgIEQF0AwhQIAAAQIECAhReoAAAQIECBAgEBAQogJohhAgQIAAAQIE hCg9QIAAAQIECBAICAhRATRDCBAgQIAAAQJClB4gQIAAAQIECAQE/h+LUnT/3+tS4gAAAABJRU5E rkJggg== --------------Kh8Xhj9IXPJvTd071JdiJFgd-- --------------dUec1bGbSb0Jb7F8iV6Ja6KC--