<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>53485</bug_id>
          
          <creation_ts>2011-02-01 05:05:17 -0800</creation_ts>
          <short_desc>Web Workers&apos; shared memory</short_desc>
          <delta_ts>2013-04-13 05:13:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Gabor Loki">loki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>cmarrin</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343153</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-02-01 05:05:17 -0800</bug_when>
    <thetext>The Web Workers are very good feature, for example if a heavy computation is needed in JavaScript, or there is a need to manage shared data through different sessions. Although the current specification and design of Web Workers is robust, the communication interface is based on a message-passing method. This communication channel is not efficient if a large chunk of data have to be moved through the message-passing channel of Web Workers.

One possible solution could be to use a shared memory region for this kind of data passing. If there is shared memory region which is accessible from the main and the worker threads, there will be no need to use the message-passing channel for large data. This will save cpu resources (like converting the raw data for message-passing channel). The peak memory consumption will not be increased because of this method, although the minimal memory consumption will be bigger (with the size of shared memory region of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343154</commentid>
    <comment_count>1</comment_count>
      <attachid>80742</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-02-01 05:06:44 -0800</bug_when>
    <thetext>Created attachment 80742
proof of concept shared memory

I have a patch which shows a proof of concept shared memory feature for workers. The patch is not complete, but it shows what we can achieve with shared memory. I am going to attach an simple example which shows the performance differences between the message-passing and shared memory communication. My measurement was that the communication with shared memory more than 20-30 times faster on x86 and on ARM as well.

The current patch has the following features:

 * create a worker with shared memory

   // create a worker where the &apos;size_of_shared_memory&apos; is the size of shared memory region in bytes.
   new Worker(&quot;worker-file-name.js&quot;, size_of_shared_memory);

 * access the shared memory from the main and the worker thread

   // fill the shared memory from the &apos;initial_pos&apos; offset
   // with the content of &apos;uint32Array&apos; which is an Uint32Array
   worker.setUint32Array(initial_pos, uint32Array);

   // create an Uint32Array which contains &apos;number_of_elements&apos; elements
   // from the &apos;initial_pos&apos; offset of shared memory
   var array = worker.getUint32Array(initial_pos, number_of_elements);
   

Well, as I said this is a proof of concept patch. So, I have a list of issues, which should be addressed before landing. If anyone is interested in this topic and wants get involved, please share your thoughts! I would really appreciate it ;)

Here is my todo list:
 * add more get/set methods for shared memory region (such as getUint8Array, etc).
 * if the workers live in processes, we should use the shared memory of the host system as a shared memory region for workers.
 * design a common class/structure which can be passed to the workers from the main process for both thread- and process-based workers.
 * ensure Shared Web Workers work as expected.
 * propose as an extension for the standard of Web Workers at W3C ;)

What is your thoughts about the concept of workers&apos; shared memory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343155</commentid>
    <comment_count>2</comment_count>
      <attachid>80743</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-02-01 05:08:00 -0800</bug_when>
    <thetext>Created attachment 80743
Example main page for workers&apos; shared memory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343156</commentid>
    <comment_count>3</comment_count>
      <attachid>80744</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-02-01 05:08:37 -0800</bug_when>
    <thetext>Created attachment 80744
Example worker for workers&apos; shared memory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343354</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-01 11:04:36 -0800</bug_when>
    <thetext>To use shared memory, you also need synchronization primitives, such as mutexes and condition variables. It&apos;s a primary design principle of web workers that the complexities of doing proper multithreaded design will not be exposed to JavaScript developers.

There is a definitive need for faster ways to pass data to workers and back, but adding explicit shared state is not an acceptable direction. I&apos;ll go as far as WONTFIX this bug, although discussion of various ideas on speeding things up is certainly welcome.

-#if ENABLE(WEBGL) || ENABLE(BLOB)
+#if ENABLE(ARRAYBUFFERS)

This change has been discussed on webkit-dev recently. I&apos;m not sure if there was a specific outcome - some people were unhappy about adding more feature defines. It clearly needs to be in a separate bug/patch though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80742</attachid>
            <date>2011-02-01 05:06:44 -0800</date>
            <delta_ts>2011-02-01 05:06:44 -0800</delta_ts>
            <desc>proof of concept shared memory</desc>
            <filename>0001-Introduce-workers-shared-memory.patch</filename>
            <type>text/plain</type>
            <size>93656</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSAxYjZhYTIyNDAxYzA2ZTA1YWUyY2QzMmRkMGM5NzY2M2ZlM2IyZWI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogVHVlLCAxIEZlYiAyMDExIDExOjM4OjQzICswMTAwClN1YmplY3Q6IFtQQVRDSF0gSW50cm9k
dWNlIHdvcmtlcnMnIHNoYXJlZCBtZW1vcnkKClNpZ25lZC1vZmYtYnk6IEdhYm9yIExva2kgPGxv
a2lAaW5mLnUtc3plZ2VkLmh1PgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDIzOSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICstCiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDYgKyst
LQogLi4uL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0FycmF5QnVmZmVyLmNwcCAgfCAg
ICA0ICstCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vQXJyYXlCdWZmZXIuaCAg
ICB8ICAgIDAKIC4uLi97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9BcnJheUJ1ZmZlci5p
ZGwgIHwgICAgMiArLQogLi4uL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0FycmF5QnVmZmVyVmll
dy5jcHAgICAgfCAgICA0ICstCiAuLi4vY2FudmFzID0+IGFycmF5YnVmZmVyc30vQXJyYXlCdWZm
ZXJWaWV3LmggICAgICB8ICAgIDAKIC4uLi9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9BcnJheUJ1
ZmZlclZpZXcuaWRsICAgIHwgICAgMiArLQogLi4uL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZl
cnN9L0RhdGFWaWV3LmNwcCAgICAgfCAgICA0ICstCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5
YnVmZmVyc30vRGF0YVZpZXcuaCAgICAgICB8ICAgIDAKIC4uLi97aHRtbC9jYW52YXMgPT4gYXJy
YXlidWZmZXJzfS9EYXRhVmlldy5pZGwgICAgIHwgICAgMiArLQogLi4uL3todG1sL2NhbnZhcyA9
PiBhcnJheWJ1ZmZlcnN9L0Zsb2F0MzJBcnJheS5jcHAgfCAgICA0ICstCiAuLi4ve2h0bWwvY2Fu
dmFzID0+IGFycmF5YnVmZmVyc30vRmxvYXQzMkFycmF5LmggICB8ICAgIDAKIC4uLi97aHRtbC9j
YW52YXMgPT4gYXJyYXlidWZmZXJzfS9GbG9hdDMyQXJyYXkuaWRsIHwgICAgMiArLQogLi4uL3to
dG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0ludDE2QXJyYXkuY3BwICAgfCAgICA0ICstCiAu
Li4ve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vSW50MTZBcnJheS5oICAgICB8ICAgIDAK
IC4uLi97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9JbnQxNkFycmF5LmlkbCAgIHwgICAg
MiArLQogLi4uL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0ludDMyQXJyYXkuY3BwICAg
fCAgICA0ICstCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vSW50MzJBcnJheS5o
ICAgICB8ICAgIDAKIC4uLi97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9JbnQzMkFycmF5
LmlkbCAgIHwgICAgMiArLQogLi4uL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0ludDhB
cnJheS5jcHAgICAgfCAgICA0ICstCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30v
SW50OEFycmF5LmggICAgICB8ICAgIDAKIC4uLi97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJz
fS9JbnQ4QXJyYXkuaWRsICAgIHwgICAgMiArLQogLi4uL0ludGVncmFsVHlwZWRBcnJheUJhc2Uu
aCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAwCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5
YnVmZmVyc30vVHlwZWRBcnJheUJhc2UuaCB8ICAgIDIgKwogLi4uL3todG1sL2NhbnZhcyA9PiBh
cnJheWJ1ZmZlcnN9L1VpbnQxNkFycmF5LmNwcCAgfCAgICA0ICstCiAuLi4ve2h0bWwvY2FudmFz
ID0+IGFycmF5YnVmZmVyc30vVWludDE2QXJyYXkuaCAgICB8ICAgIDAKIC4uLi97aHRtbC9jYW52
YXMgPT4gYXJyYXlidWZmZXJzfS9VaW50MTZBcnJheS5pZGwgIHwgICAgMiArLQogLi4uL3todG1s
L2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L1VpbnQzMkFycmF5LmNwcCAgfCAgICA0ICstCiAuLi4v
e2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vVWludDMyQXJyYXkuaCAgICB8ICAgIDAKIC4u
Li97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9VaW50MzJBcnJheS5pZGwgIHwgICAgMiAr
LQogLi4uL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L1VpbnQ4QXJyYXkuY3BwICAgfCAg
ICA0ICstCiAuLi4ve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vVWludDhBcnJheS5oICAg
ICB8ICAgIDAKIC4uLi97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9VaW50OEFycmF5Lmlk
bCAgIHwgICAgMiArLQogLi4uL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVm
ZmVyQ3VzdG9tLmNwcCB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcCAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEYXRhVmlld0N1c3RvbS5jcHAgICAgfCAgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAgIHwgICAgNCArLQogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcCAgfCAgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAgICB8ICAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwIHwgICAgNCAr
LQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5jcHAgfCAg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3Bw
ICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNw
cCAgICAgIHwgICAxMiArLQogLi4uL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAgfCAgICA2ICstCiAuLi4vYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZm
ZXJDdXN0b20uY3BwICAgICB8ICAgIDQgKy0KIC4uLi9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b20uaCAgIHwgICAgNCArLQogLi4uL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERhdGFWaWV3Q3VzdG9tLmNwcCAgICAgICAgfCAgICA0ICstCiAuLi4vYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNwcCAgICB8ICAgIDQgKy0KIC4uLi9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcCAgICAgIHwgICAgNCArLQogLi4uL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEludDMyQXJyYXlDdXN0b20uY3BwICAgICAgfCAgICA0ICstCiAuLi4v
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcCAgICAgICB8ICAgIDQgKy0K
IC4uLi9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAgICAgIHwgICAg
NCArLQogLi4uL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcCAgICAg
fCAgICA0ICstCiAuLi4vYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAg
ICAgICB8ICAgIDQgKy0KIC4uLi9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bCAgICAgICAgICAgICAgICAgIHwgICAxOCArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0LmNwcCAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlckNvbnRleHQuaCAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCAgIHwgICAxMiArLQogU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCAgICAgfCAgICA2ICstCiAuLi4vd29y
a2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgICAgICB8ICAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5jcHAgICAgIHwgICAgNCAr
LQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmggICAgICAgfCAg
ICA2ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAgICAg
ICB8ICAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgg
ICAgICAgIHwgICAgNiArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwICAgICAg
ICAgICAgICAgICAgfCAgICA5ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oICAg
ICAgICAgICAgICAgICAgICB8ICAgNDcgKysrKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHQuY3BwICAgICAgICAgICB8ICAgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5oICAgICAgICAgICAgIHwgICA0NCArKysrLQogU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmlkbCAgICAgICAgICAgfCAgICA1ICsKIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmggICAgICAgIHwgICAgMyArLQog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgICAgfCAgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggICAgICB8
ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCAgICAgICAg
ICAgIHwgICAgNSArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCAgICAg
ICAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
ICAgICAgICAgICAgICB8ICAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5oICAgICAgICAgICAgICAgIHwgICAgNiArLQogODMgZmlsZXMgY2hhbmdlZCwgNTI5IGluc2Vy
dGlvbnMoKyksIDE3MiBkZWxldGlvbnMoLSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9j
YW52YXMgPT4gYXJyYXlidWZmZXJzfS9BcnJheUJ1ZmZlci5jcHAgKDk3JSkKIHJlbmFtZSBTb3Vy
Y2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9BcnJheUJ1ZmZlci5oICgx
MDAlKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9
L0FycmF5QnVmZmVyLmlkbCAoOTclKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZh
cyA9PiBhcnJheWJ1ZmZlcnN9L0FycmF5QnVmZmVyVmlldy5jcHAgKDk3JSkKIHJlbmFtZSBTb3Vy
Y2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9BcnJheUJ1ZmZlclZpZXcu
aCAoMTAwJSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZm
ZXJzfS9BcnJheUJ1ZmZlclZpZXcuaWRsICg5MyUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUve2h0
bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vRGF0YVZpZXcuY3BwICg5OCUpCiByZW5hbWUgU291
cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vRGF0YVZpZXcuaCAoMTAw
JSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9E
YXRhVmlldy5pZGwgKDk5JSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4g
YXJyYXlidWZmZXJzfS9GbG9hdDMyQXJyYXkuY3BwICg5NiUpCiByZW5hbWUgU291cmNlL1dlYkNv
cmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vRmxvYXQzMkFycmF5LmggKDEwMCUpCiBy
ZW5hbWUgU291cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vRmxvYXQz
MkFycmF5LmlkbCAoOTglKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBh
cnJheWJ1ZmZlcnN9L0ludDE2QXJyYXkuY3BwICg5NiUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUv
e2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vSW50MTZBcnJheS5oICgxMDAlKQogcmVuYW1l
IFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0ludDE2QXJyYXku
aWRsICg5OCUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVm
ZmVyc30vSW50MzJBcnJheS5jcHAgKDk2JSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9j
YW52YXMgPT4gYXJyYXlidWZmZXJzfS9JbnQzMkFycmF5LmggKDEwMCUpCiByZW5hbWUgU291cmNl
L1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vSW50MzJBcnJheS5pZGwgKDk4
JSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9J
bnQ4QXJyYXkuY3BwICg5NiUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+
IGFycmF5YnVmZmVyc30vSW50OEFycmF5LmggKDEwMCUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUv
e2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vSW50OEFycmF5LmlkbCAoOTglKQogcmVuYW1l
IFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaCAoMTAwJSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMg
PT4gYXJyYXlidWZmZXJzfS9UeXBlZEFycmF5QmFzZS5oICg5OSUpCiByZW5hbWUgU291cmNlL1dl
YkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vVWludDE2QXJyYXkuY3BwICg5NyUp
CiByZW5hbWUgU291cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vVWlu
dDE2QXJyYXkuaCAoMTAwJSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4g
YXJyYXlidWZmZXJzfS9VaW50MTZBcnJheS5pZGwgKDk4JSkKIHJlbmFtZSBTb3VyY2UvV2ViQ29y
ZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9VaW50MzJBcnJheS5jcHAgKDk2JSkKIHJl
bmFtZSBTb3VyY2UvV2ViQ29yZS97aHRtbC9jYW52YXMgPT4gYXJyYXlidWZmZXJzfS9VaW50MzJB
cnJheS5oICgxMDAlKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBhcnJh
eWJ1ZmZlcnN9L1VpbnQzMkFycmF5LmlkbCAoOTglKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3to
dG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZlcnN9L1VpbnQ4QXJyYXkuY3BwICg5NiUpCiByZW5hbWUg
U291cmNlL1dlYkNvcmUve2h0bWwvY2FudmFzID0+IGFycmF5YnVmZmVyc30vVWludDhBcnJheS5o
ICgxMDAlKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL3todG1sL2NhbnZhcyA9PiBhcnJheWJ1ZmZl
cnN9L1VpbnQ4QXJyYXkuaWRsICg5OCUpCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYyNjMyZWEuLmMwZGZlNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNDIgQEAKKzIwMTEtMDItMDEgIEdhYm9yIExva2kgIDxs
b2tpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW50cm9kdWNlIHdvcmtlcnMnIHNoYXJlZCBtZW1vcnkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBhcnJheWJ1ZmZl
cnMvQXJyYXlCdWZmZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQXJyYXlCdWZmZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6QXJyYXlCdWZmZXI6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlC
dWZmZXI6OmJ5dGVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXI6On5BcnJh
eUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlcjo6dHJ5QWxsb2NhdGUpOgor
ICAgICAgICAqIGFycmF5YnVmZmVycy9BcnJheUJ1ZmZlci5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaC4KKyAgICAgICAgKiBhcnJheWJ1ZmZl
cnMvQXJyYXlCdWZmZXIuaWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQXJyYXlCdWZmZXIuaWRsLgorICAgICAgICAqIGFycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZp
ZXcuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZm
ZXJWaWV3LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6QXJyYXlCdWZm
ZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6fkFycmF5QnVmZmVy
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlclZpZXc6OnNldEltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6QXJyYXlCdWZmZXJWaWV3Ojp6ZXJvUmFuZ2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OkFycmF5QnVmZmVyVmlldzo6Y2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKToKKyAgICAgICAg
KiBhcnJheWJ1ZmZlcnMvQXJyYXlCdWZmZXJWaWV3Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaC4KKyAgICAgICAgKFdlYkNvcmU6OkFy
cmF5QnVmZmVyVmlldzo6aXNCeXRlQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZm
ZXJWaWV3Ojppc1Vuc2lnbmVkQnl0ZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVm
ZmVyVmlldzo6aXNTaG9ydEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmll
dzo6aXNVbnNpZ25lZFNob3J0QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXJW
aWV3Ojppc0ludEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6aXNV
bnNpZ25lZEludEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6aXNG
bG9hdEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6aXNEYXRhVmll
dyk6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlclZpZXc6OmJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpBcnJheUJ1ZmZlclZpZXc6OmJhc2VBZGRyZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OkFycmF5QnVmZmVyVmlldzo6Ynl0ZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpBcnJh
eUJ1ZmZlclZpZXc6OnZlcmlmeVN1YlJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5QnVm
ZmVyVmlldzo6Y2xhbXBPZmZzZXRBbmROdW1FbGVtZW50cyk6CisgICAgICAgICogYXJyYXlidWZm
ZXJzL0FycmF5QnVmZmVyVmlldy5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsLgorICAgICAgICAqIGFycmF5YnVmZmVycy9EYXRh
Vmlldy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmll
dy5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFWaWV3OjpEYXRhVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpuZWVkVG9GbGlw
Qnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6c3dhcEJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmZsaXBCeXRlc0ZvcjE2Qml0cyk6CisgICAgICAgIChXZWJDb3JlOjpmbGlwQnl0ZXNGb3IzMkJp
dHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmxpcEJ5dGVzRm9yNjRCaXRzKToKKyAgICAgICAgKFdl
YkNvcmU6OmZsaXBCeXRlc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3Ojpn
ZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpzZXREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFWaWV3OjpnZXRJbnQ4KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3
OjpnZXRVaW50OCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6Z2V0SW50MTYpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OmdldFVpbnQxNik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVmlldzo6Z2V0SW50MzIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OmdldFVpbnQz
Mik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6Z2V0RmxvYXQzMik6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVmlldzo6Z2V0RmxvYXQ2NCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmll
dzo6c2V0SW50OCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6c2V0VWludDgpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OnNldEludDE2KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFWaWV3OjpzZXRVaW50MTYpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OnNldEludDMy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpzZXRVaW50MzIpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVZpZXc6OnNldEZsb2F0MzIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6
OnNldEZsb2F0NjQpOgorICAgICAgICAqIGFycmF5YnVmZmVycy9EYXRhVmlldy5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFWaWV3Ojppc0RhdGFWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3
OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OmJ5dGVMZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OnNsaWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFW
aWV3OjpnZXRJbnQxNik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6Z2V0VWludDE2KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpnZXRJbnQzMik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVmlldzo6Z2V0VWludDMyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpnZXRG
bG9hdDMyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpnZXRGbG9hdDY0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpzZXRJbnQxNik6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
Vmlldzo6c2V0VWludDE2KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpzZXRJbnQzMik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6c2V0VWludDMyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFWaWV3OjpzZXRGbG9hdDMyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3Ojpz
ZXRGbG9hdDY0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpiZXlvbmRSYW5nZSk6Cisg
ICAgICAgICogYXJyYXlidWZmZXJzL0RhdGFWaWV3LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbC4KKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMv
RmxvYXQzMkFycmF5LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0Zsb2F0MzJBcnJheS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpGbG9hdDMyQXJyYXk6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheSk6CisgICAg
ICAgIChXZWJDb3JlOjpGbG9hdDMyQXJyYXk6OnN1YnNldCk6CisgICAgICAgICogYXJyYXlidWZm
ZXJzL0Zsb2F0MzJBcnJheS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRmxvYXQzMkFycmF5LmguCisgICAgICAgIChXZWJDb3JlOjpGbG9hdDMyQXJyYXk6OnNldCk6
CisgICAgICAgIChXZWJDb3JlOjpGbG9hdDMyQXJyYXk6Oml0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXQzMkFycmF5Ojppc0Zsb2F0QXJyYXkpOgorICAgICAgICAqIGFycmF5YnVmZmVycy9G
bG9hdDMyQXJyYXkuaWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
RmxvYXQzMkFycmF5LmlkbC4KKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMvSW50MTZBcnJheS5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkludDE2QXJyYXk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnQxNkFycmF5OjpJbnQxNkFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkludDE2QXJyYXk6
OnN1YnNldCk6CisgICAgICAgICogYXJyYXlidWZmZXJzL0ludDE2QXJyYXkuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkludDE2QXJyYXk6OmlzU2hvcnRBcnJheSk6CisgICAgICAgICogYXJyYXlidWZmZXJz
L0ludDE2QXJyYXkuaWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
SW50MTZBcnJheS5pZGwuCisgICAgICAgICogYXJyYXlidWZmZXJzL0ludDMyQXJyYXkuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAuCisg
ICAgICAgIChXZWJDb3JlOjpJbnQzMkFycmF5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW50MzJBcnJheTo6SW50MzJBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpJbnQzMkFycmF5Ojpz
dWJzZXQpOgorICAgICAgICAqIGFycmF5YnVmZmVycy9JbnQzMkFycmF5Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmguCisgICAgICAgIChXZWJD
b3JlOjpJbnQzMkFycmF5OjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW50MzJBcnJheTo6aXNJ
bnRBcnJheSk6CisgICAgICAgICogYXJyYXlidWZmZXJzL0ludDMyQXJyYXkuaWRsOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwuCisgICAgICAg
ICogYXJyYXlidWZmZXJzL0ludDhBcnJheS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW50OEFycmF5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50OEFycmF5OjpJbnQ4QXJyYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50OEFycmF5OjpzdWJzZXQpOgorICAgICAgICAqIGFycmF5YnVmZmVy
cy9JbnQ4QXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDhBcnJheS5oLgorICAgICAgICAoV2ViQ29yZTo6SW50OEFycmF5OjpzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6SW50OEFycmF5Ojppc0J5dGVBcnJheSk6CisgICAgICAgICogYXJyYXlidWZmZXJz
L0ludDhBcnJheS5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQ4QXJyYXkuaWRsLgorICAgICAgICAqIGFycmF5YnVmZmVycy9JbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmguCisgICAgICAgIChXZWJDb3JlOjpJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
OjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZWdyYWxUeXBlZEFycmF5QmFzZTo6aXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlOjpJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlKToKKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMvVHlwZWRBcnJheUJhc2UuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBlZEFycmF5QmFzZTo6ZGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpUeXBlZEFycmF5QmFzZTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVkQXJyYXlCYXNl
OjpzZXRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlZEFycmF5QmFzZTo6emVyb1Jhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVkQXJyYXlCYXNlOjpsZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6VHlwZWRBcnJheUJhc2U6OmJ5dGVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6
VHlwZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVk
QXJyYXlCYXNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VHlwZWRBcnJheUJhc2U6OnN1
YnNldEltcGwpOgorICAgICAgICAqIGFycmF5YnVmZmVycy9VaW50MTZBcnJheS5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpVaW50MTZBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVp
bnQxNkFycmF5OjpVaW50MTZBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpVaW50MTZBcnJheTo6
c3Vic2V0KToKKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMvVWludDE2QXJyYXkuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmguCisgICAgICAgIChX
ZWJDb3JlOjpVaW50MTZBcnJheTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVpbnQxNkFycmF5
Ojppc1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgICogYXJyYXlidWZmZXJzL1VpbnQxNkFy
cmF5LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFy
cmF5LmlkbC4KKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMvVWludDMyQXJyYXkuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6VWludDMyQXJyYXk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVaW50
MzJBcnJheTo6VWludDMyQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VWludDMyQXJyYXk6OnN1
YnNldCk6CisgICAgICAgICogYXJyYXlidWZmZXJzL1VpbnQzMkFycmF5Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5oLgorICAgICAgICAoV2Vi
Q29yZTo6VWludDMyQXJyYXk6OnNldCk6CisgICAgICAgIChXZWJDb3JlOjpVaW50MzJBcnJheTo6
aXNVbnNpZ25lZEludEFycmF5KToKKyAgICAgICAgKiBhcnJheWJ1ZmZlcnMvVWludDMyQXJyYXku
aWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXku
aWRsLgorICAgICAgICAqIGFycmF5YnVmZmVycy9VaW50OEFycmF5LmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6VWludDhBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVpbnQ4QXJyYXk6
OlVpbnQ4QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VWludDhBcnJheTo6c3Vic2V0KToKKyAg
ICAgICAgKiBhcnJheWJ1ZmZlcnMvVWludDhBcnJheS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oLgorICAgICAgICAoV2ViQ29yZTo6VWludDhB
cnJheTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVpbnQ4QXJyYXk6OmlzVW5zaWduZWRCeXRl
QXJyYXkpOgorICAgICAgICAqIGFycmF5YnVmZmVycy9VaW50OEFycmF5LmlkbDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsLgorICAgICAgICAq
IGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RhdGFWaWV3
Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Vp
bnQxNkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5
Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTV29ya2VyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTV29ya2VyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTWE1MSHR0cFJlcXVlc3Q6Om1hcmtDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpK
U1hNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVl
c3Q6OnJlc3BvbnNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
ckN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJW
aWV3Q3VzdG9tLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0MzJBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MTZBcnJheUN1c3RvbS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JHZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6c2VuZENhbGxiYWNrKToKKyAgICAgICAg
KiBmZWF0dXJlcy5wcmk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAq
IHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KToKKyAgICAgICAg
KiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
ZGljYXRlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2Vy
VGhyZWFkOjpjcmVhdGVXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJl
cG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnk6OndvcmtlclNjcmlwdExvYWRlZCk6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3Jr
ZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlckNvbnRleHQ6OlNo
YXJlZFdvcmtlckNvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMv
U2hhcmVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Z2V0
VWludDMyQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpzZXRVaW50MzJBcnJheSk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmdldFR5cGVkQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyOjpzZXRUeXBlZEFycmF5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5p
ZGw6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6Z2V0VWludDMy
QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6c2V0VWludDMyQXJyYXkp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6Z2V0VHlwZWRBcnJheSk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpzZXRUeXBlZEFycmF5KToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4
dFByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
OjpXb3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJU
aHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpz
ZXRSZXNwb25zZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVE
YXRhKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKwogMjAxMS0wMS0yNyAgR3Jl
ZyBDb2xldHRhICA8Z3JlZy5jb2xldHRhQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBMYXN6bG8gR29tYm9zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA0M2VhNDgzLi5kZDQzOTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQpAQCAtNzAsNiArNzAsMTYgQEAgdjggewogfQogCiBJRExfQklORElOR1MgKz0g
XAorICAgIGFycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKKyAgICBhcnJheWJ1ZmZl
cnMvQXJyYXlCdWZmZXIuaWRsIFwKKyAgICBhcnJheWJ1ZmZlcnMvRGF0YVZpZXcuaWRsIFwKKyAg
ICBhcnJheWJ1ZmZlcnMvSW50OEFycmF5LmlkbCBcCisgICAgYXJyYXlidWZmZXJzL0ludDE2QXJy
YXkuaWRsIFwKKyAgICBhcnJheWJ1ZmZlcnMvSW50MzJBcnJheS5pZGwgXAorICAgIGFycmF5YnVm
ZmVycy9VaW50OEFycmF5LmlkbCBcCisgICAgYXJyYXlidWZmZXJzL1VpbnQxNkFycmF5LmlkbCBc
CisgICAgYXJyYXlidWZmZXJzL1VpbnQzMkFycmF5LmlkbCBcCisgICAgYXJyYXlidWZmZXJzL0Zs
b2F0MzJBcnJheS5pZGwgXAogICAgIGNzcy9Db3VudGVyLmlkbCBcCiAgICAgY3NzL0NTU0NoYXJz
ZXRSdWxlLmlkbCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApAQCAtMTgzLDEzICsx
OTMsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGZpbGVhcGkvRmxhZ3MuaWRsIFwKICAgICBm
aWxlYXBpL01ldGFkYXRhLmlkbCBcCiAgICAgZmlsZWFwaS9NZXRhZGF0YUNhbGxiYWNrLmlkbCBc
Ci0gICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmlkbCBcCi0gICAgaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaWRsIFwKLSAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgXAotICAgIGh0
bWwvY2FudmFzL0ludDhBcnJheS5pZGwgXAotICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5p
ZGwgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmlkbCBcCi0gICAgaHRtbC9jYW52
YXMvSW50MzJBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsIFwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCkBAIC0yMDMsMTMgKzIwNyw5IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRs
IFwKICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICBodG1s
L2NhbnZhcy9XZWJHTFNoYWRlci5pZGwgXAotICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRs
IFwKICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsIFwKICAgICBodG1sL2NhbnZhcy9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwgXAogICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmlkbCBcCi0gICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXAotICAgIGh0bWwvY2Fu
dmFzL1VpbnQzMkFycmF5LmlkbCBcCi0gICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmlkbCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxp
c3QuaWRsIFwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGM2
Y2FhMmEuLmI1NDBmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMjUsNiArMjI1LDcgQEAgdjggewog
V0VCQ09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFBXRCBcCiAgICAgJCRQV0QvYWNjZXNzaWJp
bGl0eSBcCisgICAgJCRQV0QvYXJyYXlidWZmZXJzIFwKICAgICAkJFBXRC9iaW5kaW5ncyBcCiAg
ICAgJCRQV0QvYmluZGluZ3MvZ2VuZXJpYyBcCiAgICAgJCRQV0QvYnJpZGdlIFwKQEAgLTM3NTks
MjMgKzM3NjAsMjMgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQl9TT0NLRVRTPTEpIHsK
ICAgICB9CiB9CiAKLWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9CTE9CPTEpIHwgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1dFQkdMPTEpIHsKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9BUlJB
WUJVRkZFUlM9MSkgewogICAgICF2OCB7CiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAg
ICAgYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAogICAgIH0KIAogICAgIEhF
QURFUlMgKz0gXAotICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oIFwKLSAgICAgICAg
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmggXAotICAgICAgICBodG1sL2NhbnZhcy9EYXRh
Vmlldy5oIFwKLSAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmggXAotICAgICAgICBodG1s
L2NhbnZhcy9GbG9hdDMyQXJyYXkuaCBcCi0gICAgICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXku
aCBcCi0gICAgICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuaCBcCi0gICAgICAgIGh0bWwvY2Fu
dmFzL1VpbnQ4QXJyYXkuaCBcCi0gICAgICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmggXAot
ICAgICAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJheS5oCisgICAgICAgIGFycmF5YnVmZmVycy9B
cnJheUJ1ZmZlci5oIFwKKyAgICAgICAgYXJyYXlidWZmZXJzL0FycmF5QnVmZmVyVmlldy5oIFwK
KyAgICAgICAgYXJyYXlidWZmZXJzL0RhdGFWaWV3LmggXAorICAgICAgICBhcnJheWJ1ZmZlcnMv
SW50OEFycmF5LmggXAorICAgICAgICBhcnJheWJ1ZmZlcnMvSW50MTZBcnJheS5oIFwKKyAgICAg
ICAgYXJyYXlidWZmZXJzL0ludDMyQXJyYXkuaCBcCisgICAgICAgIGFycmF5YnVmZmVycy9VaW50
OEFycmF5LmggXAorICAgICAgICBhcnJheWJ1ZmZlcnMvVWludDE2QXJyYXkuaCBcCisgICAgICAg
IGFycmF5YnVmZmVycy9VaW50MzJBcnJheS5oIFwKKyAgICAgICAgYXJyYXlidWZmZXJzL0Zsb2F0
MzJBcnJheS5oIFwKIAogICAgICF2OCB7CiAgICAgICAgIFNPVVJDRVMgKz0gXApAQCAtMzc4OSwx
OCArMzc5MCwxOSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQj0xKSB8IGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU1Vp
bnQzMkFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU1VpbnQxNkFy
cmF5Q3VzdG9tLmNwcAogICAgIH0KKwogICAgIFNPVVJDRVMgKz0gXAotICAgICAgICBodG1sL2Nh
bnZhcy9BcnJheUJ1ZmZlci5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuY3BwIFwKLSAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKLSAgICAgICAgaHRt
bC9jYW52YXMvSW50OEFycmF5LmNwcCBcCi0gICAgICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJh
eS5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmNwcCBcCi0gICAgICAgIGh0
bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwIFwKLSAgICAgICAgaHRtbC9jYW52YXMvVWludDhBcnJh
eS5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAgXAotICAgICAgICBo
dG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAKLSAgICB9CisgICAgICAgIGFycmF5YnVmZmVycy9B
cnJheUJ1ZmZlci5jcHAgXAorICAgICAgICBhcnJheWJ1ZmZlcnMvQXJyYXlCdWZmZXJWaWV3LmNw
cCBcCisgICAgICAgIGFycmF5YnVmZmVycy9EYXRhVmlldy5jcHAgXAorICAgICAgICBhcnJheWJ1
ZmZlcnMvSW50OEFycmF5LmNwcCBcCisgICAgICAgIGFycmF5YnVmZmVycy9JbnQxNkFycmF5LmNw
cCBcCisgICAgICAgIGFycmF5YnVmZmVycy9JbnQzMkFycmF5LmNwcCBcCisgICAgICAgIGFycmF5
YnVmZmVycy9VaW50OEFycmF5LmNwcCBcCisgICAgICAgIGFycmF5YnVmZmVycy9VaW50MTZBcnJh
eS5jcHAgXAorICAgICAgICBhcnJheWJ1ZmZlcnMvVWludDMyQXJyYXkuY3BwIFwKKyAgICAgICAg
YXJyYXlidWZmZXJzL0Zsb2F0MzJBcnJheS5jcHAKK30KIAogY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1dFQkdMPTEpIHsKICAgICB0b2JlfCF0b2JlOiBRVCArPSBvcGVuZ2wKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlci5jcHAKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVu
YW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCnJlbmFt
ZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvQXJyYXlCdWZmZXIuY3BwCmluZGV4IDQ5
YzA1ZDkuLmM4YzA1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvQXJyYXlCdWZm
ZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVO
QUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKIAog
I2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAKQEAgLTEwMSw0ICsxMDEsNCBAQCB2b2lkKiBBcnJh
eUJ1ZmZlcjo6dHJ5QWxsb2NhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1l
bnRCeXRlU2l6ZSkKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxP
QikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVm
ZmVycy9BcnJheUJ1ZmZlci5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9hcnJheWJ1ZmZlcnMvQXJyYXlCdWZmZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZm
ZXJzL0FycmF5QnVmZmVyLmlkbApzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5pZGwKcmVuYW1lIHRvIFNvdXJjZS9X
ZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlci5pZGwKaW5kZXggMmZiYTZlOC4uYzBiOTk2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlci5pZGwKQEAgLTI2
LDcgKzI2LDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIENv
bmRpdGlvbmFsPVdFQkdMfEJMT0IsCisgICAgICAgIENvbmRpdGlvbmFsPUFSUkFZQlVGRkVSUywK
ICAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rp
b24sCiAgICAgICAgIE5vU3RhdGljVGFibGVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVm
ZmVycy9BcnJheUJ1ZmZlclZpZXcuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTclCnJlbmFtZSBmcm9t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5jcHAKcmVuYW1lIHRv
IFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZpZXcuY3BwCmluZGV4IDJj
ZTRmNDYuLmMxNmZlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0FycmF5
QnVmZmVyVmlldy5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZG
RVJTKQogCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAKQEAgLTEwNiw0ICsxMDYsNCBA
QCB2b2lkIEFycmF5QnVmZmVyVmlldzo6Y2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFy
dCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYQogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wp
IHx8IEVOQUJMRShCTE9CKQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZpZXcuaApzaW1pbGFyaXR5IGluZGV4
IDEwMCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZp
ZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9BcnJheUJ1ZmZlclZpZXcuaWRs
CnNpbWlsYXJpdHkgaW5kZXggOTMlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyVmlldy5pZGwKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVm
ZmVycy9BcnJheUJ1ZmZlclZpZXcuaWRsCmluZGV4IDkzNmY2ZWQuLmQzZmM1MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0FycmF5QnVmZmVyVmlldy5pZGwKQEAgLTI0LDcg
KzI0LDcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25h
bD1XRUJHTHxCTE9CLCBDdXN0b21Ub0pTLCBOb1N0YXRpY1RhYmxlcywgT21pdENvbnN0cnVjdG9y
XSBBcnJheUJ1ZmZlclZpZXcgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9QVJSQVlCVUZG
RVJTLCBDdXN0b21Ub0pTLCBOb1N0YXRpY1RhYmxlcywgT21pdENvbnN0cnVjdG9yXSBBcnJheUJ1
ZmZlclZpZXcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgYnVmZmVy
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0Owog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBieXRlTGVuZ3RoOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYXJyYXlidWZmZXJzL0RhdGFWaWV3LmNwcApzaW1pbGFyaXR5IGluZGV4IDk4JQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKcmVuYW1l
IHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9EYXRhVmlldy5jcHAKaW5kZXggMjg1OThi
Ny4uMGQzZjAyNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9EYXRhVmlldy5jcHAKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdM
KSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogCiAjaW5jbHVkZSAi
RGF0YVZpZXcuaCIKIApAQCAtMjMyLDQgKzIzMiw0IEBAIHZvaWQgRGF0YVZpZXc6OnNldEZsb2F0
NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwK
IAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAv
LyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvRGF0YVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9EYXRhVmlldy5o
CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvRGF0
YVZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcu
aWRsIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0RhdGFWaWV3LmlkbApzaW1pbGFyaXR5
IGluZGV4IDk5JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmll
dy5pZGwKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9EYXRhVmlldy5pZGwK
aW5kZXggYzQwM2YwOS4uOGE1NzYyMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvRGF0YVZpZXcuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9EYXRh
Vmlldy5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVdFQkdMfEJMT0IsCisgICAgICAgIENvbmRpdGlvbmFs
PUFSUkFZQlVGRkVSUywKICAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKICAgICAgICAgQ3VzdG9t
Q29uc3RydWN0RnVuY3Rpb24sCiAgICAgICAgIEN1c3RvbVRvSlMsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YXJyYXlidWZmZXJzL0Zsb2F0MzJBcnJheS5jcHAKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1l
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcApyZW5hbWUg
dG8gU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0Zsb2F0MzJBcnJheS5jcHAKaW5kZXggMTVj
M2ZmNi4uYWVmNDdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxv
YXQzMkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvRmxvYXQzMkFy
cmF5LmNwcApAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBF
TkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAK
ICNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKIApAQCAtNjQsNCArNjQsNCBAQCBQYXNzUmVmUHRy
PEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpzdWJzZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdAogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2Vu
ZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9G
bG9hdDMyQXJyYXkuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3Jl
L2FycmF5YnVmZmVycy9GbG9hdDMyQXJyYXkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVy
cy9GbG9hdDMyQXJyYXkuaWRsCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKcmVuYW1lIHRvIFNvdXJjZS9X
ZWJDb3JlL2FycmF5YnVmZmVycy9GbG9hdDMyQXJyYXkuaWRsCmluZGV4IGI4YTkzZTEuLmEwYTcx
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0Zsb2F0MzJBcnJheS5pZGwKQEAg
LTI2LDcgKzI2LDcgQEAKIAogbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCi0gICAgICAg
IENvbmRpdGlvbmFsPVdFQkdMfEJMT0IsCisgICAgICAgIENvbmRpdGlvbmFsPUFSUkFZQlVGRkVS
UywKICAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVu
Y3Rpb24sCiAgICAgICAgIFY4Q3VzdG9tQ29uc3RydWN0b3IsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5
YnVmZmVycy9JbnQxNkFycmF5LmNwcApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcApyZW5hbWUgdG8gU291cmNl
L1dlYkNvcmUvYXJyYXlidWZmZXJzL0ludDE2QXJyYXkuY3BwCmluZGV4IGZjMWNiY2UuLjRmOWM5
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9JbnQxNkFycmF5LmNwcApAQCAtMjUs
NyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8
IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJJbnQx
NkFycmF5LmgiCiAKQEAgLTYzLDQgKzYzLDQgQEAgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpzdWJzZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogCiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJV
RkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmggYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50MTZBcnJheS5oCnNpbWlsYXJpdHkg
aW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9JbnQxNkFycmF5LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsIGIv
U291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0ludDE2QXJyYXkuaWRsCnNpbWlsYXJpdHkgaW5k
ZXggOTglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXku
aWRsCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50MTZBcnJheS5pZGwK
aW5kZXggYTY3M2ZlNC4uZmNiNzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50MTZBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0lu
dDE2QXJyYXkuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAKIG1vZHVsZSBodG1sIHsKICAgICBpbnRl
cmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1XRUJHTHxCTE9CLAorICAgICAgICBDb25kaXRp
b25hbD1BUlJBWUJVRkZFUlMsCiAgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCiAgICAgICAgIEN1
c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAogICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50MzJBcnJheS5jcHAKc2ltaWxhcml0eSBpbmRleCA5
NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAK
cmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9JbnQzMkFycmF5LmNwcAppbmRl
eCA5ZTdmM2EwLi5mZDczMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQzMkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50MzJB
cnJheS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYg
RU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQog
CiAjaW5jbHVkZSAiSW50MzJBcnJheS5oIgogCkBAIC02NCw0ICs2NCw0IEBAIFBhc3NSZWZQdHI8
SW50MzJBcnJheT4gSW50MzJBcnJheTo6c3Vic2V0KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QK
IAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAv
LyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50MzJBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0ludDMyQXJy
YXkuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZl
cnMvSW50MzJBcnJheS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9JbnQzMkFycmF5Lmlk
bApzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQzMkFycmF5LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJz
L0ludDMyQXJyYXkuaWRsCmluZGV4IDhmOTM0OTMuLmY0MzcyZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FycmF5YnVmZmVycy9JbnQzMkFycmF5LmlkbApAQCAtMjYsNyArMjYsNyBAQAogCiBtb2R1bGUg
aHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0x8QkxPQiwK
KyAgICAgICAgQ29uZGl0aW9uYWw9QVJSQVlCVUZGRVJTLAogICAgICAgICBDYW5CZUNvbnN0cnVj
dGVkLAogICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKICAgICAgICAgVjhDdXN0b21D
b25zdHJ1Y3RvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhB
cnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50OEFycmF5LmNwcApzaW1p
bGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQ4QXJyYXkuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvSW50OEFy
cmF5LmNwcAppbmRleCA5MjA3Njg2Li5lMmU4ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVm
ZmVycy9JbnQ4QXJyYXkuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZ
QlVGRkVSUykKIAogI2luY2x1ZGUgIkludDhBcnJheS5oIgogCkBAIC02NCw0ICs2NCw0IEBAIFBh
c3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OnN1YnNldChpbnQgc3RhcnQsIGludCBlbmQp
IGNvbnN0CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisj
ZW5kaWYgLy8gRU5BQkxFKEFSUkFZQlVGRkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0ludDhBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0lu
dDhBcnJheS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvYXJyYXli
dWZmZXJzL0ludDhBcnJheS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQ4QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0ludDhBcnJheS5p
ZGwKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50OEFycmF5LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJz
L0ludDhBcnJheS5pZGwKaW5kZXggMDIyOTY1OS4uZWM2NDAwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
cnJheWJ1ZmZlcnMvSW50OEFycmF5LmlkbApAQCAtMjYsNyArMjYsNyBAQAogCiBtb2R1bGUgaHRt
bCB7CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0x8QkxPQiwKKyAg
ICAgICAgQ29uZGl0aW9uYWw9QVJSQVlCVUZGRVJTLAogICAgICAgICBDYW5CZUNvbnN0cnVjdGVk
LAogICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKICAgICAgICAgVjhDdXN0b21Db25z
dHJ1Y3RvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludGVncmFs
VHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FycmF5YnVmZmVycy9UeXBlZEFycmF5QmFzZS5oCnNpbWlsYXJpdHkgaW5kZXgg
OTklCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNl
LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9UeXBlZEFycmF5QmFzZS5o
CmluZGV4IDMyYTE5OGUuLmFlZDJlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1R5cGVkQXJyYXlCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJz
L1R5cGVkQXJyYXlCYXNlLmgKQEAgLTM1LDYgKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJh
eUJ1ZmZlclZpZXcgewogICBwdWJsaWM6CisgICAgdHlwZWRlZiBUIEFycmF5QmFzZVR5cGU7CisK
ICAgICBUKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KGJhc2VBZGRyZXNz
KCkpOyB9CiAKICAgICB2b2lkIHNldChUeXBlZEFycmF5QmFzZTxUPiogYXJyYXksIHVuc2lnbmVk
IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMv
VWludDE2QXJyYXkuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTclCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNv
cmUvYXJyYXlidWZmZXJzL1VpbnQxNkFycmF5LmNwcAppbmRleCA2ZjYzODllLi5jYzRmMTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQxNkFycmF5LmNwcApAQCAtMjYsNyAr
MjYsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVO
QUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJVaW50MTZB
cnJheS5oIgogCkBAIC02NCw0ICs2NCw0IEBAIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IFVpbnQx
NkFycmF5OjpzdWJzZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogCiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJV
RkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJh
eS5oIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQxNkFycmF5LmgKc2ltaWxhcml0
eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQx
NkFycmF5LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9VaW50MTZBcnJh
eS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDE2QXJyYXkuaWRsCnNpbWlsYXJp
dHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQx
NkFycmF5LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQxNkFy
cmF5LmlkbAppbmRleCBlMzJmN2EwLi5kYWEwY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYXJyYXli
dWZmZXJzL1VpbnQxNkFycmF5LmlkbApAQCAtMjYsNyArMjYsNyBAQAogCiBtb2R1bGUgaHRtbCB7
CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0x8QkxPQiwKKyAgICAg
ICAgQ29uZGl0aW9uYWw9QVJSQVlCVUZGRVJTLAogICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAog
ICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKICAgICAgICAgVjhDdXN0b21Db25zdHJ1
Y3RvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9VaW50MzJBcnJheS5jcHAKc2ltaWxh
cml0eSBpbmRleCA5NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWlu
dDMyQXJyYXkuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDMy
QXJyYXkuY3BwCmluZGV4IDU2ZGIxNTIuLjI4M2FjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJh
eWJ1ZmZlcnMvVWludDMyQXJyYXkuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxF
KEFSUkFZQlVGRkVSUykKIAogI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCiAKQEAgLTY0LDQgKzY0
LDQgQEAgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnN1YnNldChpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkgfHwgRU5B
QkxFKEJMT0IpCisjZW5kaWYgLy8gRU5BQkxFKEFSUkFZQlVGRkVSUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9h
cnJheWJ1ZmZlcnMvVWludDMyQXJyYXkuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQzMkFycmF5LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Fy
cmF5YnVmZmVycy9VaW50MzJBcnJheS5pZGwKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCnJlbmFtZSB0byBT
b3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDMyQXJyYXkuaWRsCmluZGV4IDI4NzA2MmUu
LjdjNjNmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFy
cmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDMyQXJyYXkuaWRs
CkBAIC0yNiw3ICsyNiw3IEBACiAKIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwotICAg
ICAgICBDb25kaXRpb25hbD1XRUJHTHxCTE9CLAorICAgICAgICBDb25kaXRpb25hbD1BUlJBWUJV
RkZFUlMsCiAgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCiAgICAgICAgIEN1c3RvbUNvbnN0cnVj
dEZ1bmN0aW9uLAogICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
cnJheWJ1ZmZlcnMvVWludDhBcnJheS5jcHAKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKcmVuYW1lIHRvIFNv
dXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9VaW50OEFycmF5LmNwcAppbmRleCBkN2NjN2EwLi40
MGI5OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDhBcnJheS5jcHAKQEAg
LTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdM
KSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogCiAjaW5jbHVkZSAi
VWludDhBcnJheS5oIgogCkBAIC02NCw0ICs2NCw0IEBAIFBhc3NSZWZQdHI8VWludDhBcnJheT4g
VWludDhBcnJheTo6c3Vic2V0KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKIAogfQogCi0jZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJS
QVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhB
cnJheS5oIGIvU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQ4QXJyYXkuaApzaW1pbGFy
aXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9hcnJheWJ1ZmZlcnMvVWludDhBcnJh
eS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVycy9VaW50OEFycmF5LmlkbApzaW1pbGFyaXR5
IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvYXJyYXlidWZmZXJzL1VpbnQ4QXJyYXku
aWRsCmluZGV4IDI3ODliMzUuLmM1MDQ2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FycmF5YnVmZmVy
cy9VaW50OEFycmF5LmlkbApAQCAtMjYsNyArMjYsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAgICAg
aW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0x8QkxPQiwKKyAgICAgICAgQ29u
ZGl0aW9uYWw9QVJSQVlCVUZGRVJTLAogICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAogICAgICAg
ICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKICAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKaW5kZXggZjIyNDljNy4uYzJlNWFmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
QEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHdlYmtpdEF1ZGlvQ29u
dGV4dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkF1ZGlvRW5hYmxlZDsgfQogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMp
CiAgICAgc3RhdGljIHZvaWQgc2V0V2ViR0xFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzV2Vi
R0xFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgYXJyYXlCdWZmZXJFbmFi
bGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBpbnQ4QXJy
YXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAKaW5kZXggZGIxNmQzZC4u
YzUyM2EyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlckN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZG
RVJTKQogCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogCkBAIC01NCw0ICs1NCw0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU0FycmF5QnVmZmVyKEV4CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjZW5kaWYgLy8gRU5BQkxFKEFSUkFZ
QlVGRkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCA2YWZiZGJlLi4wM2MyMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBACiAjaW5j
bHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm90b3R5cGVG
dW5jdGlvbi5oPgogCi0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFC
TEUoQVJSQVlCVUZGRVJTKQogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJK
U0RhdGFWaWV3LmgiCiAjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuaCIKQEAgLTUzOCw3ICs1Mzgs
NyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojp3ZWJLaXRDU1NNYXRyaXgoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1dlYktpdENTU01hdHJpeENv
bnN0cnVjdG9yPihleGVjLCB0aGlzKTsKIH0KICAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJM
RShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiBKU1ZhbHVlIEpTRE9NV2luZG93Ojph
cnJheUJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldERPTUNv
bnN0cnVjdG9yPEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCmluZGV4IDIyZDY3
NzkuLjU0ZTc2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0
YVZpZXdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZp
ZXdDdXN0b20uY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAot
I2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVS
UykKIAogI2luY2x1ZGUgIkpTRGF0YVZpZXcuaCIKIApAQCAtMTYxLDQgKzE2MSw0IEBAIEpTVmFs
dWUgSlNEYXRhVmlldzo6c2V0VWludDgoRXhlY1N0YXRlKiBleGVjKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2Vu
ZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggNjUyNDllYi4uOTg4ODEzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3Vz
dG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBF
TkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAK
ICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogCkBAIC02Myw0ICs2Myw0IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNGbG9hdDMyQXJyYXkoCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjZW5kaWYgLy8gRU5BQkxFKEFSUkFZQlVGRkVS
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20u
Y3BwCmluZGV4IGE5NmQ1YjMuLmVmZTlkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lm
IEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJKU0ludDE2QXJyYXkuaCIKIApAQCAt
NjMsNCArNjMsNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50MTZBcnJheUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDE2QXJyYXkoRXhlYwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2VuZGlm
IC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCAxMjdmMjc1Li41MGExY2YyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdM
KSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogCiAjaW5jbHVkZSAi
SlNJbnQzMkFycmF5LmgiCiAKQEAgLTYzLDQgKzYzLDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQzMkFycmF5KEV4
ZWMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8
fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IGQzM2Nl
ZDUuLjllMTc0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhB
cnJheUN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZG
RVJTKQogCiAjaW5jbHVkZSAiSlNJbnQ4QXJyYXkuaCIKIApAQCAtNjQsNCArNjQsNCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTSW50OEFycmF5KEV4ZWNTdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJV
RkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwCmluZGV4IDhiOGFiMTcuLjA2MzFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJM
T0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKIAogI2luY2x1ZGUgIkpTVWludDE2QXJyYXku
aCIKIApAQCAtNjMsNCArNjMsNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVWlu
dDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MTZBcnJheShFeAogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9C
KQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IDAxNmFmNDEuLjk2ODc5
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlD
dXN0b20uY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lm
IEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykK
IAogI2luY2x1ZGUgIkpTVWludDMyQXJyYXkuaCIKIApAQCAtNjMsNCArNjMsNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNVaW50MzJBcnJheShFeAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2VuZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZF
UlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9t
LmNwcAppbmRleCA0NzQyMTJhLi5kNzMzZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNp
ZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAKQEAg
LTYzLDQgKzYzLDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1VpbnQ4QXJyYXlD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50OEFycmF5KEV4ZWMKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRp
ZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDdXN0b20uY3BwCmluZGV4IDI3NTgwYWUuLjhjYmYyOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKQEAgLTUxLDcgKzUyLDE2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXb3JrZXIoRXhlY1N0YXRl
KiBlCiAgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1l
bnRzIikpOwogCisgICAgLy8gU2NyaXB0IFVSTAogICAgIFVTdHJpbmcgc2NyaXB0VVJMID0gZXhl
Yy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CisKKyAgICAvLyBXb3JrZXJzJyBzaGFyZWQg
ZGF0YSBsZW5ndGgKKyAgICBsb25nIHNoYXJlZERhdGFMZW5ndGggPSAwOworI2lmIEVOQUJMRShX
T1JLRVJTX1NIQVJFRF9NRU1PUlkpCisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEp
CisgICAgICAgIHNoYXJlZERhdGFMZW5ndGggPSBleGVjLT5hcmd1bWVudCgxKS50b1VJbnQzMihl
eGVjKTsKKyNlbmRpZgorCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAKQEAgLTU5LDcgKzY5LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dvcmtlckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U1dvcmtlcihFeGVjU3RhdGUqIGUKICAgICBET01XaW5kb3cqIHdpbmRvdyA9IGFzSlNET01XaW5k
b3coZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpOwogCiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPFdvcmtlcj4gd29ya2VyID0gV29ya2VyOjpjcmVhdGUo
dXN0cmluZ1RvU3RyaW5nKHNjcmlwdFVSTCksIHdpbmRvdy0+ZG9jdW1lbnQoKSwgZWMpOworICAg
IFJlZlB0cjxXb3JrZXI+IHdvcmtlciA9IFdvcmtlcjo6Y3JlYXRlKHVzdHJpbmdUb1N0cmluZyhz
Y3JpcHRVUkwpLCB3aW5kb3ctPmRvY3VtZW50KCksIHNoYXJlZERhdGFMZW5ndGgsIGVjKTsKICAg
ICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCAxZDZmMWNi
Li4yZTYxM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEpTWE1MSHR0cFJl
cXVlc3Q6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKICAgICBpZiAoRG9jdW1l
bnQqIHJlc3BvbnNlRG9jdW1lbnQgPSBtX2ltcGwtPm9wdGlvbmFsUmVzcG9uc2VYTUwoKSkKICAg
ICAgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNrLCAqSGVhcDo6aGVhcCh0aGlzKS0+
Z2xvYmFsRGF0YSgpLCByZXNwb25zZURvY3VtZW50KTsKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwg
RU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKICAgICBpZiAoQXJyYXlCdWZm
ZXIqIHJlc3BvbnNlQXJyYXlCdWZmZXIgPSBtX2ltcGwtPm9wdGlvbmFsUmVzcG9uc2VBcnJheUJ1
ZmZlcigpKQogICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssICpIZWFwOjpo
ZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCksIHJlc3BvbnNlQXJyYXlCdWZmZXIpOwogI2VuZGlmCkBA
IC0xMjQsNyArMTI0LDcgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0Jsb2IodmFsKSwgZWMpOwogICAg
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTRE9NRm9ybURhdGE6OnNfaW5mbykpCiAgICAg
ICAgICAgICBpbXBsKCktPnNlbmQodG9ET01Gb3JtRGF0YSh2YWwpLCBlYyk7Ci0jaWYgRU5BQkxF
KFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogICAgICAg
ICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTQXJyYXlCdWZmZXI6OnNfaW5mbykpCiAgICAgICAg
ICAgICBpbXBsKCktPnNlbmQodG9BcnJheUJ1ZmZlcih2YWwpLCBlYyk7CiAjZW5kaWYKQEAgLTE4
OSw3ICsxODksNyBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKICNlbmRpZgogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9u
c2VUeXBlQXJyYXlCdWZmZXI6Ci0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNp
ZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogICAgICAgICB7CiAgICAgICAgICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICAgICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IGltcGwo
KS0+cmVzcG9uc2VBcnJheUJ1ZmZlcihlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAKaW5kZXggOTMwYzhl
Ny4uZGNmYzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lm
IEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogCkBAIC03
OCw0ICs3OCw0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEFycmF5QnVmZmVyOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjZW5kaWYg
Ly8gRU5BQkxFKEFSUkFZQlVGRkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggYTU5ZWU2
Yy4uY2EzMjEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNp
Zm5kZWYgVjhBcnJheUJ1ZmZlclZpZXdDdXN0b21faAogI2RlZmluZSBWOEFycmF5QnVmZmVyVmll
d0N1c3RvbV9oCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJM
RShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogCkBAIC0yMDksNiAr
MjA5LDYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJyYXlIZWxwZXIoY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQorI2Vu
ZGlmIC8vIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNlbmRpZiAvLyBWOEFycmF5QnVmZmVyVmll
d0N1c3RvbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAKaW5kZXggMGE3NjRkYS4uYjVkZDlkOCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNw
cApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUo
V0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNs
dWRlICJEYXRhVmlldy5oIgogCkBAIC0xMjEsNCArMTIxLDQgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RGF0YVZpZXc6OnNldFVpbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8
fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0MzJBcnJheUN1
c3RvbS5jcHAKaW5kZXggMDRlNDc3Ni4uOTA3YjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmxvYXQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGbG9hdDMyQXJyYXlDdXN0b20uY3BwCkBA
IC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXRUJH
TCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKIAogI2luY2x1ZGUg
IkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCkBAIC02OCw0ICs2OCw0
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KEZsb2F0MzJBcnJheSogaW1wbCkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUo
QkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MTZBcnJheUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRl
eCAwYjNmYjI1Li5kNzFiZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMzAsNyArMzAsNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9C
KQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgog
I2luY2x1ZGUgIkludDE2QXJyYXkuaCIKQEAgLTY4LDQgKzY4LDQgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHRvVjgoSW50MTZBcnJheSogaW1wbCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFC
TEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCBiODU0YzZmLi42YmYyZDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQz
MkFycmF5Q3VzdG9tLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJV
RkZFUlMpCiAKICNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkludDMyQXJyYXku
aCIKQEAgLTY4LDQgKzY4LDQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSW50MzJBcnJh
eSogaW1wbCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1
c3RvbS5jcHAKaW5kZXggZDYyZTA5YS4uY2NiOGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwCkBAIC0zMCw3
ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwg
RU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKIAogI2luY2x1ZGUgIkFycmF5
QnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50OEFycmF5LmgiCkBAIC02OCw0ICs2OCw0IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB0b1Y4KEludDhBcnJheSogaW1wbCkKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRp
ZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDFlNzQ3Yjgu
LmUwZjVmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFVpbnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhVaW50MTZBcnJheUN1c3RvbS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBF
TkFCTEUoQVJSQVlCVUZGRVJTKQogCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRl
ICJVaW50MTZBcnJheS5oIgpAQCAtNjgsNCArNjgsNCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChVaW50MTZBcnJheSogaW1wbCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJS
QVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VWludDMyQXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IGFhYjJlMTIuLjYwYmE1M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJB
cnJheUN1c3RvbS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZG
RVJTKQogCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJVaW50MzJBcnJheS5o
IgpAQCAtNjgsNCArNjgsNCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChVaW50MzJBcnJh
eSogaW1wbCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQkxPQikKKyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5
Q3VzdG9tLmNwcAppbmRleCA5OTMwMDc1Li43Y2UxYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wp
IHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAKICNpbmNsdWRlICJB
cnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIKQEAgLTY4LDQgKzY4LDQgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoVWludDhBcnJheSogaW1wbCkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikK
KyNlbmRpZiAvLyBFTkFCTEUoQVJSQVlCVUZGRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmlu
ZGV4IDA1NDhhNGQuLjM5YmM2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTk1LDcg
Kzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNl
QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHIKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNp
ZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogICAgIGNhc2UgWE1MSHR0cFJlcXVlc3Q6OlJlc3BvbnNl
VHlwZUFycmF5QnVmZmVyOgogICAgICAgICB7CiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKQEAgLTE5Myw3ICsxOTMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRw
UmVxdWVzdDo6c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAg
ICAgICBET01Gb3JtRGF0YSogZG9tRm9ybURhdGEgPSBWOERPTUZvcm1EYXRhOjp0b05hdGl2ZShv
YmplY3QpOwogICAgICAgICAgICAgQVNTRVJUKGRvbUZvcm1EYXRhKTsKICAgICAgICAgICAgIHht
bEh0dHBSZXF1ZXN0LT5zZW5kKGRvbUZvcm1EYXRhLCBlYyk7Ci0jaWYgRU5BQkxFKFdFQkdMKSB8
fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogICAgICAgICB9IGVsc2Ug
aWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZykpIHsKICAgICAgICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChh
cmcpOwogICAgICAgICAgICAgQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZl
cjo6dG9OYXRpdmUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVz
LnByaSBiL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQppbmRleCA1NGU5NjdiLi5jNmQxYTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvZmVhdHVyZXMucHJpCkBAIC02Miw2ICs2Miw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9TSU5HTEVfVEhSRUFERUQ9MSkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9
Lik6IERFRklORVMgKz0gRU5BQkxFX1dNTD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NI
QVJFRF9XT1JLRVJTPS4pOiBERUZJTkVTICs9IEVOQUJMRV9TSEFSRURfV09SS0VSUz0xCiAhY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktF
UlM9MQorIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XT1JLRVJTX1NIQVJFRF9NRU1PUlk9Lik6
IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlNfU0hBUkVEX01FTU9SWT0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1hIVE1MTVA9Lik6IERFRklORVMgKz0gRU5BQkxFX1hIVE1MTVA9MAogIWNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBR1JJRD0uKTogREVGSU5FUyArPSBFTkFCTEVfREFU
QUdSSUQ9MAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NRVRFUl9UQUc9Lik6IERFRklORVMg
Kz0gRU5BQkxFX01FVEVSX1RBRz0xCkBAIC03NSw2ICs3Niw5IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9TSU5HTEVfVEhSRUFERUQ9MSkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9X
RUJfQVVESU89Lik6IERFRklORVMgKz0gRU5BQkxFX1dFQl9BVURJTz0wCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1dFQkdMPS4pOiBERUZJTkVTICs9IEVOQUJMRV9XRUJHTD0wCiAKKyMgQXJy
YXlCdWZmZXJzIHN1cHBvcnQKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9CTE9CPTEpfGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV8zRF9DQU5WQVM9MSl8Y29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1dPUktFUlNfU0hBUkVEX01FTU9SWT0xKSA6IERFRklORVMgKz0gRU5BQkxFX0FSUkFZQlVGRkVS
Uz0xCisKICMgU1ZHIHN1cHBvcnQKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTApIHsK
ICAgICAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0uKTogREVGSU5FUyArPSBFTkFCTEVf
U1ZHPTEKQEAgLTE4OCw2ICsxOTIsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQUxJ
U1Q9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBTAogY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVCArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NI
QVJFRF9TQ1JJUFQ9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TSEFS
RURfU0NSSVBUPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XT1JLRVJTPTEpOiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfV09SS0VSUz0xCitjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfV09SS0VSU19TSEFSRURfTUVNT1JZPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVCArPSBFTkFCTEVfV09SS0VSU19TSEFSRURfTUVNT1JZPTEKIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9TSEFSRURfV09SS0VSUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0x
KTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1ZJREVPPTEKIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9YUEFUSD0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1hQQVRIPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAyNmZmNmQ2Li44
YWI3MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC01MDUsMTUgKzUwNSwxNSBA
QCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nTWFwQ29uc3Ry
dWN0b3IgRE9NU3RyaW5nTWFwOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVy
LENvbmRpdGlvbmFsPVdFQkdMfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gQXJyYXlCdWZmZXJDb25z
dHJ1Y3RvciBBcnJheUJ1ZmZlcjsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCi0gICAgICAg
IGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPVdFQkdMfEJMT0IsRW5hYmxl
ZEF0UnVudGltZV0gSW50OEFycmF5Q29uc3RydWN0b3IgSW50OEFycmF5OyAvLyBVc2FibGUgd2l0
aCBuZXcgb3BlcmF0b3IKLSAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0
aW9uYWw9V0VCR0x8QkxPQixFbmFibGVkQXRSdW50aW1lXSBVaW50OEFycmF5Q29uc3RydWN0b3Ig
VWludDhBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCi0gICAgICAgIGF0dHJpYnV0
ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPVdFQkdMfEJMT0IsRW5hYmxlZEF0UnVudGlt
ZV0gSW50MTZBcnJheUNvbnN0cnVjdG9yIEludDE2QXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBv
cGVyYXRvcgotICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD1X
RUJHTHxCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIFVpbnQxNkFycmF5Q29uc3RydWN0b3IgVWludDE2
QXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgotICAgICAgICBhdHRyaWJ1dGUgW0pT
Q0N1c3RvbUdldHRlcixDb25kaXRpb25hbD1XRUJHTHxCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIElu
dDMyQXJyYXlDb25zdHJ1Y3RvciBJbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0
b3IKLSAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9V0VCR0x8
QkxPQixFbmFibGVkQXRSdW50aW1lXSBVaW50MzJBcnJheUNvbnN0cnVjdG9yIFVpbnQzMkFycmF5
OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKLSAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0
b21HZXR0ZXIsQ29uZGl0aW9uYWw9V0VCR0x8QkxPQixFbmFibGVkQXRSdW50aW1lXSBGbG9hdDMy
QXJyYXlDb25zdHJ1Y3RvciBGbG9hdDMyQXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRv
cgotICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD1XRUJHTHxC
TE9CLEVuYWJsZWRBdFJ1bnRpbWVdIERhdGFWaWV3Q29uc3RydWN0b3IgRGF0YVZpZXc7IC8vIFVz
YWJsZSB3aXRoIG5ldyBvcGVyYXRvcgorICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRl
cixDb25kaXRpb25hbD1BUlJBWUJVRkZFUlMsRW5hYmxlZEF0UnVudGltZV0gQXJyYXlCdWZmZXJD
b25zdHJ1Y3RvciBBcnJheUJ1ZmZlcjsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCisgICAg
ICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPUFSUkFZQlVGRkVSUyxF
bmFibGVkQXRSdW50aW1lXSBJbnQ4QXJyYXlDb25zdHJ1Y3RvciBJbnQ4QXJyYXk7IC8vIFVzYWJs
ZSB3aXRoIG5ldyBvcGVyYXRvcgorICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixD
b25kaXRpb25hbD1BUlJBWUJVRkZFUlMsRW5hYmxlZEF0UnVudGltZV0gVWludDhBcnJheUNvbnN0
cnVjdG9yIFVpbnQ4QXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgorICAgICAgICBh
dHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD1BUlJBWUJVRkZFUlMsRW5hYmxl
ZEF0UnVudGltZV0gSW50MTZBcnJheUNvbnN0cnVjdG9yIEludDE2QXJyYXk7IC8vIFVzYWJsZSB3
aXRoIG5ldyBvcGVyYXRvcgorICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25k
aXRpb25hbD1BUlJBWUJVRkZFUlMsRW5hYmxlZEF0UnVudGltZV0gVWludDE2QXJyYXlDb25zdHJ1
Y3RvciBVaW50MTZBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCisgICAgICAgIGF0
dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPUFSUkFZQlVGRkVSUyxFbmFibGVk
QXRSdW50aW1lXSBJbnQzMkFycmF5Q29uc3RydWN0b3IgSW50MzJBcnJheTsgLy8gVXNhYmxlIHdp
dGggbmV3IG9wZXJhdG9yCisgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRp
dGlvbmFsPUFSUkFZQlVGRkVSUyxFbmFibGVkQXRSdW50aW1lXSBVaW50MzJBcnJheUNvbnN0cnVj
dG9yIFVpbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAgYXR0
cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9QVJSQVlCVUZGRVJTLEVuYWJsZWRB
dFJ1bnRpbWVdIEZsb2F0MzJBcnJheUNvbnN0cnVjdG9yIEZsb2F0MzJBcnJheTsgLy8gVXNhYmxl
IHdpdGggbmV3IG9wZXJhdG9yCisgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENv
bmRpdGlvbmFsPUFSUkFZQlVGRkVSUyxFbmFibGVkQXRSdW50aW1lXSBEYXRhVmlld0NvbnN0cnVj
dG9yIERhdGFWaWV3OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKIAogICAgICAgICBhdHRy
aWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD1XRUJfQVVESU8sRW5hYmxlZEF0UnVu
dGltZV0gQXVkaW9Db250ZXh0Q29uc3RydWN0b3Igd2Via2l0QXVkaW9Db250ZXh0OyAvLyBVc2Fi
bGUgd2l0aCBuZXcgb3BlcmF0b3IKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJf
QVVESU9dIEF1ZGlvUGFubmVyTm9kZUNvbnN0cnVjdG9yIHdlYmtpdEF1ZGlvUGFubmVyTm9kZTsg
Ly8gTmVlZGVkIGZvciBwYW5uaW5nIG1vZGVsIGNvbnN0YW50cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAKaW5kZXggNTRiNWJhOC4uZGMw
MDI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNv
bnRleHQuY3BwCkBAIC00MSw4ICs0MSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVk
aWNhdGVkV29ya2VyQ29udGV4dDo6RGVkaWNhdGVkV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVh
ZCkKLSAgICA6IFdvcmtlckNvbnRleHQodXJsLCB1c2VyQWdlbnQsIHRocmVhZCkKK0RlZGljYXRl
ZFdvcmtlckNvbnRleHQ6OkRlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkKiB0aHJlYWQsIFBh
c3NSZWZQdHI8VWludDhBcnJheT4gc2hhcmVkRGF0YSkKKyAgICA6IFdvcmtlckNvbnRleHQodXJs
LCB1c2VyQWdlbnQsIHRocmVhZCwgc2hhcmVkRGF0YSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaAppbmRleCBkYmE1MmFlLi41ZmFk
MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRl
eHQuaApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGVk
aWNhdGVkV29ya2VyQ29udGV4dCA6IHB1YmxpYyBXb3JrZXJDb250ZXh0IHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHR5cGVkZWYgV29ya2VyQ29udGV4dCBCYXNlOwotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJDb250ZXh0PiBjcmVhdGUoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkKiB0aHJlYWQpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtlckNvbnRleHQ+IGNyZWF0ZShj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQqIHRocmVhZCwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlZGljYXRlZFdvcmtlckNvbnRl
eHQodXJsLCB1c2VyQWdlbnQsIHRocmVhZCkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHNoYXJl
ZERhdGEpKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdv
cmtlckNvbnRleHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC02NCw3ICs2NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVh
ZCgpOwogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYsIERlZGljYXRlZFdvcmtlclRocmVhZCopOworICAgICAgICBE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQqLCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHNoYXJlZERhdGEpOwogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAppbmRleCBkNDc4OWExLi4zM2E3MDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCkBA
IC0zOSwxMyArMzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERl
ZGljYXRlZFdvcmtlclRocmVhZD4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3Qg
S1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9i
amVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSkKK1Bhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2Vy
VGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdv
cmtlck9iamVjdFByb3h5LCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHNoYXJlZERhdGEpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1
c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94
eSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVkaWNhdGVkV29ya2VyVGhyZWFkKHNjcmlw
dFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2Jq
ZWN0UHJveHksIHNoYXJlZERhdGEpKTsKIH0KIAotRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9h
ZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSkKLSAgICA6IFdv
cmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHks
IHdvcmtlck9iamVjdFByb3h5KQorRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHks
IFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgUGFzc1JlZlB0cjxVaW50OEFy
cmF5PiBzaGFyZWREYXRhKQorICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3Vy
Y2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHNoYXJlZERhdGEp
CiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KHdvcmtlck9iamVjdFByb3h5KQogewogfQpAQCAt
NTQsOSArNTQsOSBAQCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQoKQogewogfQogCi1QYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IERlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KQorUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKQogewotICAgIHJldHVy
biBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsIHRoaXMpOwor
ICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGUodXJsLCB1c2VyQWdlbnQs
IHRoaXMsIHNoYXJlZERhdGEpOwogfQogCiB2b2lkIERlZGljYXRlZFdvcmtlclRocmVhZDo6cnVu
RXZlbnRMb29wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5oCmluZGV4IDIyNTI0M2IuLmI3ODMzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDAsMTYgKzQwLDE2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlclRocmVhZCA6IHB1YmxpYyBX
b3JrZXJUaHJlYWQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVk
aWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlck9iamVjdFByb3h5Jik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERl
ZGljYXRlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc2hhcmVk
RGF0YSk7CiAgICAgICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KICAgICAgICAgfkRlZGljYXRlZFdv
cmtlclRocmVhZCgpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V29ya2VyQ29udGV4dD4gY3JlYXRlV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50KTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtl
ckNvbnRleHQ+IGNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9i
amVjdFByb3h5Jik7CisgICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBLVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2Vy
TG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFBhc3NSZWZQdHI8VWludDhBcnJheT4g
c2hhcmVkRGF0YSk7CiAKICAgICAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0
UHJveHk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggYzIwY2QzMC4uZGM0YjVlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIERlZmF1bHRTaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5Ojp3b3JrZXJTY3JpcHRMb2FkZWQoU2hhcmVkV29ya2VyUHJveHkmIHByb3h5
LAogCiAgICAgLy8gQW5vdGhlciBsb2FkZXIgbWF5IGhhdmUgYWxyZWFkeSBzdGFydGVkIHVwIGEg
dGhyZWFkIGZvciB0aGlzIHByb3h5IC0gaWYgc28sIGp1c3Qgc2VuZCBhIGNvbm5lY3QgdG8gdGhl
IHByZS1leGlzdGluZyB0aHJlYWQuCiAgICAgaWYgKCFwcm94eS50aHJlYWQoKSkgewotICAgICAg
ICBSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6
OmNyZWF0ZShwcm94eS5uYW1lKCksIHByb3h5LnVybCgpLCB1c2VyQWdlbnQsIHdvcmtlclNjcmlw
dCwgcHJveHksIHByb3h5KTsKKyAgICAgICAgUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gdGhy
ZWFkID0gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUocHJveHkubmFtZSgpLCBwcm94eS51cmwo
KSwgdXNlckFnZW50LCB3b3JrZXJTY3JpcHQsIHByb3h5LCBwcm94eSwgTlVMTCk7CiAgICAgICAg
IHByb3h5LnNldFRocmVhZCh0aHJlYWQpOwogICAgICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5jcHAKaW5k
ZXggY2Q3NmUzYi4uMzIyYjY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJl
ZFdvcmtlckNvbnRleHQuY3BwCkBAIC00OSw4ICs0OSw4IEBAIFBhc3NSZWZQdHI8TWVzc2FnZUV2
ZW50PiBjcmVhdGVDb25uZWN0RXZlbnQoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCkKICAg
ICByZXR1cm4gZXZlbnQ7CiB9CiAKLVNoYXJlZFdvcmtlckNvbnRleHQ6OlNoYXJlZFdvcmtlckNv
bnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCkKLSAgICA6IFdvcmtlckNvbnRl
eHQodXJsLCB1c2VyQWdlbnQsIHRocmVhZCkKK1NoYXJlZFdvcmtlckNvbnRleHQ6OlNoYXJlZFdv
cmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgUGFzc1JlZlB0cjxV
aW50OEFycmF5PiBzaGFyZWREYXRhKQorICAgIDogV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2Vu
dCwgdGhyZWFkLCBzaGFyZWREYXRhKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5oCmluZGV4IDU5YTc2MDUuLmVm
YjdiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5o
CkBAIC00Myw5ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTaGFyZWRX
b3JrZXJDb250ZXh0IDogcHVibGljIFdvcmtlckNvbnRleHQgewogICAgIHB1YmxpYzoKICAgICAg
ICAgdHlwZWRlZiBXb3JrZXJDb250ZXh0IEJhc2U7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNoYXJlZFdvcmtlckNvbnRleHQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdvcmtlclRocmVhZCogdGhy
ZWFkKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJDb250ZXh0PiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgUGFzc1JlZlB0cjxVaW50OEFycmF5
PiBzaGFyZWREYXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNoYXJlZFdvcmtlckNvbnRleHQobmFtZSwgdXJsLCB1c2VyQWdlbnQsIHRocmVhZCkpOworICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJDb250ZXh0KG5hbWUsIHVy
bCwgdXNlckFnZW50LCB0aHJlYWQsIHNoYXJlZERhdGEpKTsKICAgICAgICAgfQogICAgICAgICB2
aXJ0dWFsIH5TaGFyZWRXb3JrZXJDb250ZXh0KCk7CiAKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkKCk7CiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgU2hhcmVkV29ya2VyQ29udGV4dChjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBTaGFyZWRXb3JrZXJUaHJlYWQqKTsKKyAg
ICAgICAgU2hhcmVkV29ya2VyQ29udGV4dChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmLCBTaGFyZWRXb3JrZXJUaHJlYWQqLCBQYXNzUmVmUHRyPFVpbnQ4QXJy
YXk+IHNoYXJlZERhdGEpOwogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAppbmRleCBlNTlkZjRm
Li5mNDNmNWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJl
YWQuY3BwCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3Jr
ZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5
KQorUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IFNoYXJlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94
eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRp
bmdQcm94eSwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlwdFVSTCwgdXNlckFn
ZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlclRocmVhZChuYW1lLCBzY3Jp
cHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJl
cG9ydGluZ1Byb3h5LCBzaGFyZWREYXRhKSk7CiB9CiAKLVNoYXJlZFdvcmtlclRocmVhZDo6U2hh
cmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJS
ZXBvcnRpbmdQcm94eSkKLSAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNl
Q29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5KQorU2hhcmVkV29y
a2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5n
UHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHNoYXJl
ZERhdGEpCisgICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdv
cmtlckxvYWRlclByb3h5LCB3b3JrZXJSZXBvcnRpbmdQcm94eSwgc2hhcmVkRGF0YSkKICAgICAs
IG1fbmFtZShuYW1lLmNyb3NzVGhyZWFkU3RyaW5nKCkpCiB7CiB9CkBAIC01Myw5ICs1Myw5IEBA
IFNoYXJlZFdvcmtlclRocmVhZDo6flNoYXJlZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8V29ya2VyQ29udGV4dD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJDb250
ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCitQYXNzUmVmUHRy
PFdvcmtlckNvbnRleHQ+IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyQ29udGV4dChj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzUmVmUHRyPFVpbnQ4
QXJyYXk+IHNoYXJlZERhdGEpCiB7Ci0gICAgcmV0dXJuIFNoYXJlZFdvcmtlckNvbnRleHQ6OmNy
ZWF0ZShtX25hbWUsIHVybCwgdXNlckFnZW50LCB0aGlzKTsKKyAgICByZXR1cm4gU2hhcmVkV29y
a2VyQ29udGV4dDo6Y3JlYXRlKG1fbmFtZSwgdXJsLCB1c2VyQWdlbnQsIHRoaXMsIHNoYXJlZERh
dGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9TaGFyZWRXb3JrZXJUaHJlYWQuaAppbmRleCBkOTZmZDJhLi41NzNhNzFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKQEAgLTM4LDE0ICszOCwxNCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTaGFyZWRXb3JrZXJUaHJlYWQgOiBw
dWJsaWMgV29ya2VyVGhyZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNoYXJlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmKTsKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFBh
c3NSZWZQdHI8VWludDhBcnJheT4gc2hhcmVkRGF0YSk7CiAgICAgICAgIH5TaGFyZWRXb3JrZXJU
aHJlYWQoKTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdv
cmtlckNvbnRleHQ+IGNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyQ29udGV4dD4gY3JlYXRlV29y
a2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxVaW50OEFy
cmF5PiBzaGFyZWREYXRhKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtlclRo
cmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtl
clJlcG9ydGluZ1Byb3h5Jik7CisgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5
JiwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKTsKIAogICAgICAgICBTdHJpbmcg
bV9uYW1lOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggOTY4MzUyYy4u
ZmQ3MTJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNTAsMTUgKzUwLDE2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgbG9uZyBzaGFyZWREYXRhTGVuZ3RoKQogICAgIDogQWJz
dHJhY3RXb3JrZXIoY29udGV4dCkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckNvbnRleHRQ
cm94eTo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zaGFyZWREYXRhKFVpbnQ4QXJyYXk6OmNyZWF0
ZShzaGFyZWREYXRhTGVuZ3RoKSkKIHsKIH0KIAotUGFzc1JlZlB0cjxXb3JrZXI+IFdvcmtlcjo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8V29ya2VyPiBXb3JrZXI6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgbG9uZyBz
aGFyZWREYXRhTGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8V29ya2Vy
PiB3b3JrZXIgPSBhZG9wdFJlZihuZXcgV29ya2VyKGNvbnRleHQpKTsKKyAgICBSZWZQdHI8V29y
a2VyPiB3b3JrZXIgPSBhZG9wdFJlZihuZXcgV29ya2VyKGNvbnRleHQsIHNoYXJlZERhdGFMZW5n
dGgpKTsKIAogICAgIEtVUkwgc2NyaXB0VVJMID0gd29ya2VyLT5yZXNvbHZlVVJMKHVybCwgZWMp
OwogICAgIGlmIChzY3JpcHRVUkwuaXNFbXB0eSgpKQpAQCAtMTMxLDcgKzEzMiw3IEBAIHZvaWQg
V29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgaWYgKG1fc2NyaXB0TG9hZGVyLT5mYWlsZWQo
KSkKICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50LCBmYWxzZSwgdHJ1ZSkpOwogICAgIGVsc2UgewotICAgICAgICBtX2NvbnRleHRQcm94
eS0+c3RhcnRXb3JrZXJDb250ZXh0KG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgbV9zY3JpcHRM
b2FkZXItPnNjcmlwdCgpKTsKKyAgICAgICAgbV9jb250ZXh0UHJveHktPnN0YXJ0V29ya2VyQ29u
dGV4dChtX3NjcmlwdExvYWRlci0+dXJsKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNl
ckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwg
bV9zaGFyZWREYXRhKTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJ
bXBvcnRlZChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2NyaXB0TG9hZGVyLT5pZGVudGlm
aWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAgfQogICAgIG1fc2NyaXB0TG9h
ZGVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDBlNjczYWMuLjMxMDdmYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiQWJz
dHJhY3RXb3JrZXIuaCIKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJD
YW52YXNQaXhlbEFycmF5LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgpAQCAtNDIsNiArNDMsOCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlICJVaW50OEFy
cmF5LmgiCisjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01Myw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFdvcmtl
ciA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2VyPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtlcj4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgbG9uZywgRXhjZXB0aW9uQ29kZSYp
OwogICAgICAgICB2aXJ0dWFsIH5Xb3JrZXIoKTsKIAogICAgICAgICB2aXJ0dWFsIFdvcmtlciog
dG9Xb3JrZXIoKSB7IHJldHVybiB0aGlzOyB9CkBAIC02OCwxMSArNzEsNDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Q7Ci0gICAgCisKKyNpZiBFTkFCTEUoV09SS0VSU19TSEFSRURfTUVN
T1JZKQorICAgICAgICBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBnZXRVaW50MzJBcnJheShsb25n
IHBvcywgbG9uZyBzaXplKSB7IHJldHVybiBnZXRUeXBlZEFycmF5PFVpbnQzMkFycmF5Pihwb3Ms
IHNpemUpOyB9CisgICAgICAgIHZvaWQgc2V0VWludDMyQXJyYXkobG9uZyBwb3MsIFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+IGFycmF5KSB7IHJldHVybiBzZXRUeXBlZEFycmF5PFVpbnQzMkFycmF5
Pihwb3MsIGFycmF5KTsgfQorI2VuZGlmCisKICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihtZXNzYWdlKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdvcmtlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgICAgIFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgbG9uZyk7CisKKyNpZiBFTkFCTEUoV09SS0VSU19TSEFSRURfTUVNT1JZKQorICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcnJheVR5cGU+CisgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlU
eXBlPiBnZXRUeXBlZEFycmF5KGxvbmcgcG9zLCBsb25nIHNpemUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFJlZlB0cjxBcnJheVR5cGU+IGFycmF5ID0gQXJyYXlUeXBlOjpjcmVhdGUoc2l6ZSk7
CisgICAgICAgICAgICBpZiAocG9zID49IDAgJiYgc2l6ZSA+IDApIHsKKyAgICAgICAgICAgICAg
ICBpbnQgc2l6ZW9mVHlwZSA9IHNpemVvZih0eXBlbmFtZSBBcnJheVR5cGU6OkFycmF5QmFzZVR5
cGUpOworICAgICAgICAgICAgICAgIGxvbmcgbGVuZ3RoID0gc2l6ZSAqIHNpemVvZlR5cGU7Cisg
ICAgICAgICAgICAgICAgaWYgKHBvcyAqIHNpemVvZlR5cGUgPCBtX3NoYXJlZERhdGEtPmxlbmd0
aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgc2l6ZSkgKiBzaXplb2ZUeXBl
ID4gbV9zaGFyZWREYXRhLT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0
aCA9IG1fc2hhcmVkRGF0YS0+bGVuZ3RoKCkgLSBwb3MgKiBzaXplb2ZUeXBlOworICAgICAgICAg
ICAgICAgICAgICBpZiAobGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGFy
cmF5LT5idWZmZXIoKS0+ZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPHR5cGVuYW1lIEFycmF5VHlwZTo6QXJyYXlCYXNlVHlwZSo+KG1f
c2hhcmVkRGF0YS0+YnVmZmVyKCktPmRhdGEoKSkgKyBwb3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gYXJyYXkucmVsZWFzZSgpOworICAgICAgICB9CisKKyAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQXJyYXlUeXBlPgorICAgICAgICB2b2lkIHNldFR5cGVkQXJyYXko
bG9uZyBwb3MsIFBhc3NSZWZQdHI8QXJyYXlUeXBlPiBhcnJheSkKKyAgICAgICAgeworICAgICAg
ICAgICAgaW50IHNpemVvZlR5cGUgPSBzaXplb2YodHlwZW5hbWUgQXJyYXlUeXBlOjpBcnJheUJh
c2VUeXBlKTsKKyAgICAgICAgICAgIGlmICghYXJyYXkgfHwgcG9zIDwgMCB8fCAoKHBvcyArIGFy
cmF5LT5sZW5ndGgoKSkgKiBzaXplb2ZUeXBlID4gbV9zaGFyZWREYXRhLT5sZW5ndGgoKSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbWVtY3B5KHJlaW50ZXJwcmV0X2Nh
c3RfcHRyPHR5cGVuYW1lIEFycmF5VHlwZTo6QXJyYXlCYXNlVHlwZSo+KG1fc2hhcmVkRGF0YS0+
YnVmZmVyKCktPmRhdGEoKSkgKyBwb3MsCisgICAgICAgICAgICAgICAgICAgYXJyYXktPmJ1ZmZl
cigpLT5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgYXJyYXktPmxlbmd0aCgpICogc2l6ZW9m
VHlwZSk7CisgICAgICAgIH0KKyNlbmRpZgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
aW5pc2hlZCgpOwogCkBAIC04MSw2ICsxMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgT3duUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CiAgICAgICAg
IFdvcmtlckNvbnRleHRQcm94eSogbV9jb250ZXh0UHJveHk7IC8vIFRoZSBwcm94eSBvdXRsaXZl
cyB0aGUgd29ya2VyIHRvIHBlcmZvcm0gdGhyZWFkIHNodXRkb3duLgorICAgICAgICBSZWZQdHI8
VWludDhBcnJheT4gbV9zaGFyZWREYXRhOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCBlNTNkZTkzLi42ZGNhZWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC00OCw2ICs0OCwxMSBAQCBtb2R1bGUgdGhyZWFk
cyB7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOworCisjaWYgZGVmaW5lZChF
TkFCTEVfV09SS0VSU19TSEFSRURfTUVNT1JZKSAmJiBFTkFCTEVfV09SS0VSU19TSEFSRURfTUVN
T1JZCisgICAgICAgIFVpbnQzMkFycmF5IGdldFVpbnQzMkFycmF5KGluIGxvbmcgcG9zLCBpbiBs
b25nIHNpemUpOworICAgICAgICB2b2lkIHNldFVpbnQzMkFycmF5KGluIGxvbmcgcG9zLCBpbiBV
aW50MzJBcnJheSBhcnJheSk7CisjZW5kaWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCAzNmM0MjE1Li44MmY5N2E2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTk4LDEyICs5OCwxMyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiB9OwogCi1Xb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCogdGhyZWFkKQorV29ya2VyQ29u
dGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBXb3JrZXJUaHJlYWQqIHRocmVhZCwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWRE
YXRhKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAg
ICwgbV9zY3JpcHQobmV3IFdvcmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3Ro
cmVhZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCisgICAgLCBtX3NoYXJlZERhdGEo
c2hhcmVkRGF0YS5nZXQoKSkKIHsKICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKHVybCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApp
bmRleCAyZTgwMmYyLi42Mzk2MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuaApAQCAtNDEsNiArNDEsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2gu
aD4KKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCisjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNTksMTAgKzE2MSw0OCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyKik7CiAgICAg
ICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzT2ZTdG9wKCk7CiAKKyNpZiBFTkFCTEUoV09SS0VSU19T
SEFSRURfTUVNT1JZKQorICAgICAgICBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBnZXRVaW50MzJB
cnJheShsb25nIHBvcywgbG9uZyBzaXplKSB7IHJldHVybiBnZXRUeXBlZEFycmF5PFVpbnQzMkFy
cmF5Pihwb3MsIHNpemUpOyB9CisgICAgICAgIHZvaWQgc2V0VWludDMyQXJyYXkobG9uZyBwb3Ms
IFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5KSB7IHJldHVybiBzZXRUeXBlZEFycmF5PFVp
bnQzMkFycmF5Pihwb3MsIGFycmF5KTsgfQorI2VuZGlmCisKICAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIFdvcmtlclRocmVh
ZCopOworICAgICAgICBXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBX
b3JrZXJUaHJlYWQqLCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHNoYXJlZERhdGEpOwogCiAgICAg
cHJpdmF0ZToKKyNpZiBFTkFCTEUoV09SS0VSU19TSEFSRURfTUVNT1JZKQorICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBBcnJheVR5cGU+CisgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlUeXBlPiBn
ZXRUeXBlZEFycmF5KGxvbmcgcG9zLCBsb25nIHNpemUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IFJlZlB0cjxBcnJheVR5cGU+IGFycmF5ID0gQXJyYXlUeXBlOjpjcmVhdGUoc2l6ZSk7CisgICAg
ICAgICAgICBpZiAocG9zID49IDAgJiYgc2l6ZSA+IDApIHsKKyAgICAgICAgICAgICAgICBpbnQg
c2l6ZW9mVHlwZSA9IHNpemVvZih0eXBlbmFtZSBBcnJheVR5cGU6OkFycmF5QmFzZVR5cGUpOwor
ICAgICAgICAgICAgICAgIGxvbmcgbGVuZ3RoID0gc2l6ZSAqIHNpemVvZlR5cGU7CisgICAgICAg
ICAgICAgICAgaWYgKHBvcyAqIHNpemVvZlR5cGUgPCBtX3NoYXJlZERhdGEtPmxlbmd0aCgpKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgc2l6ZSkgKiBzaXplb2ZUeXBlID4gbV9z
aGFyZWREYXRhLT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IG1f
c2hhcmVkRGF0YS0+bGVuZ3RoKCkgLSBwb3MgKiBzaXplb2ZUeXBlOworICAgICAgICAgICAgICAg
ICAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoYXJyYXkt
PmJ1ZmZlcigpLT5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRl
cnByZXRfY2FzdF9wdHI8dHlwZW5hbWUgQXJyYXlUeXBlOjpBcnJheUJhc2VUeXBlKj4obV9zaGFy
ZWREYXRhLT5idWZmZXIoKS0+ZGF0YSgpKSArIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGFycmF5LnJlbGVhc2UoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFycmF5VHlwZT4KKyAgICAgICAg
dm9pZCBzZXRUeXBlZEFycmF5KGxvbmcgcG9zLCBQYXNzUmVmUHRyPEFycmF5VHlwZT4gYXJyYXkp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBzaXplb2ZUeXBlID0gc2l6ZW9mKHR5cGVuYW1l
IEFycmF5VHlwZTo6QXJyYXlCYXNlVHlwZSk7CisgICAgICAgICAgICBpZiAoIWFycmF5IHx8IHBv
cyA8IDAgfHwgKChwb3MgKyBhcnJheS0+bGVuZ3RoKCkpICogc2l6ZW9mVHlwZSA+IG1fc2hhcmVk
RGF0YS0+bGVuZ3RoKCkpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1l
bWNweShyZWludGVycHJldF9jYXN0X3B0cjx0eXBlbmFtZSBBcnJheVR5cGU6OkFycmF5QmFzZVR5
cGUqPihtX3NoYXJlZERhdGEtPmJ1ZmZlcigpLT5kYXRhKCkpICsgcG9zLAorICAgICAgICAgICAg
ICAgICAgIGFycmF5LT5idWZmZXIoKS0+ZGF0YSgpLAorICAgICAgICAgICAgICAgICAgIGFycmF5
LT5sZW5ndGgoKSAqIHNpemVvZlR5cGUpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsgcmVmKCk7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIGRlcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsgZGVyZWYoKTsg
fQogCkBAIC0xOTYsNiArMjM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBFdmVu
dFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKICAgICAgICAgSGFzaFNldDxPYnNlcnZl
cio+IG1fd29ya2VyT2JzZXJ2ZXJzOworCisgICAgICAgIFVpbnQ4QXJyYXkqIG1fc2hhcmVkRGF0
YTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmlkbAppbmRleCBjY2JkOTY0Li5hOGFmOTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5pZGwKQEAgLTEyMiw2ICsxMjIsMTEgQEAgbW9kdWxl
IHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUJMT0IsRW5hYmxlZEF0
UnVudGltZV0gSW50MzJBcnJheUNvbnN0cnVjdG9yIEludDMyQXJyYXk7IC8vIFVzYWJsZSB3aXRo
IG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUJMT0IsRW5hYmxl
ZEF0UnVudGltZV0gVWludDMyQXJyYXlDb25zdHJ1Y3RvciBVaW50MzJBcnJheTsgLy8gVXNhYmxl
IHdpdGggbmV3IG9wZXJhdG9yCiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQixF
bmFibGVkQXRSdW50aW1lXSBGbG9hdDMyQXJyYXlDb25zdHJ1Y3RvciBGbG9hdDMyQXJyYXk7IC8v
IFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgorCisjaWYgZGVmaW5lZChFTkFCTEVfV09SS0VSU19T
SEFSRURfTUVNT1JZKSAmJiBFTkFCTEVfV09SS0VSU19TSEFSRURfTUVNT1JZCisgICAgICAgIFVp
bnQzMkFycmF5IGdldFVpbnQzMkFycmF5KGluIGxvbmcgcG9zLCBpbiBsb25nIHNpemUpOworICAg
ICAgICB2b2lkIHNldFVpbnQzMkFycmF5KGluIGxvbmcgcG9zLCBpbiBVaW50MzJBcnJheSBhcnJh
eSk7CisjZW5kaWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0UHJveHkuaAppbmRleCA0NDIwYzc4Li5mNjg2NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dFByb3h5LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDksNyArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dmlydHVhbCB+V29ya2VyQ29udGV4dFByb3h5KCkge30KIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBzaGFyZWREYXRhKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0
ZVdvcmtlckNvbnRleHQoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggZWNhOGUyZS4uOTQ3OWVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTIzNCw5ICsy
MzQsOSBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5KCkKICAg
ICAgICAgICAgfHwgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkg
JiYgY3VycmVudFRocmVhZCgpID09IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCkpLT50aHJlYWQoKS0+dGhyZWFkSUQoKSkpOwogfQogCi12
b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0
IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKQogewotICAgIFJl
ZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVh
ZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMp
OworICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhp
cywgKnRoaXMsIHNoYXJlZERhdGEpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsK
ICAgICB0aHJlYWQtPnN0YXJ0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggYWI2MTEzYS4uZTA2ZTg4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTMsNyArNTMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtl
ckNvbnRleHRQcm94eS4KICAgICAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIG1ldGhvZHMgaW4gdGhl
IHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2Vy
Q29udGV4dChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3Jr
ZXJDb250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzaGFyZWRE
YXRhKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckNvbnRleHQoKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJDb250ZXh0KFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4pOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggZTFmMWE2Ni4uNmM1NWIw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtODMsMTEgKzgz
LDEyIEBAIFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShj
b25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0CiB7CiB9CiAKLVdvcmtlclRocmVhZDo6V29y
a2VyVGhyZWFkKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRl
clByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkpCitXb3Jr
ZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGlu
Z1Byb3h5LCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHNoYXJlZERhdGEpCiAgICAgOiBtX3RocmVh
ZElEKDApCiAgICAgLCBtX3dvcmtlckxvYWRlclByb3h5KHdvcmtlckxvYWRlclByb3h5KQogICAg
ICwgbV93b3JrZXJSZXBvcnRpbmdQcm94eSh3b3JrZXJSZXBvcnRpbmdQcm94eSkKICAgICAsIG1f
c3RhcnR1cERhdGEoV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OmNyZWF0ZShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSkpCisgICAgLCBtX3NoYXJlZERhdGEoc2hhcmVkRGF0YSkKIHsK
ICAgICBNdXRleExvY2tlciBsb2NrKHRocmVhZENvdW50TXV0ZXgoKSk7CiAgICAgbV90aHJlYWRD
b3VudCsrOwpAQCAtMTIyLDcgKzEyMyw3IEBAIHZvaWQqIFdvcmtlclRocmVhZDo6d29ya2VyVGhy
ZWFkKCkKIHsKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlv
bk11dGV4KTsKLSAgICAgICAgbV93b3JrZXJDb250ZXh0ID0gY3JlYXRlV29ya2VyQ29udGV4dCht
X3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91c2VyQWdlbnQpOwor
ICAgICAgICBtX3dvcmtlckNvbnRleHQgPSBjcmVhdGVXb3JrZXJDb250ZXh0KG1fc3RhcnR1cERh
dGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9zaGFyZWREYXRh
KTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgewogICAgICAgICAgICAg
Ly8gVGhlIHdvcmtlciB3YXMgdGVybWluYXRlZCBiZWZvcmUgdGhlIHRocmVhZCBoYWQgYSBjaGFu
Y2UgdG8gcnVuLiBTaW5jZSB0aGUgY29udGV4dCBkaWRuJ3QgZXhpc3QgeWV0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggZTQ0YWZjZS4uNDhkYjlkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjUsMTAgKzY2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgog
CiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmKTsKKyAgICAgICAgV29ya2VyVGhyZWFkKGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgUGFzc1JlZlB0
cjxVaW50OEFycmF5PiBzaGFyZWREYXRhKTsKIAogICAgICAgICAvLyBGYWN0b3J5IG1ldGhvZCBm
b3IgY3JlYXRpbmcgYSBuZXcgd29ya2VyIGNvbnRleHQgZm9yIHRoZSB0aHJlYWQuCi0gICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVXb3JrZXJDb250ZXh0KGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKKyAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFzc1JlZlB0cjxVaW50OEFycmF5
PiBzaGFyZWREYXRhKSA9IDA7CiAKICAgICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50IGxvb3Ag
Zm9yIHRoZSB3b3JrZXIgdGhyZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHBl
cmZvcm0gYWN0aW9ucyBiZWZvcmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3AuCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKTsKQEAgLTkzLDYgKzk0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCisgICAgICAg
IFJlZlB0cjxVaW50OEFycmF5PiBtX3NoYXJlZERhdGE7CiAKICAgICAgICAgLy8gVHJhY2sgdGhl
IG51bWJlciBvZiBXb3JrZXJUaHJlYWQgaW5zdGFuY2VzIGZvciB1c2UgaW4gbGF5b3V0IHRlc3Rz
LgogICAgICAgICBzdGF0aWMgdW5zaWduZWQgbV90aHJlYWRDb3VudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDRhZDZiMTcuLjlhODZiMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIEJsb2IqIFhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZUJsb2IoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVG
RkVSUykKIEFycmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBcnJheUJ1ZmZlcihF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZXNwb25zZVR5cGVDb2RlICE9IFJlc3Bv
bnNlVHlwZUFycmF5QnVmZmVyKSB7CkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6c2V0UmVzcG9uc2VUeXBlKGNvbnN0IFN0cmluZyYgcmVzcG9uc2VUeXBlLCBFeGNlcHRp
b25Db2RlJgogICAgICAgICBtX3Jlc3BvbnNlVHlwZUNvZGUgPSBSZXNwb25zZVR5cGVCbG9iOwog
I2VuZGlmCiAgICAgfSBlbHNlIGlmIChyZXNwb25zZVR5cGUgPT0gImFycmF5YnVmZmVyIikgewot
I2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVS
UykKICAgICAgICAgbV9yZXNwb25zZVR5cGVDb2RlID0gUmVzcG9uc2VUeXBlQXJyYXlCdWZmZXI7
CiAjZW5kaWYKICAgICB9IGVsc2UKQEAgLTU4NCw3ICs1ODQsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzZW5kKERPTUZvcm1EYXRhKiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBjcmVh
dGVSZXF1ZXN0KGVjKTsKIH0KIAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEJMT0IpCisj
aWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQXJyYXlC
dWZmZXIqIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaW5pdFNlbmQoZWMp
KQpAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2Uo
KQogI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7
CiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9CKQorI2lmIEVOQUJMRShB
UlJBWUJVRkZFUlMpCiAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKICAgICBt
X3Jlc3BvbnNlQXJyYXlCdWZmZXIuY2xlYXIoKTsKICNlbmRpZgpAQCAtMTA3Miw3ICsxMDcyLDcg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbikKIAogICAgIGlmICh1c2VEZWNvZGVyKQogICAgICAgICBtX3Jlc3BvbnNlQnVpbGRl
ci5hcHBlbmQobV9kZWNvZGVyLT5kZWNvZGUoZGF0YSwgbGVuKSk7Ci0jaWYgRU5BQkxFKFdFQkdM
KSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFCTEUoQVJSQVlCVUZGRVJTKQogICAgIGVsc2UgaWYg
KHJlc3BvbnNlVHlwZUNvZGUoKSA9PSBSZXNwb25zZVR5cGVBcnJheUJ1ZmZlcikgewogICAgICAg
ICAvLyBCdWZmZXIgYmluYXJ5IGRhdGEuCiAgICAgICAgIGlmICghbV9iaW5hcnlSZXNwb25zZUJ1
aWxkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDM4NGE4NDYuLmI4YWEy
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC05NSw3ICs5NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNlbmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2VuZChCbG9iKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChET01Gb3Jt
RGF0YSosIEV4Y2VwdGlvbkNvZGUmKTsKLSNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShCTE9C
KQorI2lmIEVOQUJMRShBUlJBWUJVRkZFUlMpCiAgICAgdm9pZCBzZW5kKEFycmF5QnVmZmVyKiwg
RXhjZXB0aW9uQ29kZSYpOwogI2VuZGlmCiAgICAgdm9pZCBhYm9ydCgpOwpAQCAtMTE1LDcgKzEx
NSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcmVzcG9uc2VUeXBlKCk7CiAgICAgUmVzcG9uc2VU
eXBlQ29kZSByZXNwb25zZVR5cGVDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVR5cGVD
b2RlOyB9CiAgICAgCi0jaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQkxPQikKKyNpZiBFTkFC
TEUoQVJSQVlCVUZGRVJTKQogICAgIC8vIHJlc3BvbnNlIGF0dHJpYnV0ZSBoYXMgY3VzdG9tIGdl
dHRlci4KICAgICBBcnJheUJ1ZmZlciogcmVzcG9uc2VBcnJheUJ1ZmZlcihFeGNlcHRpb25Db2Rl
Jik7CiAgICAgQXJyYXlCdWZmZXIqIG9wdGlvbmFsUmVzcG9uc2VBcnJheUJ1ZmZlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsgfQpAQCAtMjA2LDcgKzIwNiw3
IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fY3JlYXRlZERvY3VtZW50OwogICAgIG11
dGFibGUgUmVmUHRyPERvY3VtZW50PiBtX3Jlc3BvbnNlWE1MOwogICAgIAotI2lmIEVOQUJMRShX
RUJHTCkgfHwgRU5BQkxFKEJMT0IpCisjaWYgRU5BQkxFKEFSUkFZQlVGRkVSUykKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlcjsKICAgICBtdXRhYmxlIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4gbV9yZXNwb25zZUFycmF5QnVmZmVyOwogI2VuZGlmCi0tIAoxLjcu
MC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>80743</attachid>
            <date>2011-02-01 05:08:00 -0800</date>
            <delta_ts>2011-02-01 05:08:00 -0800</delta_ts>
            <desc>Example main page for workers&apos; shared memory</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>1813</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8cD5XZWIgV29ya2VycyBzaG91bGQgYmUgdGVzdGVkIHdpdGggYSByZWFs
IHdlYiBzZXJ2ZXIgKGVnLjogQXBhY2hlIG9yIElJUykhPC9wPgo8cD5UaGlzIHRlc3Qgc2hvdWxk
IGJlIGV4ZWN1dGVkIHdpdGggV2ViS2l0IHdoaWNoIHN1cHBvcnRzIHNoYXJlZCBtZW1vcnkuPC9w
Pgo8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgo8c2NyaXB0PgoKdmFyIGVuYWJsZVNoYXJlZERhdGEg
PSBmYWxzZTsKCmZ1bmN0aW9uIHJlbG9hZE5leHRQaGFzZSgpCnsKICBlbmFibGVTaGFyZWREYXRh
ID0gIWVuYWJsZVNoYXJlZERhdGE7CiAgZGVtbygpOwp9CgpmdW5jdGlvbiBkZW1vKCkKewogIHZh
ciBsZW5ndGggPSAxMDI0ICogMTAyNCAqIDQ7CiAgdmFyIHdvcmtlcjsKICBpZiAoZW5hYmxlU2hh
cmVkRGF0YSkgewogICAgd29ya2VyID0gbmV3IFdvcmtlcigid29ya2VyLmpzIiwgbGVuZ3RoIDw8
IDIpOwogIH0gZWxzZSB7CiAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCJ3b3JrZXIuanMiLCAwKTsK
ICB9CgogIHZhciBhcnI7CiAgaWYgKGVuYWJsZVNoYXJlZERhdGEpIHsKICAgIGFyciA9IG5ldyBV
aW50MzJBcnJheShsZW5ndGgpOwogIH0gZWxzZSB7CiAgICBhcnIgPSBuZXcgQXJyYXkobGVuZ3Ro
KTsKICB9CiAgZm9yKHZhciBpID0gMDtpIDwgbGVuZ3RoOyArK2kpCiAgICBhcnJbaV0gPSBpOwoK
ICBpZiAoZW5hYmxlU2hhcmVkRGF0YSkgewogICAgd29ya2VyLnNldFVpbnQzMkFycmF5KDAsIGFy
cik7CiAgfQoKICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgIHZhciBlc2Qg
PSBlLmRhdGEuZW5hYmxlU2hhcmVkRGF0YTsKICAgIHZhciBkaWZmID0gKG5ldyBEYXRlKCkgLSBz
dGFydERhdGUpOwogICAgdmFyIHJlczsKICAgIGlmIChlc2QpIHsKICAgICAgcmVzID0gdGhpcy5n
ZXRVaW50MzJBcnJheSgwLCBsZW5ndGgpOwogICAgICBkb2N1bWVudC53cml0ZSgnU0hBUkVEIE1F
TTogJyArIGRpZmYgKyAnIG1zPGJyIC8+Jyk7CiAgICB9IGVsc2UgewogICAgICByZXMgPSBlLmRh
dGEuYXJyOwogICAgICBkb2N1bWVudC53cml0ZSgnPGJyIC8+UE9TVCBNU0cgIDogJyArIGRpZmYg
KyAnIG1zPGJyIC8+Jyk7CiAgICB9CiAgfQoKICB2YXIgc3RhcnREYXRlID0gbmV3IERhdGUoKTsK
ICBpZiAoZW5hYmxlU2hhcmVkRGF0YSkgewogICAgd29ya2VyLnBvc3RNZXNzYWdlKHtlbmFibGVT
aGFyZWREYXRhOmVuYWJsZVNoYXJlZERhdGEsbGVuZ3RoOmxlbmd0aH0pOwogIH0gZWxzZSB7CiAg
ICB3b3JrZXIucG9zdE1lc3NhZ2Uoe2VuYWJsZVNoYXJlZERhdGE6ZW5hYmxlU2hhcmVkRGF0YSxs
ZW5ndGg6bGVuZ3RoLCBhcnI6YXJyfSk7CiAgfQogIHNldFRpbWVvdXQocmVsb2FkTmV4dFBoYXNl
LCAzMDAwKTsKfQoKZnVuY3Rpb24gc3RhcnQoKQp7CiAgdHJ5IHsKICAgIHZhciB0ZXN0X2xlbiA9
IDEwOwogICAgdmFyIHRlc3RfYXJyID0gbmV3IFVpbnQzMkFycmF5KHRlc3RfbGVuKTsKICAgIHZh
ciB0ZXN0X3dvcmtlciA9IG5ldyBXb3JrZXIoIndvcmtlci5qcyIsIHRlc3RfbGVuKTsKICAgIHRl
c3Rfd29ya2VyLnNldFVpbnQzMkFycmF5KDAsIHRlc3RfYXJyKTsKICB9CiAgY2F0Y2goZXJyKSB7
CiAgICBkb2N1bWVudC53cml0ZSgiPGJyIC8+IFdvcmtlcnMnIHNoYXJlZCBtZW1vcnkgaXMgTk9U
IHN1cHBvcnRlZCE8YnIgLz4iKTsKICAgIHJldHVybjsKICB9CiAgZG9jdW1lbnQud3JpdGUoIjxi
ciAvPiBQbGVhc2Ugd2FpdCBhIGJpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCE8YnIgLz4iKTsKCiAg
ZGVtbygpOwp9CgpzdGFydCgpCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>80744</attachid>
            <date>2011-02-01 05:08:37 -0800</date>
            <delta_ts>2011-02-01 05:08:37 -0800</delta_ts>
            <desc>Example worker for workers&apos; shared memory</desc>
            <filename>worker.js</filename>
            <type>text/html</type>
            <size>395</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">b25tZXNzYWdlID0gZnVuY3Rpb24oZSl7CiAgdmFyIGVuYWJsZVNoYXJlZERhdGEgPSBlLmRhdGEu
ZW5hYmxlU2hhcmVkRGF0YTsKICB2YXIgbGVuZ3RoID0gZS5kYXRhLmxlbmd0aDsKICB2YXIgYXJy
OwogIGlmIChlbmFibGVTaGFyZWREYXRhKSB7CglhcnIgPSBnZXRVaW50MzJBcnJheSgwLCBsZW5n
dGgpOwogIH0gZWxzZSB7CiAgCWFyciA9IGUuZGF0YS5hcnI7CiAgfQoKICBpZiAoZW5hYmxlU2hh
cmVkRGF0YSkgewoJc2V0VWludDMyQXJyYXkoMCwgYXJyKTsKCXBvc3RNZXNzYWdlKHtlbmFibGVT
aGFyZWREYXRhOmVuYWJsZVNoYXJlZERhdGF9KTsKICB9IGVsc2UgewogIAlwb3N0TWVzc2FnZSh7
ZW5hYmxlU2hhcmVkRGF0YTplbmFibGVTaGFyZWREYXRhLGFycjphcnJ9KTsKICB9Cn07Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>