Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from smtp-aa.freelists.org (smtp-aa.freelists.org [23.23.80.81])
 by malta2546.startdedicated.com (Postfix) with ESMTPS id 14495100315764
 for <oracle-l@orafaq.com>; Sun, 10 Oct 2021 19:59:22 +0200 (CEST)
Received: from turing.freelists.org (ip-10-0-0-164.ec2.internal [10.0.0.164])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by smtp-aa.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 8498E4090A;
 Sun, 10 Oct 2021 17:59:20 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 6C2A03F7B9;
 Sun, 10 Oct 2021 17:59:20 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1633888760;
 bh=mAFsXtI75Rk8T12Tg4g9A6QlLQ7nKwWxBZt6Xl0cCik=;
 h=From:Sender:Sender:From;
 b=KnsX2CEzT+fFk23ljDqSdf5Vo+eJglEDy25x/zWxzfFkbqaa2ZBH4ycrbtoCz0MI2
	 8XmTvtFPDPJ4hod/VjFvhHjs7x28/TUscaE6kdlT+KAbLvoYirHUHBT8MH/T+r0fN3
	 uZBch06JoKfxpUxZf1hd4/39y76fyNIUEfnmeFLQ=
X-Virus-Scanned: by FreeLists at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id t7xGu2xLkh_Z; Sun, 10 Oct 2021 17:59:20 +0000 (UTC)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 5FAE93F7BC;
 Sun, 10 Oct 2021 17:59:17 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1633888758;
 bh=mAFsXtI75Rk8T12Tg4g9A6QlLQ7nKwWxBZt6Xl0cCik=;
 h=From:Sender:Sender:From;
 b=bYaLiHuauQFiYNA4TKpbMVeSyUWjZSZ0AZ8ix/Qt71zO3FvB9P/GXiyBq4pnI+2PA
	 boqvCxqDLzmdUDnx9SGE7yrH8ah7xI3iTTUgKYDLSM0DABukztv4DWjaDRAC5xwVnH
	 ZZN8j1sLKBrqEfK9G+60WpsM8xzmynJjtMiehHDQ=
Received: with ECARTIS (v1.0.0; list oracle-l); Sun, 10 Oct 2021 17:59:15 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id B38E93F7B9
 for <oracle-l@freelists.org>; Sun, 10 Oct 2021 17:59:15 +0000 (UTC)
Authentication-Results: turing.freelists.org;
 dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=VNtTsvdS;
 dkim-atps=neutral
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ZHHSHDv1Wg9R for <oracle-l@freelists.org>;
 Sun, 10 Oct 2021 17:59:15 +0000 (UTC)
Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by turing.freelists.org (Postfix) with ESMTPS id 9CB3F3F5F7
 for <oracle-l@freelists.org>; Sun, 10 Oct 2021 17:59:15 +0000 (UTC)
Received: by mail-yb1-f179.google.com with SMTP id s64so33466591yba.11
        for <oracle-l@freelists.org>; Sun, 10 Oct 2021 10:59:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=uGOPAXPSk95Ow8Dc8aywKRYDCqJQ4uud6ee6mdr1/PQ=;
        b=2yKbstzpsYaU+Qpwg8wS8vn2pbbQkg49I2MzzOC8ghooLGUGh3cXA6B60e9XPN3JPT
         y7rwSfI3zOvjg4BhL1tOp60eqFTWqqJi/P0BY+kCupeYFYxQo2Itwt6hjEptTUT0y75E
         KjYk7rguQpVPm+5cyz4Ps05uwsveKjUrZvwVeqwFpmX01QGnefhEUXYMPEvyjswucD5u
         brXd1TJybpL7lA1UIJMUlNEebvUUKOml/CeWcqm9sqN4TySV1B4NGNKJFEDassUIvizK
         nkOJfJUWCUMarkountSPJdbYtt173oqtOzGTqoEaB22QCNhF1JE6pHAEQ62Hvo1C4sEQ
         f8Uw==
X-Gm-Message-State: AOAM533nkIbo20KwcNnSAmF5CSUyxFUi2gdCfp131NhaU6DQRzmMeQp8
 srkvVFQNwloo2RZIvg3AKmmva8aMSXo9MjOwRwVqXvon8S4=
X-Google-Smtp-Source: ABdhPJxJuUIlbCOZro5X+dp4bIivD0vEb2E/uwL3fPyEWBWmRsYtaC2hVHxEJl/2QgIFOBD1FwEnx3Az8lxw6GfIesw=
X-Received: by 2002:a25:3817:: with SMTP id f23mr16587961yba.436.1633888754980;
 Sun, 10 Oct 2021 10:59:14 -0700 (PDT)
MIME-Version: 1.0
References: <CAEjw_fjraKwNds2y+Ftzc5V0CjP_-SE0dVzaBEmvCcrpA4i=nQ@mail.gmail.com>
 <CAEjw_fi9J0ZO8OAcvhzZmNFKp+rUx9kvZ2vry5X8-qPkdXeUqA@mail.gmail.com>
 <CAGtsp8=TPb1Nn=C_x7_MG9wFw9NUc74LCGPgrDxZxgCpoE+4mA@mail.gmail.com>
 <CA+riqSVaqDFyabwGiVJOE7WHDbXKDaahFdQOz6-J_ZoH3sBuDA@mail.gmail.com>
 <CAEjw_fgLvtZP5zv+xCf_+zmsFUydU5DAE1rQ3WWAuzZVd+ZWbg@mail.gmail.com>
 <CAGtsp8mOX+kVxhzCj+WBcia6Wj-6TN5kXpScZZFO8M2sQJ-d7w@mail.gmail.com> <CAEjw_fhaB-2XFOnf=NpT5vmnFp3AJiu5KDdWvFYXhAEXs21dFw@mail.gmail.com>
In-Reply-To: <CAEjw_fhaB-2XFOnf=NpT5vmnFp3AJiu5KDdWvFYXhAEXs21dFw@mail.gmail.com>
From: Lok P <loknath.73@gmail.com>
Date: Sun, 10 Oct 2021 23:29:03 +0530
Message-ID: <CAKna9VaGzWx9-Tx-wr2M8LWX5b-wgDqh-37dDsOhGFE+o-ie0w@mail.gmail.com>
Subject: Re: question on table access by index rowid batched
To: Pap <oracle.developer35@gmail.com>
Cc: Jonathan Lewis <jlewisoracle@gmail.com>, Oracle L <oracle-l@freelists.org>
Content-Type: multipart/alternative; boundary="000000000000d7da6c05ce035eff"
X-archive-position: 81109
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: loknath.73@gmail.com
Precedence: normal
Reply-To: loknath.73@gmail.com
List-Help: <mailto:ecartis@freelists.org?Subject=help>
List-Unsubscribe: <mailto:oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-Subscribe: <mailto:oracle-l-request@freelists.org?Subject=subscribe>
List-Owner: <mailto:>
List-post: <mailto:oracle-l@freelists.org>
List-Archive: <https://www.freelists.org/archive/oracle-l>
X-list: oracle-l
--000000000000d7da6c05ce035eff
Content-Type: text/plain; charset="UTF-8"

I think you are correct. As Jonathan explained, the issue here is just
because of the extra work added by the statistics collector operation which
does the blocking/buffering operation to decide future Joins. But yes ~131
seconds of blocking is too much for any first_rows/oltp/search query to
wait for. And as you pointed out in one of the cases the same table access
by index rowid operation took 5GB and other was less . And to which
Jonathan highlighted, the difference in data pattern made that thing
happen(which inturn was because of the statistics collector), looks
interesting. I have never thought of that.

We also have few of our OLTP environments on 19C but there we have
optimizer_adaptive_plans itself set as false and we were planning to enable
it based on certain inputs from other team members. Curious to know if
others experienced such issues with first_rows type of queries with
adaptive plans enabled and we should stop enabling it?

On Sat, Oct 9, 2021 at 9:50 PM Pap <oracle.developer35@gmail.com> wrote:

> Thank you Jonathan.
>
> There is a difference of ~350+ seconds between the run time of both the
> plans and out of this, ~131 seconds is contributed by the statistics
> collector which does the additional mathematics/counting to opt for the
> best path at that moment (must be based on the runtime/actual cardinality
> information). This query was actually a search query and running with
> first_rows hint and customer expecting to see the result as first ~50 odd
> rows asap on the screen but with the optimizer_adaptive_reporting_only
> 'false' it was using another set of mathematics(or as you mentioned
> multipasses) in this query adding significant overhead for this quick
> query. So is it recommended to have this parameter set as 'true' mainly in
> the oltp kind of environment ? Or should totally turn the key driver i.e.
> optimizer_adpative_plan as false?
>
> Note -- Just to note, after the upgrade , I think the infra team just kept
> it all default i.e. optimizer_adaptive_plan- true,
> optimizer_adaptive_reporting_only- false, optimizer_adaptive_statistics-
> false. So wondering if it's advisable/ and safe to change few to non
> default?
>
> As you rightly explained, there seems to be no role of rowid batching in
> this performance issue. Again, not much experience in reading
> complex execution paths, but from the path initially I was interpreting, it
> as both plans are exactly the same ,  with just the difference in 'rowid
> batching operation. But from your explanation, I see I was completely
> wrong.  Now, I can see in the good plan case it has read ~28million at step
> ~46 for index TP_PK but in the bad plan case it is not noted in the sql
> monitor. but conversely  ,  ~5GB data being read in the bad plan, at
> step-59 with ~661k read requests and it resulted in ~770k rows there. But
> in case of a good plan those bytes read and number of read requests are not
> noted. So does this point to the fact that the statistics collector is
> really playing a role in the order in which data results out from one
> operation/step to another?
>
>
> On Sat, Oct 9, 2021 at 4:49 PM Jonathan Lewis <jlewisoracle@gmail.com>
> wrote:
>
>>
>> Remember I was talking POSSIBILITIES in my previous post, not certainties.
>>
>> With the extra information you have now supplied I have a better
>> hypothesis, based on the fact that you have adaptive_plans_enabled (which I
>> should have realised in the first place), and that the plans you've
>> supplied are different in exactly the TYPE of reason I suggested, but not
>> for the exact reason. My basic hypothesis now is that when you enabled
>> adaptive plans but set it to reporting only Oracle will always include the
>> statistics collector operations, but it will not use them (i.e. not
>> counting etc,) to make a decision about whether to take a hash join or a
>> nested loop join. It will simply generate a path based on its first pass
>> calculations.
>>
>> (You could check this with a suitable set of examples and testing with
>> (a) adaptive plans enable (b) adaptive plans enabled but reporting only (c)
>> adaptive plans disabled.  You'd need to set up 4 possibilities:  nlj
>> changing to hj due to adaptive plans, hj changing to nlj due to adaptive
>> plans, nlj not changing, hj not changing).
>>
>> So Looking at your SQL Monitor reports - lines 41 and 42 as a starting
>> point:
>>
>> WIth reporting only = TRUE
>>
>> ==============================================================================================================================================================================
>> | Id |                      Operation                       |
>> Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>> | Read  | Read  |  Mem  |
>> |    |                                                      |
>>                   | (Estim) |       | Active(s) | Active |       | (Actual)
>> | Reqs  | Bytes | (Max) |
>>
>> ===============================================================================================================================================================================
>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>                    |       1 |     2 |       279 |     +2 |    2M |
>> 2M |       |       |     . |
>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>                    |       1 |     2 |           |        |       |
>>  |       |       |     . |
>>
>> With reporting only = FALSE
>>
>> ===============================================================================================================================================================================================
>> | Id |                      Operation                       |
>> Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>> | Read  | Read  | Write | Write |  Mem  |
>> |    |                                                      |
>>                   | (Estim) |       | Active(s) | Active |       | (Actual)
>> | Reqs  | Bytes | Reqs  | Bytes | (Max) |
>>
>> ===============================================================================================================================================================================================
>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>                    |       1 |     2 |           |        |       |
>>  |       |       |       |       |     . |
>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>                    |       1 |     2 |         1 |   +131 |     1 |
>> 976K |       |       |       |       |     . |
>>
>> These two lines are the options available as a result of a statistics
>> collector further up the plan, and one plan takes operation 41, the other
>> takes operation 42
>>
>> Putting them into context (adding in some parent and sibling rows)
>>
>> Reporting only = true ... plan based on estimates
>>
>> ==============================================================================================================================================================================
>> | Id |                      Operation                       |
>> Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>> | Read  | Read  |  Mem  |
>> |    |                                                      |
>>                   | (Estim) |       | Active(s) | Active |       | (Actual)
>> | Reqs  | Bytes | (Max) |
>>
>> ===============================================================================================================================================================================
>> |  7 |         NESTED LOOPS OUTER                           |
>>                   |       1 |    3M |       279 |     +2 |     1 |       2M
>> |       |       |     . |          |                 |
>> |  8 |          HASH JOIN OUTER                             |
>>                   |       1 |    3M |       279 |     +2 |     1 |       2M
>> |       |       |     . |
>> |  9 |           NESTED LOOPS OUTER                         |
>>                   |       1 |    3M |       279 |     +2 |     1 |       2M
>> |       |       |     . |
>> | 10 |            STATISTICS COLLECTOR                      |
>>                   |         |       |       279 |     +2 |     1 |       2M
>> |       |       |     . |
>> | 11 |             NESTED LOOPS OUTER                       |
>>                   |       1 |    3M |       279 |     +2 |     1 |       2M
>> |       |       |     . |
>>
>> ...
>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>                    |       1 |     2 |       279 |     +2 |    2M |
>> 2M |       |       |     . |
>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>                    |       1 |     2 |           |        |       |
>>  |       |       |     . |
>> | 43 |          TABLE ACCESS BY INDEX ROWID                 | TC
>>                    |       1 |     2 |       279 |     +2 |    2M |
>> 2M | 16037 | 125MB |     . |          |                 |
>>
>>
>> Reporting only = false ... plan adapts to counting
>> (OPTERATION 10 dictates a HASH JOIN where the estimated stats suggested
>> NLJ)
>>
>> ===============================================================================================================================================================================================
>> | Id |                      Operation                       |
>> Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>> | Read  | Read  | Write | Write |  Mem  |
>> |    |                                                      |
>>                   | (Estim) |       | Active(s) | Active |       | (Actual)
>> | Reqs  | Bytes | Reqs  | Bytes | (Max) |
>>
>> ===============================================================================================================================================================================================
>> |  7 |         NESTED LOOPS OUTER                           |
>>                   |       1 |    3M |        27 |   +131 |     1 |       2M
>> |       |       |       |       |     . |
>> |  8 |          HASH JOIN OUTER                             |
>>                   |       1 |    3M |       155 |     +3 |     1 |       2M
>> |  3035 |   1GB |  3035 |   1GB | 309MB |
>> |  9 |           NESTED LOOPS OUTER                         |
>>                   |       1 |    3M |       129 |     +3 |     1 |       2M
>> |       |       |       |       |     . |
>> | 10 |            STATISTICS COLLECTOR                      |
>>                   |         |       |       129 |     +3 |     1 |       2M
>> |       |       |       |       |     . |
>> | 11 |             NESTED LOOPS OUTER                       |
>>                   |       1 |    3M |       129 |     +3 |     1 |       2M
>> |       |       |       |       |     . |
>> ...
>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>                    |       1 |     2 |           |        |       |
>>  |       |       |       |       |     . |
>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>                    |       1 |     2 |         1 |   +131 |     1 |
>> 976K |       |       |       |       |     . |
>> | 43 |          TABLE ACCESS BY INDEX ROWID                 | TC
>>                    |       1 |     2 |        27 |   +131 |    2M |
>> 2M | 21549 | 168MB |       |       |     . |
>>
>>
>> As you can see, the ability to switch plans makes a big difference to the
>> amount of time Oracle spends working before it starts executing step 7
>> (start time = +2 seconds vs. +131 seconds).
>>
>> This one extract from the plans doesn't answer the question about why
>> "table access by index rowid batched" has appeared; nor does it explain the
>> total difference between the two executions because you also need to look
>> at the statistics collector at operation 6 and the impact that has on which
>> of operation 45/46 and 47/48 get chosen. The other point that then comes up
>> is that the order in which data appears from a hash join is (almost
>> certainly) different from the order it appears from a nested loop join -
>> which means that when you use the result of the join to probe other tables
>> by index the order of the driving data from one join may be roughly in line
>> with the indexes and data from the next table(s) in the join and benefit
>> from a lot of "self-induced" caching, while the other join might produce
>> data in what is effectively a randomised order resulting in "self-flushing"
>> and more random reads - and that might explain what happens at operations
>> 60/61
>>
>> What my observations suggest is a good argument for why you had such a
>> difference in performance, and that it had nothing to do with the batching
>> or not of the table access by rowid.
>>
>> I may write this up in more detail as a blog some day, but I don't have
>> time right now.
>>
>> Regards
>> Jonathan Lewis
>>
>>
>>
>>
>>
>> On Fri, 8 Oct 2021 at 18:34, Pap <oracle.developer35@gmail.com> wrote:
>>
>>>   It's fluctuating. I am now not able to reproduce the scenario for that
>>> same small query for which I had posted here just before.  And you are
>>> correct , I was luckily having sql monitors saved. I am attaching those
>>> here. If you see that, the main query was showing those rowid batched
>>> operations when we have the  optimizer_adaptive_reporting_only set as
>>> default/false and was taking a long time to finish and also the first few
>>> rows were also taking longer to get produced out of the query. But the
>>> sample small query which i had posted a cursor plan for was just showing
>>> the opposite behaviour. That is going for a rowid batched path when
>>> optimizer_adaptive_reporting_only sets as true.
>>>
>>> However,  now I am seeing that same small query in both the cases
>>> (irrespective of value of optimizer_adaptive_reporting_only) going for
>>> 'rowid batched' execution path. Not sure if it's just stats or
>>> anything else influencing and I am seeing different things behaviour. Just
>>> to note we have 'optimizer_adaptive_plans' set to true ,
>>> 'optimizer_adaptive_statistics' set  to false. The only change we made was
>>> moving ' optimizer_adaptive_reporting_only' from false to true.
>>>
>>> And Jonathan when you said the optimizer_adaptive_reporting_only = true
>>> will introduce 'statistics collector' operation, but if you see the
>>> attached sql monitor for the main query, i am seeing 'statistics collector'
>>> even when optimizer_adaptive_reporting_only is = false. Is that expected
>>> behaviour?
>>>
>>>
>>>
>>
>>
>>

--000000000000d7da6c05ce035eff
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+SSB0aGluayB5b3UgYXJlIGNvcnJlY3QuIEFzIEpvbmF0aGFuIGV4cGxh
aW5lZCwgdGhlIGlzc3VlIGhlcmUgaXMganVzdCBiZWNhdXNlIG9mIHRoZSBleHRyYSB3b3JrIGFk
ZGVkIGJ5IHRoZSBzdGF0aXN0aWNzIGNvbGxlY3RvciBvcGVyYXRpb24gd2hpY2ggZG9lcyB0aGUg
YmxvY2tpbmcvYnVmZmVyaW5nIG9wZXJhdGlvbiB0b8KgZGVjaWRlIGZ1dHVyZcKgSm9pbnMuIEJ1
dCB5ZXMgfjEzMSBzZWNvbmRzIG9mIGJsb2NraW5nIGlzIHRvbyBtdWNoIGZvciBhbnkgZmlyc3Rf
cm93cy9vbHRwL3NlYXJjaCBxdWVyeSB0byB3YWl0IGZvci4gQW5kIGFzIHlvdSBwb2ludGVkIG91
dCBpbiBvbmUgb2YgdGhlIGNhc2VzIHRoZSBzYW1lIHRhYmxlIGFjY2VzcyBieSBpbmRleCByb3dp
ZCBvcGVyYXRpb24gdG9vayA1R0IgYW5kIG90aGVywqB3YXMgbGVzcyAuIEFuZCB0byB3aGljaCBK
b25hdGhhbiBoaWdobGlnaHRlZCwgdGhlIGRpZmZlcmVuY2UgaW4gZGF0YSBwYXR0ZXJuIG1hZGUg
dGhhdCB0aGluZyBoYXBwZW4od2hpY2ggaW50dXJuIHdhcyBiZWNhdXNlIG9mIHRoZSBzdGF0aXN0
aWNzIGNvbGxlY3RvciksIGxvb2tzIGludGVyZXN0aW5nLiBJIGhhdmUgbmV2ZXIgdGhvdWdodCBv
ZiB0aGF0LjxkaXY+PGJyPjwvZGl2PjxkaXY+V2UgYWxzbyBoYXZlIGZldyBvZiBvdXIgT0xUUCBl
bnZpcm9ubWVudHPCoG9uIDE5QyBidXQgdGhlcmUgd2UgaGF2ZSBvcHRpbWl6ZXJfYWRhcHRpdmVf
cGxhbnMgaXRzZWxmIHNldCBhcyBmYWxzZSBhbmQgd2Ugd2VyZSBwbGFubmluZyB0byBlbmFibGUg
aXQgYmFzZWQgb24gY2VydGFpbiBpbnB1dHMgZnJvbSBvdGhlciB0ZWFtwqBtZW1iZXJzLiBDdXJp
b3VzIHRvIGtub3cgaWYgb3RoZXJzIGV4cGVyaWVuY2VkIHN1Y2ggaXNzdWVzIHdpdGggZmlyc3Rf
cm93cyB0eXBlIG9mIHF1ZXJpZXMgd2l0aCBhZGFwdGl2ZSBwbGFucyBlbmFibGVkIGFuZCB3ZSBz
aG91bGQgc3RvcCBlbmFibGluZyBpdD88YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9Imdt
YWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gU2F0LCBPY3Qg
OSwgMjAyMSBhdCA5OjUwIFBNIFBhcCAmbHQ7PGEgaHJlZj0ibWFpbHRvOm9yYWNsZS5kZXZlbG9w
ZXIzNUBnbWFpbC5jb20iPm9yYWNsZS5kZXZlbG9wZXIzNUBnbWFpbC5jb208L2E+Jmd0OyB3cm90
ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2lu
OjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQp
O3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPlRoYW5rIHlvdSBKb25hdGhhbi7CoDxk
aXY+PGJyPjxkaXY+VGhlcmUgaXMgYSBkaWZmZXJlbmNlIG9mIH4zNTArIHNlY29uZHMgYmV0d2Vl
biB0aGUgcnVuIHRpbWUgb2YgYm90aCB0aGUgcGxhbnMgYW5kIG91dCBvZiB0aGlzLCB+MTMxIHNl
Y29uZHMgaXMgY29udHJpYnV0ZWTCoGJ5IHRoZSBzdGF0aXN0aWNzIGNvbGxlY3RvciB3aGljaCBk
b2VzIHRoZSBhZGRpdGlvbmFsIG1hdGhlbWF0aWNzL2NvdW50aW5nIHRvIG9wdCBmb3IgdGhlIGJl
c3QgcGF0aCBhdCB0aGF0IG1vbWVudCAobXVzdCBiZSBiYXNlZCBvbiB0aGUgcnVudGltZS9hY3R1
YWwgY2FyZGluYWxpdHkgaW5mb3JtYXRpb24pLiBUaGlzIHF1ZXJ5IHdhcyBhY3R1YWxseSBhIHNl
YXJjaCBxdWVyeSBhbmQgcnVubmluZyB3aXRoIGZpcnN0X3Jvd3MgaGludCBhbmQgY3VzdG9tZXIg
ZXhwZWN0aW5nIHRvIHNlZSB0aGUgcmVzdWx0IGFzIGZpcnN0IH41MCBvZGQgcm93cyBhc2FwIG9u
IHRoZSBzY3JlZW4gYnV0IHdpdGggdGhlIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdfb25s
eSAmIzM5O2ZhbHNlJiMzOTsgaXQgd2FzIHVzaW5nIGFub3RoZXIgc2V0IG9mIG1hdGhlbWF0aWNz
KG9yIGFzIHlvdSBtZW50aW9uZWQgbXVsdGlwYXNzZXMpIGluIHRoaXMgcXVlcnkgYWRkaW5nIHNp
Z25pZmljYW50IG92ZXJoZWFkIGZvciB0aGlzIHF1aWNrIHF1ZXJ5LiBTbyBpcyBpdCByZWNvbW1l
bmRlZCB0byBoYXZlIHRoaXMgcGFyYW1ldGVyIHNldCBhcyAmIzM5O3RydWUmIzM5OyBtYWlubHkg
aW4gdGhlIG9sdHAga2luZCBvZiBlbnZpcm9ubWVudCA/IE9yIHNob3VsZMKgdG90YWxseSB0dXJu
IHRoZSBrZXkgZHJpdmVyIGkuZS4gb3B0aW1pemVyX2FkcGF0aXZlX3BsYW4gYXMgZmFsc2U/wqA8
ZGl2Pjxicj48ZGl2Pk5vdGUgLS0gSnVzdCB0byBub3RlLCBhZnRlciB0aGUgdXBncmFkZSAsIEkg
dGhpbmsgdGhlIGluZnJhIHRlYW0ganVzdCBrZXB0IGl0IGFsbCBkZWZhdWx0wqBpLmUuIG9wdGlt
aXplcl9hZGFwdGl2ZV9wbGFuLSB0cnVlLCBvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29u
bHktIGZhbHNlLCBvcHRpbWl6ZXJfYWRhcHRpdmVfc3RhdGlzdGljcy0gZmFsc2UuIFNvIHdvbmRl
cmluZyBpZiBpdCYjMzk7cyBhZHZpc2FibGUvIGFuZCBzYWZlIHRvIGNoYW5nZSBmZXcgdG8gbm9u
IGRlZmF1bHQ/PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5BcyB5
b3UgcmlnaHRseSBleHBsYWluZWQsIHRoZXJlIHNlZW1zIHRvIGJlIG5vIHJvbGUgb2Ygcm93aWQg
YmF0Y2hpbmcgaW4gdGhpcyBwZXJmb3JtYW5jZSBpc3N1ZS4gQWdhaW4sIG5vdCBtdWNoIGV4cGVy
aWVuY2UgaW4gcmVhZGluZyBjb21wbGV4wqBleGVjdXRpb24gcGF0aHMsIGJ1dCBmcm9tIHRoZSBw
YXRoIGluaXRpYWxseSBJIHdhcyBpbnRlcnByZXRpbmcsIGl0IGFzIGJvdGggcGxhbnMgYXJlIGV4
YWN0bHkgdGhlIHNhbWXCoCzCoCB3aXRoIGp1c3QgdGhlIGRpZmZlcmVuY2UgaW4gJiMzOTtyb3dp
ZCBiYXRjaGluZyBvcGVyYXRpb24uIEJ1dCBmcm9tIHlvdXIgZXhwbGFuYXRpb24sIEkgc2VlIEkg
d2FzwqBjb21wbGV0ZWx5IHdyb25nLsKgwqBOb3csIEkgY2FuIHNlZSBpbiB0aGUgZ29vZCBwbGFu
IGNhc2UgaXQgaGFzIHJlYWQgfjI4bWlsbGlvbiBhdCBzdGVwIH40NiBmb3IgaW5kZXggVFBfUEsg
YnV0IGluIHRoZSBiYWQgcGxhbiBjYXNlIGl0IGlzwqBub3Qgbm90ZWQgaW4gdGhlIHNxbCBtb25p
dG9yLiBidXQgY29udmVyc2VsecKgICzCoCB+NUdCIGRhdGEgYmVpbmcgcmVhZCBpbiB0aGUgYmFk
IHBsYW4sIGF0IHN0ZXAtNTkgd2l0aCB+NjYxayByZWFkIHJlcXVlc3RzIGFuZCBpdCByZXN1bHRl
ZCBpbsKgfjc3MGsgcm93cyB0aGVyZS4gQnV0IGluIGNhc2Ugb2YgYSBnb29kIHBsYW4gdGhvc2Ug
Ynl0ZXMgcmVhZCBhbmQgbnVtYmVyIG9mIHJlYWQgcmVxdWVzdHMgYXJlIG5vdCBub3RlZC4gU28g
ZG9lcyB0aGlzIHBvaW50IHRvIHRoZSBmYWN0IHRoYXQgdGhlIHN0YXRpc3RpY3MgY29sbGVjdG9y
IGlzIHJlYWxseSBwbGF5aW5nIGEgcm9sZSBpbiB0aGUgb3JkZXIgaW4gd2hpY2ggZGF0YSByZXN1
bHRzIG91dCBmcm9tIG9uZSBvcGVyYXRpb24vc3RlcCB0byBhbm90aGVyPzwvZGl2PjxkaXY+PGJy
PjwvZGl2PjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIg
Y2xhc3M9ImdtYWlsX2F0dHIiPk9uIFNhdCwgT2N0IDksIDIwMjEgYXQgNDo0OSBQTSBKb25hdGhh
biBMZXdpcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpsZXdpc29yYWNsZUBnbWFpbC5jb20iIHRhcmdl
dD0iX2JsYW5rIj5qbGV3aXNvcmFjbGVAZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2
PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBw
eCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxl
ZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj48ZGl2IGRpcj0ibHRyIj48ZGl2Pjxicj48L2Rpdj48ZGl2
PlJlbWVtYmVyIEkgd2FzIHRhbGtpbmcgUE9TU0lCSUxJVElFUyBpbiBteSBwcmV2aW91cyBwb3N0
LCBub3QgY2VydGFpbnRpZXMuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5XaXRoIHRoZSBleHRy
YSBpbmZvcm1hdGlvbiB5b3UgaGF2ZSBub3cgc3VwcGxpZWQgSSBoYXZlIGEgYmV0dGVyIGh5cG90
aGVzaXMsIGJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgeW91IGhhdmUgYWRhcHRpdmVfcGxhbnNfZW5h
YmxlZCAod2hpY2ggSSBzaG91bGQgaGF2ZSByZWFsaXNlZCBpbiB0aGUgZmlyc3QgcGxhY2UpLCBh
bmQgdGhhdCB0aGUgcGxhbnMgeW91JiMzOTt2ZSBzdXBwbGllZCBhcmUgZGlmZmVyZW50IGluIGV4
YWN0bHkgdGhlIFRZUEUgb2YgcmVhc29uIEkgc3VnZ2VzdGVkLCBidXQgbm90IGZvciB0aGUgZXhh
Y3QgcmVhc29uLiBNeSBiYXNpYyBoeXBvdGhlc2lzIG5vdyBpcyB0aGF0IHdoZW4geW91IGVuYWJs
ZWQgYWRhcHRpdmUgcGxhbnMgYnV0IHNldCBpdCB0byByZXBvcnRpbmcgb25seSBPcmFjbGUgd2ls
bCBhbHdheXMgaW5jbHVkZSB0aGUgc3RhdGlzdGljcyBjb2xsZWN0b3Igb3BlcmF0aW9ucywgYnV0
IGl0IHdpbGwgbm90IHVzZSB0aGVtIChpLmUuIG5vdCBjb3VudGluZyBldGMsKSB0byBtYWtlIGEg
ZGVjaXNpb24gYWJvdXQgd2hldGhlciB0byB0YWtlIGEgaGFzaCBqb2luIG9yIGEgbmVzdGVkIGxv
b3Agam9pbi4gSXQgd2lsbCBzaW1wbHkgZ2VuZXJhdGUgYSBwYXRoIGJhc2VkIG9uIGl0cyBmaXJz
dCBwYXNzIGNhbGN1bGF0aW9ucy4gPGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+KFlvdSBj
b3VsZCBjaGVjayB0aGlzIHdpdGggYSBzdWl0YWJsZSBzZXQgb2YgZXhhbXBsZXMgYW5kIHRlc3Rp
bmcgd2l0aCAoYSkgYWRhcHRpdmUgcGxhbnMgZW5hYmxlIChiKSBhZGFwdGl2ZSBwbGFucyBlbmFi
bGVkIGJ1dCByZXBvcnRpbmcgb25seSAoYykgYWRhcHRpdmUgcGxhbnMgZGlzYWJsZWQuwqAgWW91
JiMzOTtkIG5lZWQgdG8gc2V0IHVwIDQgcG9zc2liaWxpdGllczrCoCBubGogY2hhbmdpbmcgdG8g
aGogZHVlIHRvIGFkYXB0aXZlIHBsYW5zLCBoaiBjaGFuZ2luZyB0byBubGogZHVlIHRvIGFkYXB0
aXZlIHBsYW5zLCANCm5saiBub3QgY2hhbmdpbmcsIGhqIG5vdCBjaGFuZ2luZykuPGJyPjwvZGl2
PjxkaXY+PGJyPjwvZGl2PjxkaXY+U28gTG9va2luZyBhdCB5b3VyIFNRTCBNb25pdG9yIHJlcG9y
dHMgLSBsaW5lcyA0MSBhbmQgNDIgYXMgYSBzdGFydGluZyBwb2ludDo8L2Rpdj48ZGl2Pjxicj48
L2Rpdj48ZGl2PldJdGggcmVwb3J0aW5nIG9ubHkgPSBUUlVFPGJyPjwvZGl2PjxkaXY+PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJy
PnwgSWQgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE9wZXJhdGlvbiDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIE5hbWUgwqAgwqAg
wqAgwqAgwqAgwqAgwqB8IMKgUm93cyDCoCB8IENvc3QgwqB8IMKgIFRpbWUgwqAgwqB8IFN0YXJ0
IMKgfCBFeGVjcyB8IMKgIFJvd3MgwqAgfCBSZWFkIMKgfCBSZWFkIMKgfCDCoE1lbSDCoHw8YnI+
fCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgKEVzdGltKSB8IMKgIMKgIMKgIHwgQWN0aXZlKHMpIHwg
QWN0aXZlIHwgwqAgwqAgwqAgfCAoQWN0dWFsKSB8IFJlcXMgwqB8IEJ5dGVzIHwgKE1heCkgfDxi
cj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PGJyPnwgNDEgfCDCoCDCoCDCoCDCoCDCoCDCoElOREVYIFJBTkdFIFNDQU4gwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IFRDWF9QSyDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCAyNzkg
fCDCoCDCoCArMiB8IMKgIMKgMk0gfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAg
fCDCoCDCoCAuIHw8YnI+fCA0MiB8IMKgIMKgIMKgIMKgIMKgIElOREVYIFJBTkdFIFNDQU4gwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCBUQ1hfUEsgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIDEgfCDCoCDCoCAyIHwgwqAgwqAgwqAg
wqAgwqAgfCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAg
fCDCoCDCoCDCoCB8IMKgIMKgIC4gfDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+V2l0aCByZXBv
cnRpbmcgb25seSA9IEZBTFNFPGJyPjwvZGl2PjxkaXY+PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+
fCBJZCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgT3BlcmF0aW9uIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgTmFtZSDCoCDCoCDC
oCDCoCDCoCDCoCDCoHwgwqBSb3dzIMKgIHwgQ29zdCDCoHwgwqAgVGltZSDCoCDCoHwgU3RhcnQg
wqB8IEV4ZWNzIHwgwqAgUm93cyDCoCB8IFJlYWQgwqB8IFJlYWQgwqB8IFdyaXRlIHwgV3JpdGUg
fCDCoE1lbSDCoHw8YnI+fCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgKEVzdGltKSB8IMKgIMKgIMKg
IHwgQWN0aXZlKHMpIHwgQWN0aXZlIHwgwqAgwqAgwqAgfCAoQWN0dWFsKSB8IFJlcXMgwqB8IEJ5
dGVzIHwgUmVxcyDCoHwgQnl0ZXMgfCAoTWF4KSB8PGJyPj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJy
PnwgNDEgfCDCoCDCoCDCoCDCoCDCoCDCoElOREVYIFJBTkdFIFNDQU4gwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IFRDWF9QSyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoHwgwqAgwqAgwqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKg
IMKgIMKgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwg
wqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IDQyIHwgwqAgwqAgwqAgwqAgwqAg
SU5ERVggUkFOR0UgU0NBTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8
IFRDWF9QSyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgMSB8
IMKgIMKgIDIgfCDCoCDCoCDCoCDCoCAxIHwgwqAgKzEzMSB8IMKgIMKgIDEgfCDCoCDCoCA5NzZL
IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8
YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+VGhlc2UgdHdvIGxpbmVzIGFyZSB0aGUgb3B0aW9ucyBh
dmFpbGFibGUgYXMgYSByZXN1bHQgb2YgYSBzdGF0aXN0aWNzIGNvbGxlY3RvciBmdXJ0aGVyIHVw
IHRoZSBwbGFuLCBhbmQgb25lIHBsYW4gdGFrZXMgb3BlcmF0aW9uIDQxLCB0aGUgb3RoZXIgdGFr
ZXMgb3BlcmF0aW9uIDQyPGJyPjwvZGl2PjxkaXYgZGlyPSJsdHIiPjxicj48L2Rpdj48ZGl2PlB1
dHRpbmcgdGhlbSBpbnRvIGNvbnRleHQgKGFkZGluZyBpbiBzb21lIHBhcmVudCBhbmQgc2libGlu
ZyByb3dzKTwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+PGJy
Pjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmIj5SZXBvcnRpbmcgb25seSA9
IHRydWUgLi4uIHBsYW4gYmFzZWQgb24gZXN0aW1hdGVzPC9zcGFuPjxicj49PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+fCBJZCB8
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgT3BlcmF0aW9uIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgTmFtZSDCoCDCoCDCoCDCoCDC
oCDCoCDCoHwgwqBSb3dzIMKgIHwgQ29zdCDCoHwgwqAgVGltZSDCoCDCoHwgU3RhcnQgwqB8IEV4
ZWNzIHwgwqAgUm93cyDCoCB8IFJlYWQgwqB8IFJlYWQgwqB8IMKgTWVtIMKgfDxicj58IMKgIMKg
fCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgfCAoRXN0aW0pIHwgwqAgwqAgwqAgfCBBY3RpdmUocykgfCBBY3RpdmUg
fCDCoCDCoCDCoCB8IChBY3R1YWwpIHwgUmVxcyDCoHwgQnl0ZXMgfCAoTWF4KSB8PGJyPj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08
YnI+fCDCoDcgfCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMjc5IHwgwqAg
wqAgKzIgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAg
wqAgLiB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgwqA4
IHwgwqAgwqAgwqAgwqAgwqBIQVNIIEpPSU4gT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIg
fCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8
PGJyPnwgwqA5IHwgwqAgwqAgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDI3OSB8IMKg
IMKgICsyIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKg
IMKgIC4gfDxicj58IDEwIHwgwqAgwqAgwqAgwqAgwqAgwqBTVEFUSVNUSUNTIENPTExFQ1RPUiDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAg
Mjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKg
IMKgIHwgwqAgwqAgLiB8PGJyPnwgMTEgfCDCoCDCoCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMg
T1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAg
wqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8
IMKgIMKgIMKgIHwgwqAgwqAgLiB8PGJyPjxicj4uLi48YnI+fCA0MSB8IMKgIMKgIMKgIMKgIMKg
IMKgSU5ERVggUkFOR0UgU0NBTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oHwgVENYX1BLIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCAx
IHwgwqAgwqAgMiB8IMKgIMKgIMKgIDI3OSB8IMKgIMKgICsyIHwgwqAgwqAyTSB8IMKgIMKgIMKg
IDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IDQyIHwgwqAgwqAgwqAg
wqAgwqAgSU5ERVggUkFOR0UgU0NBTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCB8IFRDWF9QSyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAg
wqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgfCDCoCDCoCDCoCB8
IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8PGJyPnwgNDMg
fCDCoCDCoCDCoCDCoCDCoFRBQkxFIEFDQ0VTUyBCWSBJTkRFWCBST1dJRCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCB8IFRDIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
fCDCoCDCoCDCoCAxIHwgwqAgwqAgMiB8IMKgIMKgIMKgIDI3OSB8IMKgIMKgICsyIHwgwqAgwqAy
TSB8IMKgIMKgIMKgIDJNIHwgMTYwMzcgfCAxMjVNQiB8IMKgIMKgIC4gfCDCoCDCoCDCoCDCoCDC
oHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj48YnI+PGJyPjxzcGFuIHN0eWxlPSJmb250
LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmIj5SZXBvcnRpbmcgb25seSA9IGZhbHNlIC4uLiBwbGFu
IGFkYXB0cyB0byBjb3VudGluZzxicj4oT1BURVJBVElPTiAxMCBkaWN0YXRlcyBhIEhBU0ggSk9J
TiB3aGVyZSB0aGUgZXN0aW1hdGVkIHN0YXRzIHN1Z2dlc3RlZCBOTEopPC9zcGFuPjxicj49PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PTxicj58IElkIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqBPcGVyYXRpb24gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDC
oCDCoCDCoCBOYW1lIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoFJvd3MgwqAgfCBDb3N0IMKgfCDC
oCBUaW1lIMKgIMKgfCBTdGFydCDCoHwgRXhlY3MgfCDCoCBSb3dzIMKgIHwgUmVhZCDCoHwgUmVh
ZCDCoHwgV3JpdGUgfCBXcml0ZSB8IMKgTWVtIMKgfDxicj58IMKgIMKgfCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
fCAoRXN0aW0pIHwgwqAgwqAgwqAgfCBBY3RpdmUocykgfCBBY3RpdmUgfCDCoCDCoCDCoCB8IChB
Y3R1YWwpIHwgUmVxcyDCoHwgQnl0ZXMgfCBSZXFzIMKgfCBCeXRlcyB8IChNYXgpIHw8YnI+PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT08YnI+fCDCoDcgfCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VU
RVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwg
wqAgwqAgwqAgwqAyNyB8IMKgICsxMzEgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDC
oCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IMKgOCB8
IMKgIMKgIMKgIMKgIMKgSEFTSCBKT0lOIE9VVEVSIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDE1NSB8IMKgIMKgICszIHwg
wqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAzMDM1IHwgwqAgMUdCIHwgwqAzMDM1IHwgwqAgMUdC
IHwgMzA5TUIgfDxicj58IMKgOSB8IMKgIMKgIMKgIMKgIMKgIE5FU1RFRCBMT09QUyBPVVRFUiDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgMSB8IMKgIMKgM00gfCDCoCDCoCDC
oCAxMjkgfCDCoCDCoCArMyB8IMKgIMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAg
wqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8PGJyPnwgMTAgfCDCoCDCoCDC
oCDCoCDCoCDCoFNUQVRJU1RJQ1MgQ09MTEVDVE9SIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKg
IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCAxMjkgfCDCoCDCoCArMyB8IMKgIMKgIDEg
fCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKg
IHwgwqAgwqAgLiB8PGJyPnwgMTEgfCDCoCDCoCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VU
RVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAg
wqAgMTI5IHwgwqAgwqAgKzMgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKg
IMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj4uLi48YnI+fCA0MSB8
IMKgIMKgIMKgIMKgIMKgIMKgSU5ERVggUkFOR0UgU0NBTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoHwgVENYX1BLIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgfCDCoCDCoCDCoCAxIHwgwqAgwqAgMiB8IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqB8
IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDC
oCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8PGJyPnwgNDIgfCDCoCDCoCDCoCDCoCDCoCBJTkRFWCBS
QU5HRSBTQ0FOIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgVENYX1BL
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCAxIHwgwqAgwqAg
MiB8IMKgIMKgIMKgIMKgIDEgfCDCoCArMTMxIHwgwqAgwqAgMSB8IMKgIMKgIDk3NksgfCDCoCDC
oCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IDQz
IHwgwqAgwqAgwqAgwqAgwqBUQUJMRSBBQ0NFU1MgQlkgSU5ERVggUk9XSUQgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgfCBUQyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oHwgwqAgwqAgwqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCDCoDI3IHwgwqAgKzEzMSB8IMKgIMKg
Mk0gfCDCoCDCoCDCoCAyTSB8IDIxNTQ5IHwgMTY4TUIgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwg
wqAgwqAgLiB8PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IGRpcj0ibHRyIj48YnI+PC9kaXY+PGRpdiBk
aXI9Imx0ciI+PGRpdj48YnI+PC9kaXY+PGRpdj5BcyB5b3UgY2FuIHNlZSwgdGhlIGFiaWxpdHkg
dG8gc3dpdGNoIHBsYW5zIG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UgdG8gdGhlIGFtb3VudCBvZiB0
aW1lIE9yYWNsZSBzcGVuZHMgd29ya2luZyBiZWZvcmUgaXQgc3RhcnRzIGV4ZWN1dGluZyBzdGVw
IDcgKHN0YXJ0IHRpbWUgPSArMiBzZWNvbmRzIHZzLiArMTMxIHNlY29uZHMpLjwvZGl2PjxkaXY+
PGJyPjwvZGl2PjxkaXY+VGhpcyBvbmUgZXh0cmFjdCBmcm9tIHRoZSBwbGFucyBkb2VzbiYjMzk7
dCBhbnN3ZXIgdGhlIHF1ZXN0aW9uIGFib3V0IHdoeSAmcXVvdDt0YWJsZSBhY2Nlc3MgYnkgaW5k
ZXggcm93aWQgYmF0Y2hlZCZxdW90OyBoYXMgYXBwZWFyZWQ7IG5vciBkb2VzIGl0IGV4cGxhaW4g
dGhlIHRvdGFsIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIGV4ZWN1dGlvbnMgYmVjYXVzZSB5
b3UgYWxzbyBuZWVkIHRvIGxvb2sgYXQgdGhlIHN0YXRpc3RpY3MgY29sbGVjdG9yIGF0IG9wZXJh
dGlvbiA2IGFuZCB0aGUgaW1wYWN0IHRoYXQgaGFzIG9uIHdoaWNoIG9mIG9wZXJhdGlvbiA0NS80
NiBhbmQgNDcvNDggZ2V0IGNob3Nlbi4gVGhlIG90aGVyIHBvaW50IHRoYXQgdGhlbiBjb21lcyB1
cCBpcyB0aGF0IHRoZSBvcmRlciBpbiB3aGljaCBkYXRhIGFwcGVhcnMgZnJvbSBhIGhhc2ggam9p
biBpcyAoYWxtb3N0IGNlcnRhaW5seSkgZGlmZmVyZW50IGZyb20gdGhlIG9yZGVyIGl0IGFwcGVh
cnMgZnJvbSBhIG5lc3RlZCBsb29wIGpvaW4gLSB3aGljaCBtZWFucyB0aGF0IHdoZW4geW91IHVz
ZSB0aGUgcmVzdWx0IG9mIHRoZSBqb2luIHRvIHByb2JlIG90aGVyIHRhYmxlcyBieSBpbmRleCB0
aGUgb3JkZXIgb2YgdGhlIGRyaXZpbmcgZGF0YSBmcm9tIG9uZSBqb2luIG1heSBiZSByb3VnaGx5
IGluIGxpbmUgd2l0aCB0aGUgaW5kZXhlcyBhbmQgZGF0YSBmcm9tIHRoZSBuZXh0IHRhYmxlKHMp
IGluIHRoZSBqb2luIGFuZCBiZW5lZml0IGZyb20gYSBsb3Qgb2YgJnF1b3Q7c2VsZi1pbmR1Y2Vk
JnF1b3Q7IGNhY2hpbmcsIHdoaWxlIHRoZSBvdGhlciBqb2luIG1pZ2h0IHByb2R1Y2UgZGF0YSBp
biB3aGF0IGlzIGVmZmVjdGl2ZWx5IGEgcmFuZG9taXNlZCBvcmRlciByZXN1bHRpbmcgaW4gJnF1
b3Q7c2VsZi1mbHVzaGluZyZxdW90OyBhbmQgbW9yZSByYW5kb20gcmVhZHMgLSBhbmQgdGhhdCBt
aWdodCBleHBsYWluIHdoYXQgaGFwcGVucyBhdCBvcGVyYXRpb25zIDYwLzYxPC9kaXY+PGRpdj48
YnI+PC9kaXY+PGRpdj5XaGF0IG15IG9ic2VydmF0aW9ucyBzdWdnZXN0IGlzIGEgZ29vZCBhcmd1
bWVudCBmb3Igd2h5IHlvdSBoYWQgc3VjaCBhIGRpZmZlcmVuY2UgaW4gcGVyZm9ybWFuY2UsIGFu
ZCB0aGF0IGl0IGhhZCBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGJhdGNoaW5nIG9yIG5vdCBvZiB0
aGUgdGFibGUgYWNjZXNzIGJ5IHJvd2lkLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBtYXkg
d3JpdGUgdGhpcyB1cCBpbiBtb3JlIGRldGFpbCBhcyBhIGJsb2cgc29tZSBkYXksIGJ1dCBJIGRv
biYjMzk7dCBoYXZlIHRpbWUgcmlnaHQgbm93LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+UmVn
YXJkczwvZGl2PjxkaXY+Sm9uYXRoYW4gTGV3aXM8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48YnI+PGRpdj4gPGJyPjwvZGl2PjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9x
dW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPk9uIEZyaSwgOCBPY3QgMjAy
MSBhdCAxODozNCwgUGFwICZsdDs8YSBocmVmPSJtYWlsdG86b3JhY2xlLmRldmVsb3BlcjM1QGdt
YWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPm9yYWNsZS5kZXZlbG9wZXIzNUBnbWFpbC5jb208L2E+
Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls
ZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0
LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPsKgIEl0JiMzOTtzIGZs
dWN0dWF0aW5nLiBJIGFtIG5vdyBub3QgYWJsZSB0byByZXByb2R1Y2UgdGhlIHNjZW5hcmlvwqBm
b3IgdGhhdCBzYW1lIHNtYWxsIHF1ZXJ5IGZvciB3aGljaCBJIGhhZCBwb3N0ZWQgaGVyZSBqdXN0
IGJlZm9yZS7CoCBBbmQgeW91IGFyZSBjb3JyZWN0ICwgSSB3YXMgbHVja2lseSBoYXZpbmcgc3Fs
IG1vbml0b3JzIHNhdmVkLiBJIGFtIGF0dGFjaGluZyB0aG9zZSBoZXJlLsKgSWYgeW91IHNlZSB0
aGF0LCB0aGUgbWFpbiBxdWVyeSB3YXMgc2hvd2luZyB0aG9zZSByb3dpZCBiYXRjaGVkIG9wZXJh
dGlvbnMgd2hlbiB3ZSBoYXZlIHRoZcKgDQoNCm9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdf
b25seSBzZXQgYXMgZGVmYXVsdC9mYWxzZSBhbmQgd2FzIHRha2luZyBhIGxvbmcgdGltZSB0byBm
aW5pc2ggYW5kIGFsc28gdGhlIGZpcnN0IGZldyByb3dzIHdlcmUgYWxzbyB0YWtpbmcgbG9uZ2Vy
IHRvIGdldCBwcm9kdWNlZCBvdXTCoG9mIHRoZSBxdWVyeS4gQnV0IHRoZSBzYW1wbGUgc21hbGwg
cXVlcnkgd2hpY2ggaSBoYWQgcG9zdGVkIGEgY3Vyc29yIHBsYW4gZm9yIHdhcyBqdXN0IHNob3dp
bmcgdGhlwqBvcHBvc2l0ZSBiZWhhdmlvdXIuIFRoYXQgaXMgZ29pbmcgZm9yIGEgcm93aWQgYmF0
Y2hlZCBwYXRoIHdoZW4gb3B0aW1pemVyX2FkYXB0aXZlX3JlcG9ydGluZ19vbmx5IHNldHMgYXMg
dHJ1ZS48ZGl2Pjxicj48L2Rpdj48ZGl2Pkhvd2V2ZXIswqAgbm93IEkgYW0gc2VlaW5nIHRoYXQg
c2FtZSBzbWFsbCBxdWVyeSBpbiBib3RoIHRoZSBjYXNlcyAoaXJyZXNwZWN0aXZlIG9mIHZhbHVl
IG9mIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdfb25seSkgZ29pbmcgZm9yICYjMzk7cm93
aWQgYmF0Y2hlZCYjMzk7IGV4ZWN1dGlvbiBwYXRoLiBOb3Qgc3VyZSBpZiBpdCYjMzk7cyBqdXN0
IHN0YXRzIG9yIGFueXRoaW5nwqBlbHNlIGluZmx1ZW5jaW5nIGFuZCBJIGFtwqBzZWVpbmcgZGlm
ZmVyZW50IHRoaW5nc8KgYmVoYXZpb3VyLiBKdXN0IHRvIG5vdGUgd2UgaGF2ZSAmIzM5O29wdGlt
aXplcl9hZGFwdGl2ZV9wbGFucyYjMzk7IHNldCB0byB0cnVlICwgJiMzOTtvcHRpbWl6ZXJfYWRh
cHRpdmVfc3RhdGlzdGljcyYjMzk7IHNldMKgIHRvIGZhbHNlLiBUaGUgb25seSBjaGFuZ2Ugd2Ug
bWFkZSB3YXMgbW92aW5nICYjMzk7DQoNCm9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdfb25s
eSYjMzk7IGZyb20gZmFsc2UgdG8gdHJ1ZS48L2Rpdj48ZGl2PjxkaXY+PGRpdj48YnI+PC9kaXY+
PGRpdj5BbmQgSm9uYXRoYW4gd2hlbiB5b3Ugc2FpZCB0aGUgb3B0aW1pemVyX2FkYXB0aXZlX3Jl
cG9ydGluZ19vbmx5ID0gdHJ1ZSB3aWxsIGludHJvZHVjZSAmIzM5O3N0YXRpc3RpY3MgY29sbGVj
dG9yJiMzOTsgb3BlcmF0aW9uLCBidXQgaWYgeW91IHNlZSB0aGUgYXR0YWNoZWQgc3FsIG1vbml0
b3IgZm9yIHRoZSBtYWluIHF1ZXJ5LCBpIGFtIHNlZWluZyAmIzM5O3N0YXRpc3RpY3MgY29sbGVj
dG9yJiMzOTsgZXZlbiB3aGVuIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdfb25seSBpcyA9
IGZhbHNlLiBJcyB0aGF0IGV4cGVjdGVkIGJlaGF2aW91cj/CoDwvZGl2PjwvZGl2PjwvZGl2Pjwv
ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGJyPjwvZGl2Pg0KPC9ibG9ja3F1b3Rl
PjwvZGl2Pg0KPGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PC9k
aXY+DQo8L2Jsb2NrcXVvdGU+PC9kaXY+DQo8L2Jsb2NrcXVvdGU+PC9kaXY+DQo=
--000000000000d7da6c05ce035eff--

--
http://www.freelists.org/webpage/oracle-l



