<?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>68741</bug_id>
          
          <creation_ts>2011-09-23 15:50:59 -0700</creation_ts>
          <short_desc>Add static version of JSCell::getCallData</short_desc>
          <delta_ts>2011-09-27 15:45:57 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472572</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-23 15:50:59 -0700</bug_when>
    <thetext>In the ongoing effort to un-virtualize JSCell, we need to replace getCallData with a non-virtual version.  This will eventually be done by adding a function pointer to the ClassInfo struct.

This patch will be similar to bug 68404.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472897</commentid>
    <comment_count>1</comment_count>
      <attachid>108609</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-25 12:32:11 -0700</bug_when>
    <thetext>Created attachment 108609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472999</commentid>
    <comment_count>2</comment_count>
      <attachid>108609</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-09-26 00:37:28 -0700</bug_when>
    <thetext>Comment on attachment 108609
Patch

Attachment 108609 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9842812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473374</commentid>
    <comment_count>3</comment_count>
      <attachid>108609</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 14:12:59 -0700</bug_when>
    <thetext>Comment on attachment 108609
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108609&amp;action=review

One thing that’s bad about the new functions is that they all have unchecked type casts in them. It makes me wish there was some way to check the types in all those cases are correct.

Looks like this did not build on Qt.

r=me if you address the Qt build failure

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        able to more easily store and refer to them in our custom vtable since normal 

I’d say in our “method table” not our “custom viable”.

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        impossible to store them generically in ClassInfo.

I think I’d say something more like this: Function pointers are smaller and more efficient to call than pointers to member functions, and using static member functions allows us to use function pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473410</commentid>
    <comment_count>4</comment_count>
      <attachid>108727</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-26 14:52:24 -0700</bug_when>
    <thetext>Created attachment 108727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473659</commentid>
    <comment_count>5</comment_count>
      <attachid>108727</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 20:25:08 -0700</bug_when>
    <thetext>Comment on attachment 108727
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108727&amp;action=review

&gt; Source/JavaScriptGlue/ChangeLog:14
&gt; +        can be represented as function pointers rather than pointers to member methods, and
&gt; +        function pointers are smaller and faster to call than pointers to member methods.

The term is &quot;member functions&quot;, not &quot;member methods&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474304</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-27 15:45:57 -0700</bug_when>
    <thetext>Committed r96164: &lt;http://trac.webkit.org/changeset/96164&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108609</attachid>
            <date>2011-09-25 12:32:11 -0700</date>
            <delta_ts>2011-09-26 14:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68741-20110925123210.patch</filename>
            <type>text/plain</type>
            <size>77168</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCBhMzk2OGM2ODVjM2I3OGIwMTMzZTA1NDE2
ZjJkNjBkYzNkYTY1MWIwLi4xMmMwNWRjNmIyYmI2NzllZWJjOTM2YTRmY2JmOTUyZGVkOTM1Mjhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC03Nyw3ICs3NywxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrRnVuY3Rpb246
OmNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhl
eGVjLCByZXN1bHQpKTsKIH0KIAotQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxs
RGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU0NhbGxiYWNrRnVuY3Rpb246Omdl
dENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENh
bGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbDsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggN2Uy
NjUyZWQyYTE3NDBmMTFiZjcyZjMyYzEzNTJhNjM2YzRlYmFjZC4uY2UyYWQ5Y2JkNjE5NDVkMDlm
YTZmNjBjMmNiNWEzNDMyNjhiMTU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwor
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDFkZWZi
NGU1ZTU2ZTFmNWNkNTUzODk3ZmE0YmI1ODU1MzU5ZTUwODMuLjdjZDQ4M2NhZWI4ZTU3ZmZjZjNl
MzUzZTA0MTJlNmU1MDY0ZGUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdC5oCkBAIC0xOTQsNyArMTk0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2M2Jm
YmM2ZjY3ZTc2ZjkyNjQ3ZmMzYmQ1ZTkwOWYyYmI0Y2RmYjlmLi42OWRlY2ExMDE0NTFhYjdlMDIw
NGEwNjkyYzkxOTk4ODc4YWVjYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMzcyLDkgKzM3MiwxNiBAQCBi
b29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbAogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotQ2Fs
bFR5cGUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2Fs
bERhdGEpCitDYWxsVHlwZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENhbGxEYXRhVmly
dHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCiB7Ci0gICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3Mg
PSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsK
KyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCit0ZW1wbGF0ZSA8
Y2xhc3MgUGFyZW50PgorQ2FsbFR5cGUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxs
RGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICBKU0NhbGxiYWNr
T2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwp
OworICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iamVjdC0+Y2xhc3NSZWYoKTsg
anNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChq
c0NsYXNzLT5jYWxsQXNGdW5jdGlvbikgewogICAgICAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbDsKICAgICAgICAgICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGNmMDMxZjcwZTNiMmM4NzQ0
YjAwMDA1NTNhMGEyYjYxYTU5ZjJhYmUuLmZhNjgyZDhmYTJlOTAwOGMyNjg4MjBmYmU4NDI5ZTFl
MDM2MWI5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBA
IC00MTYsNyArNDE2LDcgQEAgYm9vbCBKU09iamVjdERlbGV0ZVByaXZhdGVQcm9wZXJ0eShKU0Nv
bnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW4KIGJvb2wgSlNPYmplY3RJ
c0Z1bmN0aW9uKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIENhbGxE
YXRhIGNhbGxEYXRhOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmdldENhbGxEYXRhKGNhbGxE
YXRhKSAhPSBDYWxsVHlwZU5vbmU7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+Z2V0Q2FsbERh
dGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmU7CiB9CiAKIEpTVmFsdWVSZWYgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC00MzUsNyArNDM1
LDcgQEAgSlNWYWx1ZVJlZiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNPYmplY3QKICAgICAgICAgYXJnTGlzdC5hcHBlbmQodG9K
UyhleGVjLCBhcmd1bWVudHNbaV0pKTsKIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENh
bGxUeXBlIGNhbGxUeXBlID0ganNPYmplY3QtPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGpzT2JqZWN0LT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEp
OwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCiAgICAgICAgIHJldHVybiAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBiZWY2NGY0YzU2M2VlY2E1MjgwYjgxMjEzMDBh
MzQyYzRkMTQxOWMxLi4wNTUzOTAwMTAzYjNhOGExZjUxNWI4NDhlNmM1ZjExNWJiZGRhYTAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDYgQEAKKzIwMTEtMDktMjUgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Rh
dGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRDYWxsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoIHdlIGp1c3QgZXh0cmFjdCB0
aGUgYm9kaWVzIG9mIHRoZSB2aXJ0dWFsIGdldENhbGxEYXRhIG1ldGhvZHMKKyAgICAgICAgdGhy
b3VnaG91dCB0aGUgSlNDZWxsIGluaGVyaXRhbmNlIGhpZXJhcmNoeSBvdXQgaW50byBzdGF0aWMg
bWV0aG9kcywgd2hpY2ggYXJlIAorICAgICAgICBub3cgY2FsbGVkIGZyb20gdGhlIHZpcnR1YWwg
bWV0aG9kcy4gIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIHN0ZXAgaW4gdHJ5aW5nIHRvIAorICAg
ICAgICBtb3ZlIHRoZSB2aXJ0dWFsLW5lc3Mgb2YgZ2V0Q2FsbERhdGEgaW50byBvdXIgb3duIGN1
c3RvbSB2dGFibGUgc3RvcmVkIGluIAorICAgICAgICBDbGFzc0luZm8uICBXZSBuZWVkIHRvIGNv
bnZlcnQgdGhlIG1ldGhvZHMgdG8gc3RhdGljIG1ldGhvZHMgaW4gb3JkZXIgdG8gYmUgCisgICAg
ICAgIGFibGUgdG8gbW9yZSBlYXNpbHkgc3RvcmUgYW5kIHJlZmVyIHRvIHRoZW0gaW4gb3VyIGN1
c3RvbSB2dGFibGUgc2luY2Ugbm9ybWFsIAorICAgICAgICBtZW1iZXIgbWV0aG9kcyBzdG9yZSBz
b21lIGltcGxpY2l0IGluZm9ybWF0aW9uIGluIHRoZWlyIHR5cGVzLCBtYWtpbmcgaXQgCisgICAg
ICAgIGltcG9zc2libGUgdG8gc3RvcmUgdGhlbSBnZW5lcmljYWxseSBpbiBDbGFzc0luZm8uCisK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrRnVuY3Rpb246OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1
bmN0aW9uLmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBB
UEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OmdldENhbGxE
YXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6Ojo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIEFQ
SS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdElzRnVuY3Rpb24pOgorICAgICAg
ICAoSlNPYmplY3RDYWxsQXNGdW5jdGlvbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhw
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWY6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAg
ICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGppdC9K
SVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
Lmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChK
U0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUv
Qm9vbGVhbkNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6
CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9FcnJvci5jcHA6
CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6Z2V0Q2FsbERhdGFW
aXJ0dWFsKToKKyAgICAgICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpnZXRD
YWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAg
KEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmly
dHVhbCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKToK
KyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5
cGU6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBl
OjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgor
ICAgICAgICAoSlNDOjpKU0NlbGw6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5oOgorICAgICAgICAoSlNDOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGFWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcik6CisgICAgICAgIChKU0M6
OlN0cmluZ2lmaWVyOjp0b0pTT04pOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6YXBwZW5k
U3RyaW5naWZpZWRWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6
Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToK
KyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAgICAg
KiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9PcGVyYXRp
b25zLmNwcDoKKyAgICAgICAgKEpTQzo6anNUeXBlU3RyaW5nRm9yVmFsdWUpOgorICAgICAgICAo
SlNDOjpqc0lzT2JqZWN0VHlwZSk6CisgICAgICAgIChKU0M6OmpzSXNGdW5jdGlvblR5cGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlTbG90OjpmdW5jdGlvbkdldHRlcik6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZp
cnR1YWwpOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorCiAy
MDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWx3
YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggMDIwYzg1NTZjNTVlNDllYjg1YmQxNzM1
ZThhODRiODdlY2JmMjcxOC4uOWM0ZjM3OTNiY2FkYzNiNDU0OTYwMDlhZGYxYjc5N2M3YmM4ZGM4
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0yNTIsMTAg
KzI1MiwxMCBAQCBfX1pOM0pTQzRZYXJyMTFZYXJyUGF0dGVybkMxRVJLTlNfN1VTdHJpbmdFYmJQ
UEtjCiBfX1pOM0pTQzRZYXJyMTFieXRlQ29tcGlsZUVSTlMwXzExWWFyclBhdHRlcm5FUE4zV1RG
MjBCdW1wUG9pbnRlckFsbG9jYXRvckUKIF9fWk4zSlNDNFlhcnI5aW50ZXJwcmV0RVBOUzBfMTVC
eXRlY29kZVBhdHRlcm5FUktOU183VVN0cmluZ0VqalBpCiBfX1pOM0pTQzRjYWxsRVBOU185RXhl
Y1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzhDYWxsVHlwZUVSS05TXzhDYWxsRGF0YUVTMl9SS05TXzdB
cmdMaXN0RQotX19aTjNKU0M2SlNDZWxsMTFnZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRhRQogX19a
TjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckUKIF9fWk4zSlNDNkpTQ2VsbDE0ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFagog
X19aTjNKU0M2SlNDZWxsMTZnZXRDb25zdHJ1Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCitf
X1pOM0pTQzZKU0NlbGwxOGdldENhbGxEYXRhVmlydHVhbEVSTlNfOENhbGxEYXRhRQogX19aTjNK
U0M2SlNDZWxsMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M2SlNDZWxsMThnZXRPd25Qcm9wZXJ0
eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2Vs
bDE4Z2V0UHJpbWl0aXZlTnVtYmVyRVBOU185RXhlY1N0YXRlRVJkUk5TXzdKU1ZhbHVlRQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCAzZWI3OGI1M2Q3ZDQ5ZjQ2OGQzYjFjMWYwMTRhM2FlMGVjMWVkYTNlLi4zYjZkMjMzOGJiODA0
YmExN2RiOWM2MmEyNzdlZGJmYmJlODRjYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTg2LDcgKzE4Niw3IEBAIEVYUE9S
VFMKICAgICA/ZnVuY3Rpb25OYW1lQERlYnVnZ2VyQ2FsbEZyYW1lQEpTQ0BAUUJFUEJWVVN0cmlu
Z0AyQFhaCiAgICAgP2dldEBTdHJ1Y3R1cmVASlNDQEBRQUVJQUFWSlNHbG9iYWxEYXRhQDJAQUJW
SWRlbnRpZmllckAyQEFBSUFBUEFWSlNDZWxsQDJAQFoKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NA
QFFBRUlBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQFdURkBAQUFJQUFQQVZKU0NlbGxA
MkBAWgotICAgID9nZXRDYWxsRGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q2FsbFR5cGVAMkBBQVRD
YWxsRGF0YUAyQEBaCisgICAgP2dldENhbGxEYXRhVmlydHVhbEBKU0NlbGxASlNDQEBVQUU/QVc0
Q2FsbFR5cGVAMkBBQVRDYWxsRGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlNDZWxs
QEpTQ0BAVUFFP0FXNENvbnN0cnVjdFR5cGVAMkBBQVRDb25zdHJ1Y3REYXRhQDJAQFoKICAgICA/
Z2V0T2JqZWN0QEpTQ2VsbEBKU0NAQFFBRVBBVkpTT2JqZWN0QDJAWFoKICAgICA/Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yQEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBB
QlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDlmMGFhMzBk
ZmI2Y2I5ZWZjYzQ3MWM1MDE5OTEyYTA0MGZmMWMyZGYuLjRjNjE3MWY3MWI0NzhhZDdmNmRjNjY2
MTdkYzdjNGNjZDUxZDJmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMjgyOSw3ICsyODI5LDcgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxhZyBmbGFnLCBSZWdpc3RlckZpbGUq
IHJlZ2lzdGVyRmkKICAgICAgICAgICAgICAgICAgICAgaWYgKEdldHRlclNldHRlciogZ2V0dGVy
U2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIocHJvdG9PYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZz
ZXQpLmFzQ2VsbCgpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGdldHRl
ciA9IGdldHRlclNldHRlci0+Z2V0dGVyKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0gZ2V0dGVyLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRh
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChjYWxsRnJh
bWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhc09iamVjdChiYXNlQ2VsbCksIEFyZ0xp
c3QoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxsRnJhbWUtPnVuY2hlY2tlZFIoZHN0KSA9IHJlc3Vs
dDsKQEAgLTI5NjQsNyArMjk2NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVj
dXRlKEV4ZWN1dGlvbkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAgICAgICAg
ICAgICAgICAgaWYgKEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIo
YmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkuYXNDZWxsKCkpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRlcigpOwog
ICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgICAgICAg
ICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAg
ICAgICAgICAgICAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRh
VmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0g
Y2FsbChjYWxsRnJhbWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBiYXNlT2JqZWN0LCBB
cmdMaXN0KCkpOwogICAgICAgICAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAg
ICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZS0+dW5jaGVja2VkUihkc3QpID0gcmVzdWx0OwpA
QCAtMzA3Miw3ICszMDcyLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IGFzR2V0dGVyU2V0dGVy
KGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZzZXQpLmFzQ2VsbCgpKSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdl
dHRlcigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5n
ZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsbFR5
cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGNhbGxGcmFtZSwg
Z2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGJhc2VWYWx1ZSwgQXJnTGlzdCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLT51bmNoZWNrZWRSKGRzdCkgPSByZXN1bHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGNlZjk0MjFiNGVlNDFkZWE5
MzkzZmU3YmNjOWMyNTRiZmZjOGEwOWEuLjRjMDViYTFkZDUwOTY5OGZhZjBlZWNmYjQ2YmFlOTAw
ZjQ5NDcxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xNzU1
LDcgKzE3NTUsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfZ2V0
X2J5X2lkX2dldHRlcl9zdHViKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBhc09iamVjdChnZXR0ZXJTZXR0ZXIt
PmdldHRlcigpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlw
ZSA9IGdldHRlci0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0gZ2V0dGVyLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0gY2FsbChjYWxsRnJhbWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBzdGFja0Zy
YW1lLmFyZ3NbMV0uanNPYmplY3QoKSwgQXJnTGlzdCgpKTsKICAgICBpZiAoY2FsbEZyYW1lLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuVG9UaHJvd1RyYW1wb2xpbmUoJmNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLCBzdGFja0ZyYW1lLmFyZ3NbMl0ucmV0dXJuQWRkcmVzcygpLCBTVFVC
X1JFVFVSTl9BRERSRVNTKTsKQEAgLTIxNTgsNyArMjE1OCw3IEBAIERFRklORV9TVFVCX0ZVTkNU
SU9OKHZvaWQqLCBvcF9jYWxsX2ppdENvbXBpbGUpCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAg
ICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQVNTRVJUKHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5j
YWxsZWUoKS0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpID09IENhbGxUeXBlSlMpOworICAgIEFTU0VS
VChzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y2FsbGVlKCktPmdldENhbGxEYXRhVmlydHVhbChjYWxs
RGF0YSkgPT0gQ2FsbFR5cGVKUyk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gaml0Q29tcGls
ZUZvcihzdGFja0ZyYW1lLCBDb2RlRm9yQ2FsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IGE4ZDY0NTg3OTBkY2NjODY1
MTVmYWEwZDY5ZTliMGVjZmQ3ZDYwNWYuLjRlNWI0YzRiZjc3MTVhM2E3ZTUwZGJkNjhhZjMyNGQ0
Njk1NzA2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCkBAIC0xMDksNyArMTA5LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVj
LCBhcmdzKSk7CiB9CiAKLUNhbGxUeXBlIEFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKENh
bGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBlIEFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
VmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRo
aXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIC8vIGVxdWl2YWxlbnQgdG8g
J25ldyBBcnJheSguLi4uKScKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXJy
YXlDb25zdHJ1Y3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuaAppbmRleCA5NmNlYzZiN2I3YjMyMDdhZDIzOGZhYWVmMjgxMmZhMmY4NzM0
NThmLi5jNDZkY2IyMzYzMmRhYjRmYzdiODY2ZjlhN2MwNzcwM2UzNjFlMDI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBAIC01NSw3
ICs1NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCBmNmUyYTcwOGMzZmY5MGNiZTZmYjhkMzBjMTlhZGVlMmZhMzc3OWQ1Li5jOThjOThlZmUxMDBi
NDQzYjY1ZDY0YjQ3NWI2ZWRlMzE1YzE4ZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTY4LDcgKzY4LDEyIEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxCb29sZWFuQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KGV4ZWMtPmFyZ3VtZW50KDApLnRvQm9vbGVhbihleGVjKSkpOwogfQogCi1DYWxsVHlwZSBCb29s
ZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBl
IEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0
YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxs
VHlwZSBCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQm9vbGVhbkNv
bnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4IDFkOTQ2ODg2Mzc5
MTBmYTlhZmFlMTVhNzQwNTI3MGNjODk3MDg1YzYuLjAzOTVmODI2N2U4NjUzZDBhODE4MzFkOGEw
NDNiNDdkMzRjYjJmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC00NCw3ICs0NCw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHByaXZhdGU6CiAgICAgICAgIEJvb2xlYW5Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7CiAgICAgfTsKIAogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFu
RnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDg1ZjU0NGFkYzc0ODVjMjNiMjRmNGJiOGM4NjhiMDg3NjU1NDI3NDAuLmVhMzMx
ZTA5Y2NkNGI1NDQzZGY4YmU2MjY3YTQ2NDQ0MjFhYWU4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtMTc2LDcgKzE3Niwx
MiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIGRhdGUsICIgIiwgdGltZSkpOwogfQogCi1DYWxsVHlwZSBEYXRlQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBlIERhdGVDb25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1
cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBEYXRlQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRGF0ZTsKICAgICByZXR1cm4gQ2FsbFR5cGVI
b3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aAppbmRleCBmZGI3YTExYTFjZTdhZDJjN2JkY2E1YjkxNzdjNDA5YzFjNmQzZDE4Li4wNmRjOTRh
OGI3YjBjMzRjZjFkMDlhZDI0ODI0YTMyNzVmOWQ0YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApAQCAtNTIsNyArNTIsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBEYXRlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwotICAgICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCAwMDgxMTM1ZDk4MWY3OWUzMTFiNzc2YmVl
NTAzMWJhZTEyMjAwYzY3Li4xOWQ5MjE2YzYxZDVjNDdmMjhkYzRiOGI0ZGVkOTE2MmU0YzNkOTc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0yMDEsNyArMjAx
LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7
CiAgICAgfQogCi0gICAgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQor
ICAgIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCisgICAg
eworICAgICAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworICAgIH0KKwor
ICAgIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKICAg
ICB7CiAgICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJv
cjsKICAgICAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTg5MThkNjZkYWNmNTM4
OGI3ZTFhNzU4YzM2ZDBkOTE4ZTZkMmZhNi4uYTA1Y2Q1MjZkOGI0Njc4ZWYzNjQ0ZWFmZDAwMDcw
ZjAzMDlkODFiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY0LDcgKzY0LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJv
clN0cnVjdHVyZSwgbWVzc2FnZSkpOwogfQogCi1DYWxsVHlwZSBFcnJvckNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBFcnJvckNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBn
ZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEVycm9yQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRXJyb3JDb25zdHJ1Y3RvcjsKICAgICByZXR1cm4g
Q2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5oCmluZGV4IDUwODNhOGU1N2ZmZWNmMzIxNGVjNjhmMmQ1MWVkZDQ2ODI1ZmVm
MzcuLjI0ZmMxOThiMmNmZTFlMGQ3ZGUzNGY1NWNiZjk5MjI4NDRjYzM2YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ1LDcg
KzQ1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgRXJyb3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZp
cnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDMwNDI0OWQ5NTQ5MjIzNWUxNjg3MTQ4ODE3ODRi
ZjIyZGRhMTg2YjEuLmY2OTEzMDBjOTUyYzEwY2MxYjI4MGFkZDg3YmI0OGFmZjI0Y2M3OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCkBAIC02OSw4ICs2OSwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVu
Y3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCitDYWxs
VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNh
bGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisK
IC8vIEVDTUEgMTUuMy4xIFRoZSBGdW5jdGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5j
dGlvbgotQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEm
IGNhbGxEYXRhKQorQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmgKaW5kZXggMzAzNGVmMWZmZDIxZjZmZjE3NWRhYjBjODhlYzZhODM2OTRhMmJhMS4uNjhmMDU3
ZTczNmZhZmM5MGRkODE2MTcwMTE5ODU0M2NlM2YwNjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtNDIsNyArNDIs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSosIEZ1bmN0aW9uUHJvdG90eXBlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBDYWxs
VHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCiAgICAgSlNPYmplY3QqIGNv
bnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlz
dCYsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNl
VVJMLCBpbnQgbGluZU51bWJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZmRjZmI4NTRjNzU5MTI0MTY1YjcwMDNl
ODViNmM0MjI5YWYwZmE3NC4uYWIyZDhjNTQ1YTkwODFmY2FmMzI3YWExN2ZiM2M5MjllMjYwZGE1
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmNwcApAQCAtNzAsOCArNzAsMTMgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNTdGF0ZSopCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorQ2FsbFR5cGUgRnVuY3Rpb25Qcm90
b3R5cGU6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0
dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKwogLy8gRUNNQSAxNS4zLjQKLUNh
bGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEp
CitDYWxsVHlwZSBGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxGdW5j
dGlvblByb3RvdHlwZTsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggMWEyMTllODgy
NGRhOWY4ZTdmODI3ODMyYjZjY2NiMWNkNjUwODgyYS4uODJmZmYwNTg2Y2Y0MDIwM2U2ZTI1MTI3
NjhkYWViZWRkZjdjMTQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oCkBAIC00OCw3ICs0OCw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxs
RGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxs
RGF0YSYpOworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAwZjYxNTliMzY0YWYz
OTcyMTRiY2EzYmI4ZGVmMTBlYTUxOTg5ZDhhLi45Y2E1OWZiNzkwM2Y0Nzk3OTA1ODVkMDgxM2U2
MDkxOTNmZDBkNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0
YShDYWxsRGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZp
cnR1YWwoQ2FsbERhdGEmKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFuY2hv
cigpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRl
eCBiN2FmZTliZTFlYTU4NDBkZTVhMzA4NzM0MmYzYzQzMjE3MzMyOTIxLi5mZWQwMGM4ODI4Njc0
NTVlYWRhOWYzMjgxNzBlZjYzMjFiYzcwNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5jcHAKQEAgLTU0LDcgKzU0LDEyIEBAIGNvbnN0IEpTT2JqZWN0KiBKU0NlbGw6
OmdldE9iamVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIGlzT2JqZWN0KCkgPyBzdGF0aWNfY2FzdDxj
b25zdCBKU09iamVjdCo+KHRoaXMpIDogMDsKIH0KIAotQ2FsbFR5cGUgSlNDZWxsOjpnZXRDYWxs
RGF0YShDYWxsRGF0YSYpCitDYWxsVHlwZSBKU0NlbGw6OmdldENhbGxEYXRhVmlydHVhbChDYWxs
RGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRh
KTsKK30KKworQ2FsbFR5cGUgSlNDZWxsOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYp
CiB7CiAgICAgcmV0dXJuIENhbGxUeXBlTm9uZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmgKaW5kZXggNjI2OGIxZDliYzVkN2U0ZWYxN2E3MDEzOTJkZDIzZTUwM2VkYTdk
YS4uOGQ4Yzg4NjJkMmQwODhiMTdlNGIyMTkyMmYyYTA1YmZjM2JhYTQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTczLDcgKzczLDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEpTT2JqZWN0KiBnZXRPYmplY3QoKTsgLy8gTlVMTCBpZiBub3QgYW4gb2Jq
ZWN0CiAgICAgICAgIGNvbnN0IEpTT2JqZWN0KiBnZXRPYmplY3QoKSBjb25zdDsgLy8gTlVMTCBp
ZiBub3QgYW4gb2JqZWN0CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENh
bGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFW
aXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYpOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAKICAgICAgICAgLy8gQmFzaWMgY29udmVyc2lv
bnMuCkBAIC0yMzUsNyArMjM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBpbmxpbmUgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNWYWx1ZSB2YWx1ZSwgQ2FsbERhdGEmIGNhbGxEYXRhKQogICAg
IHsKLSAgICAgICAgQ2FsbFR5cGUgcmVzdWx0ID0gdmFsdWUuaXNDZWxsKCkgPyB2YWx1ZS5hc0Nl
bGwoKS0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpIDogQ2FsbFR5cGVOb25lOworICAgICAgICBDYWxs
VHlwZSByZXN1bHQgPSB2YWx1ZS5pc0NlbGwoKSA/IHZhbHVlLmFzQ2VsbCgpLT5nZXRDYWxsRGF0
YVZpcnR1YWwoY2FsbERhdGEpIDogQ2FsbFR5cGVOb25lOwogICAgICAgICBBU1NFUlQocmVzdWx0
ID09IENhbGxUeXBlTm9uZSB8fCB2YWx1ZS5pc1ZhbGlkQ2FsbGVlKCkpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKaW5kZXggMzdmNjZjMTgyYzU1ZDEzYTA0NjczNmVmMmMxNTY0ZWI2OTRkODk5MS4u
MmY1MzkyOTAyNzE2ODU2MDk0OTQzMzE3YmNmNDdlOGZjYTQ4NDMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTE2OSwxNCArMTY5LDIwIEBA
IHZvaWQgSlNGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9leGVjdXRh
YmxlKTsKIH0KIAotQ2FsbFR5cGUgSlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNh
bGxEYXRhKQorQ2FsbFR5cGUgSlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRh
JiBjYWxsRGF0YSkKIHsKLSAgICBpZiAoaXNIb3N0RnVuY3Rpb24oKSkgewotICAgICAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBuYXRpdmVGdW5jdGlvbigpOworICAgIHJldHVybiBnZXRD
YWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTRnVuY3Rpb246OmdldENh
bGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIEpTRnVuY3Rp
b24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CisgICAgaWYg
KHRoaXNPYmplY3QtPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gdGhpc09iamVjdC0+bmF0aXZlRnVuY3Rpb24oKTsKICAgICAgICAgcmV0dXJu
IENhbGxUeXBlSG9zdDsKICAgICB9Ci0gICAgY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxl
ID0ganNFeGVjdXRhYmxlKCk7Ci0gICAgY2FsbERhdGEuanMuc2NvcGVDaGFpbiA9IHNjb3BlKCk7
CisgICAgY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlID0gdGhpc09iamVjdC0+anNFeGVj
dXRhYmxlKCk7CisgICAgY2FsbERhdGEuanMuc2NvcGVDaGFpbiA9IHRoaXNPYmplY3QtPnNjb3Bl
KCk7CiAgICAgcmV0dXJuIENhbGxUeXBlSlM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBhNWQwM2RkYjliM2Y1YmJhNjYxZjMxMmI5NDFiMDg4
MmM2ZTc4NTkwLi4xZTY2OGU5ZTIwMTAyN2QzMWEyOTBjNDFmNmQ5MzJjZDE2OTc3NTBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0xMDksNyArMTA5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUNvbnN0
cnVjdG9yKCk7CiAKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERh
dGEoQ29uc3RydWN0RGF0YSYpOwotICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRh
KENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFs
KENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG9mZnNldE9mU2Nv
cGVDaGFpbigpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAKaW5kZXggNDMxNGI2NWUyNmU3ODRkOTk5MTQyMDhmMWU1ZGIwMmNjNThlM2Y3
MC4uYjcwMjNjNDc2Zjc0NGFmMTFhNDA3ZDMwZjJhN2Q1M2RlNTRmNDVmMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTI0Niw3ICsyNDYsNyBA
QCBTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMb2NhbDxV
bmtub3duPiYgcmVwbGFjZXIsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBt
X3JlcGxhY2VyQ2FsbFR5cGUgPSBtX3JlcGxhY2VyLmFzT2JqZWN0KCktPmdldENhbGxEYXRhKG1f
cmVwbGFjZXJDYWxsRGF0YSk7CisgICAgbV9yZXBsYWNlckNhbGxUeXBlID0gbV9yZXBsYWNlci5h
c09iamVjdCgpLT5nZXRDYWxsRGF0YVZpcnR1YWwobV9yZXBsYWNlckNhbGxEYXRhKTsKIH0KIAog
TG9jYWw8VW5rbm93bj4gU3RyaW5naWZpZXI6OnN0cmluZ2lmeShIYW5kbGU8VW5rbm93bj4gdmFs
dWUpCkBAIC0zMzcsNyArMzM3LDcgQEAgaW5saW5lIEpTVmFsdWUgU3RyaW5naWZpZXI6OnRvSlNP
TihKU1ZhbHVlIHZhbHVlLCBjb25zdCBQcm9wZXJ0eU5hbWVGb3JGdW5jdGlvbkMKIAogICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh0b0pTT05GdW5jdGlvbik7CiAgICAgQ2FsbERhdGEg
Y2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBvYmplY3QtPmdldENhbGxEYXRhKGNh
bGxEYXRhKTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG9iamVjdC0+Z2V0Q2FsbERhdGFWaXJ0
dWFsKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQogICAgICAg
ICByZXR1cm4gdmFsdWU7CiAKQEAgLTQwMSw3ICs0MDEsNyBAQCBTdHJpbmdpZmllcjo6U3RyaW5n
aWZ5UmVzdWx0IFN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKFVTdHJpbmdCdWls
ZGVyJgogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAKICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICBpZiAob2JqZWN0LT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgIT0g
Q2FsbFR5cGVOb25lKSB7CisgICAgaWYgKG9iamVjdC0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxE
YXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgaWYgKGhvbGRlci0+aW5oZXJpdHMoJkpT
QXJyYXk6OnNfaW5mbykpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJudWxsIik7CiAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDljODAxYjZhNGEzNjM0ZDQ3MjEzMDg5ODI4
NTc5N2VmMjZkNjJlNjUuLjg0MDgzM2NiZGZmZDllYzA0MTM4MzkwNzA1ZDk2YjM1Y2UwNzA4N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTE1OCw3
ICsxNTgsNyBAQCB2b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAg
ICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IHNldHRlckZ1bmMtPmdldENhbGxEYXRhKGNh
bGxEYXRhKTsKKyAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IHNldHRlckZ1bmMt
PmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgICAgICAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYXJnczsKICAgICAgICAgICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggZTU4MWRhOWY0NDljZjM5MjQzOTg1MWE4MDZiZTE5OWM1NTU5
NDAwNC4uMTE4ODBhMWNiNmY4NTdjYjY0YmEyYjY2ZmU4ZWY5ODAyZGU2ZjRjMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTc0LDcgKzc0LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSkpOwogfQogCi1DYWxsVHlwZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBOYXRpdmVFcnJvckNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAg
IHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0
YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcjsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDhjMjcy
ZWFhMmE4NjRjMDgwYTFkMjE0ZGNmM2ViNzZmOGJlMGEzYzcuLjBhMmJiMjNkM2UyMGIzOTNlYzlm
OWI3MThhYmVhNjE2Y2JkZDhmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTY5LDcgKzY5LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEludGVybmFsRnVuY3Rpb246OlN0cnVj
dHVyZUZsYWdzOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
Q2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwo
Q2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCos
IFNsb3RWaXNpdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCBmNzhhMDRlOTIxNTg4OTM4NWY4OWQwMWYyODI5
MGIwNWEwOWQ2YzNlLi41MjM5MDY3ODJkYTZhMzE4ZjdhOGQ2OTI5MzczNGM4NjMwYmViODBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCkBAIC0xMjcsNyArMTI3LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcighZXhlYy0+YXJndW1lbnRDb3VudCgpID8gMCA6IGV4
ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKLUNhbGxUeXBlIE51bWJlckNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBOdW1i
ZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sK
KyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBO
dW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRh
KQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cjsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggNGQ2NDFiOTg0MjUxMzY3YjJlOWQ2
ZWM5YTk0ZTEzMWQ2NmNiZWEwOS4uOGFlYTY5MDdhMzI2ZWJhMDUzNWVmMzFhYTI0ZGIwYTA2ZTdl
Y2RlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5oCkBAIC01OCw3ICs1OCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6
CiAgICAgICAgIE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7
CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYp
OworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYp
OworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBkZTU2NjUyYzRlZmRh
MTljMDE5NDE1YjgzMjEzODY1MDMxYjY1YmM5Li5iMTA5YjE5OWJlZjM5MjAyZjE1ZDM1OWNlZjUw
NDgzZjZkMDE0ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0xMjYsNyArMTI2LDEyIEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgYXNJ
bnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsK
IH0KIAotQ2FsbFR5cGUgT2JqZWN0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBj
YWxsRGF0YSkKK0NhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwo
Q2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxs
RGF0YSk7Cit9CisKK0NhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY2FsbE9iamVjdENvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRl
eCBiODQyMTJmMGQwNGMzMzU3YjExNjE5ZjY0NGFiNWRjNzRhNTQ0MzFkLi5kZGYzY2FmNGM0MTFj
MmJhODBhODYyZGZlMDcxYTJkN2RhMzAwOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKQEAgLTU1LDcgKzU1LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwotICAgICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAppbmRleCBjM2Ez
MDZhODg5Y2IwZTZhODUwZjMwNWJhOTg5YzFhNzE0OTk1ZDY4Li41MmY0ZTlkNjU4ZmM0YmY4ZWQ1
NmI3YWNlMTljMWM4ZGNiYjBlZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcGVyYXRpb25zLmNwcApAQCAtNzQsNyArNzQsNyBAQCBKU1ZhbHVlIGpzVHlwZVN0cmluZ0Zv
clZhbHVlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpCiAgICAgICAgIGlmIChhc09i
amVjdCh2KS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgp
KQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhjYWxsRnJhbWUsICJ1bmRl
ZmluZWQiKTsKICAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgIGlmIChhc09iamVj
dCh2KS0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkKKyAgICAgICAgaWYg
KGFzT2JqZWN0KHYpLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpICE9IENhbGxUeXBlTm9u
ZSkKICAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoY2FsbEZyYW1lLCAiZnVu
Y3Rpb24iKTsKICAgICB9CiAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhjYWxsRnJhbWUs
ICJvYmplY3QiKTsKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBqc0lzT2JqZWN0VHlwZShKU1ZhbHVl
IHYpCiAgICAgICAgIGlmIChhc09iamVjdCh2KS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkubWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgaWYgKGFzT2JqZWN0KHYpLT5nZXRDYWxsRGF0
YShjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25lKQorICAgICAgICBpZiAoYXNPYmplY3QodiktPmdl
dENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25lKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMiw3ICsxMDIsNyBA
QCBib29sIGpzSXNGdW5jdGlvblR5cGUoSlNWYWx1ZSB2KQogewogICAgIGlmICh2LmlzT2JqZWN0
KCkpIHsKICAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgIGlmIChhc09iamVjdCh2
KS0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkKKyAgICAgICAgaWYgKGFz
T2JqZWN0KHYpLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAppbmRleCA4Nzdk
MGY1ZjE1YjY5N2I5M2NlMjVjYTA4ZjdkMmIxODg0N2VlMWY4Li4xYTg2ZWUzMzdjNGRkMGIxZDNh
ZGY0NmI5NmFlODFjZjBmZDJhZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5U2xvdC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNs
b3Q6OmZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmV4Y2VwdGlvbigpOwogCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5
cGUgY2FsbFR5cGUgPSBtX2RhdGEuZ2V0dGVyRnVuYy0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOwor
ICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9kYXRhLmdldHRlckZ1bmMtPmdldENhbGxEYXRhVmly
dHVhbChjYWxsRGF0YSk7CiAgICAgCiAgICAgLy8gT25seSBvYmplY3RzIGNhbiBoYXZlIGFjY2Vz
c29yIHByb3BlcnRpZXMuCiAgICAgLy8gSWYgdGhlIGJhc2UgaXMgV2ViQ29yZSdzIGdsb2JhbCBv
YmplY3QgdGhlbiB3ZSBuZWVkIHRvIHN1YnN0aXR1dGUgdGhlIHNoZWxsLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IGNh
ZmExMjkxYmMyNWM5NWU1Nzc5MWIxNWMwZDRhOTJhZGQwY2RjNmUuLmIxNjkyNDI3Mjc3YTNkNzMz
OWFjMDI0OGM5YmY1YmQwODY2YTIwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1Nyw3ICszNTcsMTIgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4
cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qo
KSwgYXJncykpOwogfQogCi1DYWxsVHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
Q2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRh
KHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsUmVnRXhwQ29uc3RydWN0b3I7CiAgICAgcmV0dXJuIENhbGxUeXBl
SG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oCmluZGV4IGE5YTllNjkzYWYxMmQ0MTM4NDljMWQ2ZTQ0N2EwOTQ2ZGZlYzdhZjQuLmRl
ZTQ4NDQ1MWQ1OGY5ZjM0MzFkZWZiOWU4NWVkNTUyMWRjZDMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtOTgsNyArOTgs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBSZWdFeHBDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZpcnR1
YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxs
VHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgT3duUHRyPFJl
Z0V4cENvbnN0cnVjdG9yUHJpdmF0ZT4gZDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4IDZmMzUyNjY0ZGUx
NDVhMTM3MTg4ZjdjZjcxN2RkZTNkYTNkOWNhMTMuLmRmNjhlNjA3YzhmMmIxZWVmNjcwY2ZiMzM1
YTM0OTQ5YmE0YTEzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwOSw3ICsxMDksMTIgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBTdHJpbmdDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICBy
ZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBTdHJpbmdD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewog
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxTdHJpbmdDb25zdHJ1Y3RvcjsKICAg
ICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggOTU3YjRiMzE5MzBiNmU1ZjBkYWU2ODM3ODhj
NTRkNWRiMzA1MTg0Ny4uNzAwZGVhYjVmN2VjODg1N2I0ZjM1NjJiMTI0M2RkMTBhOWUyMzEzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rv
ci5oCkBAIC01Miw3ICs1Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpbmdDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSosIFN0cmluZ1Byb3RvdHlwZSopOwogICAgICAgICB2aXJ0dWFs
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAg
IHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVh
bCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggYjYyYTc5OGY1MDRkYTA4YmRiOTMxOTg4
MTliY2Q5ZGFiYmIwYWUzNi4uZTBiMWFhNTE4YTRlNmYwMDBjNjdmOTBlZjRkNjY5MzA3OThjZTFj
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDktMjUg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRDYWxsRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoIHdlIGp1c3QgZXh0cmFj
dCB0aGUgYm9kaWVzIG9mIHRoZSB2aXJ0dWFsIGdldENhbGxEYXRhIG1ldGhvZHMKKyAgICAgICAg
dGhyb3VnaG91dCB0aGUgSlNDZWxsIGluaGVyaXRhbmNlIGhpZXJhcmNoeSBvdXQgaW50byBzdGF0
aWMgbWV0aG9kcywgd2hpY2ggYXJlIAorICAgICAgICBub3cgY2FsbGVkIGZyb20gdGhlIHZpcnR1
YWwgbWV0aG9kcy4gIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIHN0ZXAgaW4gdHJ5aW5nIHRvIAor
ICAgICAgICBtb3ZlIHRoZSB2aXJ0dWFsLW5lc3Mgb2YgZ2V0Q2FsbERhdGEgaW50byBvdXIgb3du
IGN1c3RvbSB2dGFibGUgc3RvcmVkIGluIAorICAgICAgICBDbGFzc0luZm8uICBXZSBuZWVkIHRv
IGNvbnZlcnQgdGhlIG1ldGhvZHMgdG8gc3RhdGljIG1ldGhvZHMgaW4gb3JkZXIgdG8gYmUgCisg
ICAgICAgIGFibGUgdG8gbW9yZSBlYXNpbHkgc3RvcmUgYW5kIHJlZmVyIHRvIHRoZW0gaW4gb3Vy
IGN1c3RvbSB2dGFibGUgc2luY2Ugbm9ybWFsIAorICAgICAgICBtZW1iZXIgbWV0aG9kcyBzdG9y
ZSBzb21lIGltcGxpY2l0IGluZm9ybWF0aW9uIGluIHRoZWlyIHR5cGVzLCBtYWtpbmcgaXQgCisg
ICAgICAgIGltcG9zc2libGUgdG8gc3RvcmUgdGhlbSBnZW5lcmljYWxseSBpbiBDbGFzc0luZm8u
CisKKyAgICAgICAgKiBKU1ZhbHVlV3JhcHBlci5jcHA6CisgICAgICAgIChKU1ZhbHVlV3JhcHBl
cjo6SlNPYmplY3RDYWxsRnVuY3Rpb24pOgorICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgor
ICAgICAgICAoVXNlck9iamVjdEltcDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKFVz
ZXJPYmplY3RJbXA6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisK
IDIwMTEtMDktMjMgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjp2aXNpdENoaWxkcmVuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAppbmRleCAzMjRhOTc0ODc5ZTY0YzZi
NmE4MmJhYTQwNTYyNDIyYmQ0YjIxMWNhLi5mMWYxYTcyMTMyMTIzNWQ3NTgwMjRkYTY1NjdiNDY4
MmMwYjdhMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBw
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKQEAg
LTE2Myw3ICsxNjMsNyBAQCBKU09iamVjdFJlZiBKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RDYWxs
RnVuY3Rpb24odm9pZCAqZGF0YSwgSlNPYmplY3RSZWYgdGhpc09iagogICAgICAgICB9CiAKICAg
ICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2Jq
VmFsdWUtPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBvYmpWYWx1ZS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNh
bGxUeXBlID09IENhbGxUeXBlTm9uZSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBK
U1ZhbHVlICByZXN1bHRWYWx1ZSA9IGNhbGwoZXhlYywgb2JqVmFsdWUsIGNhbGxUeXBlLCBjYWxs
RGF0YSwga3NqVGhpc09iaiwgbGlzdEFyZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCmluZGV4IDZjM2E3ZDQ5NWFlMTQ1MWU3MTBmZmE5YTBjYTcwNDNhN2MwYWY3MmYu
LmM5OGE0MDVkMzkzZTYxMjA1NzBhNGNhZGY4NTI5MzliYWFhODk4ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTQ2LDkgKzQ2LDE1IEBAIFVzZXJPYmplY3RJ
bXA6On5Vc2VyT2JqZWN0SW1wKCkKICAgICAgICAgZkpTVXNlck9iamVjdC0+UmVsZWFzZSgpOwog
fQogCi1DYWxsVHlwZSBVc2VyT2JqZWN0SW1wOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERh
dGEpCitDYWxsVHlwZSBVc2VyT2JqZWN0SW1wOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEm
IGNhbGxEYXRhKQogewotICAgIHJldHVybiBmSlNVc2VyT2JqZWN0ID8gZkpTVXNlck9iamVjdC0+
Z2V0Q2FsbERhdGEoY2FsbERhdGEpIDogQ2FsbFR5cGVOb25lOworICAgIHJldHVybiBnZXRDYWxs
RGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIFVzZXJPYmplY3RJbXA6OmdldENh
bGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIFVzZXJPYmpl
Y3RJbXAqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7Cisg
ICAgcmV0dXJuIHRoaXNPYmplY3QtPmZKU1VzZXJPYmplY3QgPyB0aGlzT2JqZWN0LT5mSlNVc2Vy
T2JqZWN0LT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgOiBDYWxsVHlwZU5vbmU7CiB9CiAKIEpTVmFs
dWUgVXNlck9iamVjdEltcDo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggYTg2YjUyY2IzNjNhOGQ3ZTAxNGU4ODEy
YjM5N2ZhYzdkY2M1ODUyOS4uMDQ4NTQzNWE2NzVlMGI3NjAxNzg3NzkzZGMzMmE3ZWY0OGIzNjUx
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC00OSw3ICs0OSw4IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgdmly
dHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgIHZpcnR1YWwgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9u
TW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2
NzUzN2U2ZGMzM2M4ZDhlNGZlMTBiODA5ZjI2N2NmZDdjZWVjMzY5Li5hOGViNjE0ZWFkZWQ0YWRi
NTU5ZjBiMGQ5MjZkNjcxYWY1Mjc4OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIw
MTEtMDktMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRDYWxsRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAg
ICAgICAgSW4gdGhpcyBwYXRjaCB3ZSBqdXN0IGV4dHJhY3QgdGhlIGJvZGllcyBvZiB0aGUgdmly
dHVhbCBnZXRDYWxsRGF0YSBtZXRob2RzCisgICAgICAgIHRocm91Z2hvdXQgdGhlIEpTQ2VsbCBp
bmhlcml0YW5jZSBoaWVyYXJjaHkgb3V0IGludG8gc3RhdGljIG1ldGhvZHMsIHdoaWNoIGFyZSAK
KyAgICAgICAgbm93IGNhbGxlZCBmcm9tIHRoZSB2aXJ0dWFsIG1ldGhvZHMuICBUaGlzIGlzIGFu
IGludGVybWVkaWF0ZSBzdGVwIGluIHRyeWluZyB0byAKKyAgICAgICAgbW92ZSB0aGUgdmlydHVh
bC1uZXNzIG9mIGdldENhbGxEYXRhIGludG8gb3VyIG93biBjdXN0b20gdnRhYmxlIHN0b3JlZCBp
biAKKyAgICAgICAgQ2xhc3NJbmZvLiAgV2UgbmVlZCB0byBjb252ZXJ0IHRoZSBtZXRob2RzIHRv
IHN0YXRpYyBtZXRob2RzIGluIG9yZGVyIHRvIGJlIAorICAgICAgICBhYmxlIHRvIG1vcmUgZWFz
aWx5IHN0b3JlIGFuZCByZWZlciB0byB0aGVtIGluIG91ciBjdXN0b20gdnRhYmxlIHNpbmNlIG5v
cm1hbCAKKyAgICAgICAgbWVtYmVyIG1ldGhvZHMgc3RvcmUgc29tZSBpbXBsaWNpdCBpbmZvcm1h
dGlvbiBpbiB0aGVpciB0eXBlcywgbWFraW5nIGl0IAorICAgICAgICBpbXBvc3NpYmxlIHRvIHN0
b3JlIHRoZW0gZ2VuZXJpY2FsbHkgaW4gQ2xhc3NJbmZvLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Vy
cm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRM
aXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRhVmly
dHVhbCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBbGxDb2xsZWN0aW9uOjpnZXRDYWxsRGF0
YSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBcHBsZXRFbGVtZW50OjpnZXRDYWxsRGF0YVZpcnR1
YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQXBwbGV0RWxlbWVudDo6Z2V0Q2FsbERhdGEp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxFbWJlZEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxFbWJlZEVsZW1lbnQ6OmdldENhbGxEYXRhKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSFRNTE9iamVjdEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1YXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cnVudGltZU9iamVjdEdldENhbGxEYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJ
bXA6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFs
bGJhY2tPYmplY3RJbXA6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpn
ZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lTWV0
YU1ldGhvZDo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1l
Q29ubmVjdGlvbk1ldGhvZDo6Y2FsbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjppc0phdmFT
Y3JpcHRGdW5jdGlvbik6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0
aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpn
ZXRDYWxsRGF0YSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1
bnRpbWVPYmplY3Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpSdW50aW1lT2JqZWN0OjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
b2JqZWN0Lmg6CisKIDIwMTEtMDktMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBdHRlbXB0ZWQgYnVpbGQgZml4ZXMgZm9yIEdUSyBhbmQgUXQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IDQ2ZjI5ZDc4YzI1OTVlYTIyYjQ5OTc2YWIwNTZiNDhkNmM4OGI2MDQu
LjgyNGY0NGJmNmViNmIzNjRjYzJlZWUwODMwYWFiZjZkYTViNGUwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCkBAIC0xNjQ2LDE3ICsxNjQ2LDE3IEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9y
aWVudGF0aW9uQ2hhbmdlRXZlbnRFaQogI2VuZGlmCiAKICNpZiBVU0UoUExVR0lOX0hPU1RfUFJP
Q0VTUykKLV9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTFnZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRh
RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFs
RGF0YUVSS05TXzEwSWRlbnRpZmllckUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRDYWxs
RGF0YVZpcnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRP
d25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3Jp
cHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2Ny
aXB0b3JFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGlt
ZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0
b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9i
amVjdEQxRXYKLV9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVS
TlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVBy
b3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4QmluZGlu
Z3MxM1J1bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQog
X19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNmdldENvbnN0cnVjdERhdGFFUk5TXzEz
Q29uc3RydWN0RGF0YUUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRDYWxs
RGF0YVZpcnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2Jq
ZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdl
dE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlF
TlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmNwcAppbmRleCAyMDRjMzQ4NDk3ZTdlYzEyNDEzZTg2MjdlZTQyOGRl
M2RmZDhlNjI5Li4wYjI3MDA4MDdkYjFjMTdkOTRmZTZmZDlhZDE3ZGRkMjQ0ODBmYzBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKE1hcmtlZEFy
Z3VtZW50QnVmZmVyJiBhcmdzLCBib29sKiByYWlzZWRFCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7
CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEp
OwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgY2FsbFR5cGUg
PSBjYWxsYmFjaygpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBlID0g
Y2FsbGJhY2soKS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNh
bGxUeXBlID09IENhbGxUeXBlTm9uZSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAg
ICAgICAgIGZ1bmN0aW9uID0gY2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCA1YjJlZDdlMzQ2
NjZhMDgyYzhjMTUyM2NiODRjMDliNWMxYmQxMGRiLi4wNjJiYmEwZjc5ZmFlNTMzMDU5Y2UxOWQ5
OWI1YWNiOGNlM2RlZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFN0cmluZyBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYg
cHJlZml4KQogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0g
Z2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2Fs
bFR5cGVOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0Q2Fs
bERhdGEoY2FsbERhdGEpOworICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPmdl
dENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJl
ciBhbmQgc291cmNlIFVSTC4KICAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNv
bnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFt
ZXNwYWNlVVJJIG1ldGhvZC4iLCAwLCBTdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggNGYyY2UzOTRhMmEwZDNmNTI3NWNhYzdk
NDY4ZmZhOWE3YzAyMjE1Ny4uYTk0Zjc5NjZkYjJmMmYxYjA0YWIzNmVmMzA5NTA0ZjUzMjQ2MDhl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAgQ2FsbERhdGEgY2FsbERh
dGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxs
RGF0YSk7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YVZp
cnR1YWwoY2FsbERhdGEpOwogCiAgICAgaWYgKGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSkgewog
ICAgICAgICBSZWZQdHI8SlNFcnJvckhhbmRsZXI+IHByb3RlY3RlZGN0b3IodGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCAyNjMw
OTU2ZTQwOWEyMmY4ZDU5OGY2ZTI5MzdhYTFmNjZhNzlmODUxLi45MWNhMTQ5OWExYzVkZmQyNjVm
MjMwYTNiODA4NDIzMWFhMjUzOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEpTRXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dAogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoaGFuZGxlRXZlbnRG
dW5jdGlvbiwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsK
ICAgICAgICAgaGFuZGxlRXZlbnRGdW5jdGlvbiA9IEpTVmFsdWUoKTsKLSAgICAgICAgY2FsbFR5
cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBl
ID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICB9CiAKICAg
ICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IGM2
YTkwNTQ5YzkzNDVkYzY2ZDJhMDFkN2RkYzE3M2JmMWQwYjY1MzUuLjcwZWI2ZTE3NWVmMzk4MTRj
NmU4YWJjYjIwZDUzN2FmZjM1ZGZjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC05OSw3ICs5OSwx
MiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTEFsbENvbGxl
Y3Rpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUNhbGxUeXBlIEpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRh
KENhbGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBlIEpTSFRNTEFsbENvbGxlY3Rpb246OmdldENh
bGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxE
YXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgSlNIVE1MQWxsQ29sbGVjdGlvbjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxIVE1MQWxsQ29sbGVjdGlvbjsKICAgICByZXR1cm4gQ2Fs
bFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
QXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAyYmZmMDFhOTZkMTUzNDRlYTdkZWFhOGVk
ZDIzMTZjNWZlOGNhYWMwLi44MGQ1OTRlZjU4ODk0YzU2ZGMxN2RiODQzNTcwY2JkYmExN2Y0N2E1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVt
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBs
ZXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDgsOSArNDgsMTQgQEAgYm9vbCBKU0hUTUxBcHBsZXRF
bGVtZW50OjpwdXREZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnQKICAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCB0aGlzLCBzbG90KTsKIH0KIAotQ2FsbFR5cGUgSlNIVE1MQXBwbGV0RWxlbWVu
dDo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgSlNIVE1MQXBwbGV0
RWxlbWVudDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICBy
ZXR1cm4gcnVudGltZU9iamVjdEdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKKyAgICByZXR1
cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBKU0hUTUxBcHBs
ZXRFbGVtZW50OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkK
K3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEdldENhbGxEYXRhKHN0YXRpY19jYXN0PEpTSFRN
TEFwcGxldEVsZW1lbnQqPihjZWxsKSwgY2FsbERhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJl
ZEVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRW1i
ZWRFbGVtZW50Q3VzdG9tLmNwcAppbmRleCA3MmU2OTViNjU1MDk5MThkYWU3NjUzNTZjYzQ0NzMz
NjNlNTQyZjEyLi41YzRiNzBhMWExMmEyNmRhY2Y0MWEwNjhkNGI1NTJiYWFlZmU2NWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1lbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVu
dEN1c3RvbS5jcHAKQEAgLTQ4LDkgKzQ4LDE0IEBAIGJvb2wgSlNIVE1MRW1iZWRFbGVtZW50Ojpw
dXREZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAg
ICAgcmV0dXJuIHJ1bnRpbWVPYmplY3RDdXN0b21QdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgdGhpcywgc2xvdCk7CiB9CiAKLUNhbGxUeXBlIEpTSFRNTEVtYmVkRWxlbWVudDo6Z2V0Q2Fs
bERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgSlNIVE1MRW1iZWRFbGVtZW50Ojpn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIHJldHVybiBydW50
aW1lT2JqZWN0R2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworICAgIHJldHVybiBnZXRDYWxs
RGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTSFRNTEVtYmVkRWxlbWVudDo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0
dXJuIHJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YShzdGF0aWNfY2FzdDxKU0hUTUxFbWJlZEVsZW1l
bnQqPihjZWxsKSwgY2FsbERhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRD
dXN0b20uY3BwCmluZGV4IGM4N2I5MzJiYjdiZGY0YWQ1Y2UyODZjNWZiYzJhNGMyYTMwNTRhN2Eu
LjdiMzkwZTM1ZDY1NGU1NzdjNzA5NDRlNmI4NmU2Yzg1N2YwODhlNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20u
Y3BwCkBAIC00OCw5ICs0OCwxNCBAQCBib29sIEpTSFRNTE9iamVjdEVsZW1lbnQ6OnB1dERlbGVn
YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIHJldHVy
biBydW50aW1lT2JqZWN0Q3VzdG9tUHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHRoaXMs
IHNsb3QpOwogfQogCi1DYWxsVHlwZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YShD
YWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIHJldHVybiBydW50aW1lT2Jq
ZWN0R2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0
aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTSFRNTE9iamVjdEVsZW1lbnQ6OmdldENh
bGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBy
dW50aW1lT2JqZWN0R2V0Q2FsbERhdGEoc3RhdGljX2Nhc3Q8SlNIVE1MT2JqZWN0RWxlbWVudCo+
KGNlbGwpLCBjYWxsRGF0YSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcAppbmRleCA3ZjlmOTllNjQ3MDEyOWZmY2UyNzdkMTlmM2YyNzM3YWNlZDc4MjQzLi4w
MzFiYzIxMmQ2MWMzNTE2M2ZkMzRmMWRkMzQwYjMwNGVjZTJlMTY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwCkBAIC04NSw3ICs4NSw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1
YXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIEpTRnVuY3Rpb24qIGV2YWxGdW5jdGlv
biA9IGdsb2JhbE9iamVjdC0+ZXZhbEZ1bmN0aW9uKCk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7
Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBldmFsRnVuY3Rpb24tPmdldENhbGxEYXRhKGNhbGxE
YXRhKTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGV2YWxGdW5jdGlvbi0+Z2V0Q2FsbERhdGFW
aXJ0dWFsKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5jcHAKaW5kZXggMjZiYjA1ZGQwM2M2YjI3NmJiYWNlNTIyMjU2NmViYjFhYTMz
ZjcwZS4uMTQ3YmMzODZlMjNiYTk3MDkxMzA0ZjIwMzVmZWU4NjczODEzMDU3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgQ2FsbFR5cGUgcnVudGltZU9iamVjdEdldENhbGxE
YXRhKEpTSFRNTEVsZW1lbnQqIGVsZW1lbnQsIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICBpZiAo
SlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3
QmFzZShlbGVtZW50KSkgewogICAgICAgICBDYWxsRGF0YSBzY3JpcHRPYmplY3RDYWxsRGF0YTsK
ICAgICAgICAgCi0gICAgICAgIGlmIChzY3JpcHRPYmplY3QtPmdldENhbGxEYXRhKHNjcmlwdE9i
amVjdENhbGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChzY3JpcHRPYmplY3Qt
PmdldENhbGxEYXRhVmlydHVhbChzY3JpcHRPYmplY3RDYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25l
KQogICAgICAgICAgICAgcmV0dXJuIENhbGxUeXBlTm9uZTsKIAogICAgICAgICBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBjYWxsUGx1Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1MjAzZmRmMGM0MDcxODg2YmVj
YmQ0NjE4YzExYTZiYzhlOWQzZDhkLi43MzU0ZWM3ZjU3MzNlOGM3NGU0ZGJhMWFkYTNjZmQ0NDhl
NTc4ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtODE2LDcgKzgxNiw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBw
dXNoRXZlbnRIYW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2Rl
KikgY29uc3Q7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVB1c2hFdmVudEhhbmRsZXJTY29wZSJ9OwogCiAgICAgIyBDdXN0b20gY2FsbCBmdW5jdGlvbnMK
LSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0M6OkNhbGxEYXRhJik7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUNhbGwifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoSlNDOjpDYWxsRGF0YSYpO1xu
XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21DYWxsIn07Cisg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTtcblxuIikgaWYgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ2FsbCJ9OwogCiAgICAgIyBDdXN0b20gZGVsZXRl
UHJvcGVydHkgZnVuY3Rpb24KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRGVsZXRl
UHJvcGVydHkifTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5k
ZXggODM4MGI5ZGFhMTIzOTU0NDRhMWYwYjFhYjczZjM1YWJjYjUxMTZkOC4uYzFhZGViM2UwOGMz
ZDFhNGRhMzNiMjAyMjQ1MTRmYzQzMjZjMWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmgKQEAgLTEyNiw3ICsxMjYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhKENhbGxEYXRhJik7CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0
YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFs
dWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggYzAz
ZjI4ZjAzN2I3M2ZlZTM2YmFjZDFmOTZkOWMwNDE3NjI0ZjQyMS4uMDE3MWM3NTJlZjkxNzk5NGVi
MjcwNTBlMmQ2ZWQ3NjA4ZWExODRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQpAQCAtMjU1LDkgKzI1NSwxNSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNhbGxUeXBlIE9iamNGYWxs
YmFja09iamVjdEltcDo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUg
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxE
YXRhKQogewotICAgIGlkIHRhcmdldE9iamVjdCA9IF9pbnN0YW5jZS0+Z2V0T2JqZWN0KCk7Cisg
ICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgT2Jq
Y0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBj
YWxsRGF0YSkKK3sKKyAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxPYmpjRmFsbGJhY2tPYmplY3RJbXAqPihjZWxsKTsKKyAgICBpZCB0YXJnZXRPYmpl
Y3QgPSB0aGlzT2JqZWN0LT5faW5zdGFuY2UtPmdldE9iamVjdCgpOwogICAgIGlmICghW3Rhcmdl
dE9iamVjdCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGludm9rZVVuZGVmaW5lZE1ldGhv
ZEZyb21XZWJTY3JpcHQ6d2l0aEFyZ3VtZW50czopXSkKICAgICAgICAgcmV0dXJuIENhbGxUeXBl
Tm9uZTsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsT2JqQ0ZhbGxiYWNrT2Jq
ZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IDk1ZWE4ZDkz
NDdmNTI0NjI1ZGY0ZTY5MjU1ZjNmOTRkNWY0ZDU5MjMuLjQzODBjZGI3YmVjNzQ1NzJkNGNiNmNm
NzVkMWE4ZTJhM2M2MTE3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKQEAgLTE0OTEsNyArMTQ5MSwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1DYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxs
RGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRD
YWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRo
b2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CkBA
IC0xNjIwLDcgKzE2MjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0
aG9kOjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPT0gMSkgewogICAgICAgICAgICAgICAgIGZ1bmNPYmplY3QgPSBleGVjLT5hcmd1
bWVudCgwKS50b09iamVjdChleGVjKTsKICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKLSAgICAgICAgICAgICAgICBpZiAoZnVuY09iamVjdC0+Z2V0Q2FsbERhdGEoY2FsbERhdGEp
ID09IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgICAgIGlmIChmdW5jT2JqZWN0LT5nZXRD
YWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoZC0+bV9pc0Nvbm5lY3QpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUXRNZXRhTWV0aG9k
LmNvbm5lY3Q6IHRhcmdldCBpcyBub3QgYSBmdW5jdGlvbiIpKTsKICAgICAgICAgICAgICAgICAg
ICAgZWxzZQpAQCAtMTYzMyw3ICsxNjM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29u
bmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAg
IC8vIEdldCB0aGUgYWN0dWFsIGZ1bmN0aW9uIHRvIGNhbGwKICAgICAgICAgICAgICAgICAgICAg
SlNPYmplY3QgKmFzT2JqID0gZXhlYy0+YXJndW1lbnQoMSkudG9PYmplY3QoZXhlYyk7CiAgICAg
ICAgICAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgICAgICAgICAgICAgICAgICBp
ZiAoYXNPYmotPmdldENhbGxEYXRhKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGFzT2JqLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpICE9
IENhbGxUeXBlTm9uZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdmVy
c2lvbgogICAgICAgICAgICAgICAgICAgICAgICAgZnVuY09iamVjdCA9IGFzT2JqOwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTY0Niw3ICsxNjUxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHZhbCA9IHRoaXNPYmplY3QtPmdldChleGVjLCBm
dW5jSWRlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGFzRnVuY09iaiA9
IHZhbC50b09iamVjdChleGVjKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFzRnVu
Y09iai0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGFzRnVuY09iai0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRh
KSAhPSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jT2Jq
ZWN0ID0gYXNGdW5jT2JqOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZC0+bV9pc0Nvbm5lY3QpCkBAIC0xODUzLDcgKzE4
NTgsNyBAQCBpbnQgUXRDb25uZWN0aW9uT2JqZWN0OjpxdF9tZXRhY2FsbChRTWV0YU9iamVjdDo6
Q2FsbCBfYywgaW50IF9pZCwgdm9pZCAqKl9hKQogc3RhdGljIGJvb2wgaXNKYXZhU2NyaXB0RnVu
Y3Rpb24oSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAg
IHJldHVybiB0b0pTKG9iamVjdCktPmdldENhbGxEYXRhKGNhbGxEYXRhKSA9PSBDYWxsVHlwZUpT
OworICAgIHJldHVybiB0b0pTKG9iamVjdCktPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSkg
PT0gQ2FsbFR5cGVKUzsKIH0KIAogdm9pZCBRdENvbm5lY3Rpb25PYmplY3Q6OmV4ZWN1dGUodm9p
ZCoqIGFyZ3YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGlt
ZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAppbmRleCBkZTIxM2My
MDk4MTIzMWRhYWZmNmY2Y2JlZjcxYzkzNWQ1YTdiMGUwLi4xMDk4MDIzNGY3NWM5Nzg4MWZlYzY2
N2RkMTZiMDIyOWRhNTE2YTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgK
QEAgLTE3OCw3ICsxNzgsOCBAQCBwcml2YXRlOgogICAgIFF0UnVudGltZU1ldGFNZXRob2QoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJbnN0
YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93
UHJpdmF0ZSk7CiAKLSAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7
CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSogZXhlYyk7
CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgSlNWYWx1ZSBjb25uZWN0R2V0dGVyKEV4ZWNT
dGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwCmluZGV4IGFjMDA0ZmQ5MWVmODNkOTU1ZDY1MzdkNWI0NWUxNjJh
Y2Y0YTlhMmUuLjEyZTY5YWU4ODFmZDE4NDA5OWRiNzFmZTdiNzE2YzM0NzYwNTg1ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtMTIzLDcgKzEyMywxMiBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU1ldGhvZChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1DYWxsVHlwZSBSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEp
CitDYWxsVHlwZSBSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNh
bGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisK
K0NhbGxUeXBlIFJ1bnRpbWVNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUnVudGltZU1l
dGhvZDsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuaAppbmRleCBjNWQwYTZkMGZiZTgyODk0N2JhMzMxOTMwZWZkYWVmZDg3NzBkNTMw
Li43MWI0MTM1MzE1ZGRmNjlhY2VjMDQwNDljMGZjMDQ2ZGUxNDRiYzQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNjcsNyArNjcsOCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShD
YWxsRGF0YSYpOworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxE
YXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7CiAKICAgICBPd25QdHI8QmluZGluZ3M6Ok1ldGhvZExpc3Q+IF9tZXRob2RMaXN0OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDVmZmY1ZTMwMjdi
NzViNGFkYWZhNDRlYTE0MGNlMDFmMmUzZjRkYjIuLjMwYTgxNDlkNjg5NTM5YWFiZTYwYmNhMzhj
OWUwNjJjZWQxYjBlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNw
cApAQCAtMjU5LDEyICsyNTksMTggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERh
dGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERh
dGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICBpZiAoIW1faW5zdGFuY2UpCisg
ICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgUnVu
dGltZU9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEp
Cit7CisgICAgUnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVP
YmplY3QqPihjZWxsKTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1faW5zdGFuY2UpCiAgICAgICAg
IHJldHVybiBDYWxsVHlwZU5vbmU7CiAgICAgCi0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5j
ZSA9IG1faW5zdGFuY2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmpl
Y3QtPm1faW5zdGFuY2U7CiAgICAgaWYgKCFpbnN0YW5jZS0+c3VwcG9ydHNJbnZva2VEZWZhdWx0
TWV0aG9kKCkpCiAgICAgICAgIHJldHVybiBDYWxsVHlwZU5vbmU7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGEyYzkyODg4MzdiZWMzZjJkZmVkM2RjOTRj
NmNkZTYyM2Y0OTEwOGQuLjFhYzIxYWQ0OGYyODM3Yzk2MDA4YWUzNTA4MWZjMGMwMzkzYTYxYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC01MCw3ICs1MCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CiAgICAgdmlydHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQ
cmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKLSAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENh
bGxEYXRhKENhbGxEYXRhJik7CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmKTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShD
b25zdHJ1Y3REYXRhJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOWQ1MTQyYjU1MjI1
NjM2NTNmNzg2NzAwN2U3ZjY3MTBkZGEwYTc3NC4uYTM5NTc3MTc0OTEyOTkwYTJhM2RiM2U5ZmNk
ZDRlYzhjMzM0ZmNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTA5
LTI1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN0YXRpYyB2ZXJzaW9uIG9mIEpTQ2VsbDo6Z2V0Q2FsbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCB3ZSBqdXN0IGV4
dHJhY3QgdGhlIGJvZGllcyBvZiB0aGUgdmlydHVhbCBnZXRDYWxsRGF0YSBtZXRob2RzCisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIEpTQ2VsbCBpbmhlcml0YW5jZSBoaWVyYXJjaHkgb3V0IGludG8g
c3RhdGljIG1ldGhvZHMsIHdoaWNoIGFyZSAKKyAgICAgICAgbm93IGNhbGxlZCBmcm9tIHRoZSB2
aXJ0dWFsIG1ldGhvZHMuICBUaGlzIGlzIGFuIGludGVybWVkaWF0ZSBzdGVwIGluIHRyeWluZyB0
byAKKyAgICAgICAgbW92ZSB0aGUgdmlydHVhbC1uZXNzIG9mIGdldENhbGxEYXRhIGludG8gb3Vy
IG93biBjdXN0b20gdnRhYmxlIHN0b3JlZCBpbiAKKyAgICAgICAgQ2xhc3NJbmZvLiAgV2UgbmVl
ZCB0byBjb252ZXJ0IHRoZSBtZXRob2RzIHRvIHN0YXRpYyBtZXRob2RzIGluIG9yZGVyIHRvIGJl
IAorICAgICAgICBhYmxlIHRvIG1vcmUgZWFzaWx5IHN0b3JlIGFuZCByZWZlciB0byB0aGVtIGlu
IG91ciBjdXN0b20gdnRhYmxlIHNpbmNlIG5vcm1hbCAKKyAgICAgICAgbWVtYmVyIG1ldGhvZHMg
c3RvcmUgc29tZSBpbXBsaWNpdCBpbmZvcm1hdGlvbiBpbiB0aGVpciB0eXBlcywgbWFraW5nIGl0
IAorICAgICAgICBpbXBvc3NpYmxlIHRvIHN0b3JlIHRoZW0gZ2VuZXJpY2FsbHkgaW4gQ2xhc3NJ
bmZvLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Omlu
dm9rZURlZmF1bHQpOgorCiAyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGFmMGE4NzMyMGM0ODZhYzg5
MGNjMDNkNjRjZTgxYTA3MTQ4MGNhMDUuLjNhMDNhYTRkYWExNDY1MGZjM2YwY2Y5ZDM5MGI5YmYz
YWNkYjJmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTk0Myw3ICs5NDMs
NyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6aW52b2tlRGVmYXVsdCh1aW50
MzJfdCBvYmplY3RJRCwgZGF0YV90IGFyZ3VtZQogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGZyYW1l
LT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KHBsdWdpbldvcmxkKCkpLT5nbG9iYWxFeGVjKCk7CiAg
ICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsgICAgCiAgICAgQ2FsbERhdGEg
Y2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBvYmplY3QtPmdldENhbGxEYXRhKGNh
bGxEYXRhKTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG9iamVjdC0+Z2V0Q2FsbERhdGFWaXJ0
dWFsKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2YTAyMWRkY2E2NjIyZmUyOWUxOGZhNjRj
Njc4MWQxNGFjM2QyM2IxLi41NmY2NGM5ZGZjZDMzMWNlOTdmNjY4YjQ2OTM4YjE4YmEwNTQ3OTMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDktMjUgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24g
b2YgSlNDZWxsOjpnZXRDYWxsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoIHdlIGp1c3QgZXh0cmFjdCB0aGUgYm9kaWVzIG9m
IHRoZSB2aXJ0dWFsIGdldENhbGxEYXRhIG1ldGhvZHMKKyAgICAgICAgdGhyb3VnaG91dCB0aGUg
SlNDZWxsIGluaGVyaXRhbmNlIGhpZXJhcmNoeSBvdXQgaW50byBzdGF0aWMgbWV0aG9kcywgd2hp
Y2ggYXJlIAorICAgICAgICBub3cgY2FsbGVkIGZyb20gdGhlIHZpcnR1YWwgbWV0aG9kcy4gIFRo
aXMgaXMgYW4gaW50ZXJtZWRpYXRlIHN0ZXAgaW4gdHJ5aW5nIHRvIAorICAgICAgICBtb3ZlIHRo
ZSB2aXJ0dWFsLW5lc3Mgb2YgZ2V0Q2FsbERhdGEgaW50byBvdXIgb3duIGN1c3RvbSB2dGFibGUg
c3RvcmVkIGluIAorICAgICAgICBDbGFzc0luZm8uICBXZSBuZWVkIHRvIGNvbnZlcnQgdGhlIG1l
dGhvZHMgdG8gc3RhdGljIG1ldGhvZHMgaW4gb3JkZXIgdG8gYmUgCisgICAgICAgIGFibGUgdG8g
bW9yZSBlYXNpbHkgc3RvcmUgYW5kIHJlZmVyIHRvIHRoZW0gaW4gb3VyIGN1c3RvbSB2dGFibGUg
c2luY2Ugbm9ybWFsIAorICAgICAgICBtZW1iZXIgbWV0aG9kcyBzdG9yZSBzb21lIGltcGxpY2l0
IGluZm9ybWF0aW9uIGluIHRoZWlyIHR5cGVzLCBtYWtpbmcgaXQgCisgICAgICAgIGltcG9zc2li
bGUgdG8gc3RvcmUgdGhlbSBnZW5lcmljYWxseSBpbiBDbGFzc0luZm8uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkpTTlBNZXRob2Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChXZWJLaXQ6OkpT
TlBNZXRob2Q6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0Q2FsbERh
dGFWaXJ0dWFsKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0Q2FsbERhdGEpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisKIDIw
MTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5j
cHAKaW5kZXggMTJiODRkOTg0Y2E3YzQ5ZTY5MzM0NDNiY2M5ZDhhNDFkZjMyM2Y1OS4uNzM0ZTE2
ZWYxNTNjMDE3ZTQ5MTgxODQxOThlMTE5YzI2MDI4OWE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcApA
QCAtNzcsNyArNzcsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiB9CiAKLUNhbGxUeXBlIEpTTlBNZXRob2Q6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxs
RGF0YSkKK0NhbGxUeXBlIEpTTlBNZXRob2Q6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYg
Y2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30K
KworQ2FsbFR5cGUgSlNOUE1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNh
bGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxNZXRob2Q7CiAg
ICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCmluZGV4IDNjYmU5Yjk5NmIyYjg1
MmI1NjcxZmJjMmY5OGIxMmIzZjUyYmM2ZjkuLmE4ZmI2MjdmNWY3NzA5NGI1N2Y5OTY1MmI4NTNj
YWIxY2ZkZmM0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaApAQCAtNjIsNyArNjIsOCBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQogCi0gICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsKKyAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0
Q2FsbERhdGFWaXJ0dWFsKEpTQzo6Q2FsbERhdGEmKTsKKyAgICBzdGF0aWMgSlNDOjpDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKICAgICAKICAgICBO
UElkZW50aWZpZXIgbV9ucElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDQ0
M2RhYjFjMDc2ZTRiMGJjZDRlMjRjMjhkNjU5MDUwNzY2ZTcyNjMuLmM2YTYyMDVlMjllZjdhOGYy
MmNmMGNlM2M4MWMwMjM2YmY4ZTU0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTIxNywxMCAr
MjE3LDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOUEpTT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0YXRpY19j
YXN0PEpTTlBPYmplY3QqPihvYmplY3QpLT5jYWxsT2JqZWN0KGV4ZWMpKTsKIH0KIAotSlNDOjpD
YWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJiBjYWxsRGF0YSkK
K0NhbGxUeXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERh
dGEpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAg
ICBpZiAoIW1fbnBPYmplY3QgfHwgIW1fbnBPYmplY3QtPl9jbGFzcy0+aW52b2tlRGVmYXVsdCkK
KyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitKU0M6OkNhbGxU
eXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRhKEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OkNhbGxE
YXRhJiBjYWxsRGF0YSkKK3sKKyAgICBKU05QT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNOUE9iamVjdCo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgJnNfaW5mbyk7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0IHx8ICF0
aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmludm9rZURlZmF1bHQpCiAgICAgICAgIHJl
dHVybiBDYWxsVHlwZU5vbmU7CiAKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxs
TlBKU09iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IGU2NWM4OWRlNWVjZjBiMjYzMGM4MjMxNDkz
OTA2MmFlNjM2MmVmZmMuLjI2NGE2MzVjMDE1ZjQ5NjE4NzI2Njc4ZmIxYjNmZTcxM2VmYjlmMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaApAQCAtNzksNyArNzksOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiAgICAgfQogCi0gICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpT
Qzo6Q2FsbERhdGEmKTsKKyAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0
dWFsKEpTQzo6Q2FsbERhdGEmKTsKKyAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIEpTQzo6Q29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogCiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108727</attachid>
            <date>2011-09-26 14:52:24 -0700</date>
            <delta_ts>2011-09-26 20:25:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68741-20110926145223.patch</filename>
            <type>text/plain</type>
            <size>78045</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCBhMzk2OGM2ODVjM2I3OGIwMTMzZTA1NDE2
ZjJkNjBkYzNkYTY1MWIwLi4xMmMwNWRjNmIyYmI2NzllZWJjOTM2YTRmY2JmOTUyZGVkOTM1Mjhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC03Nyw3ICs3NywxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrRnVuY3Rpb246
OmNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhl
eGVjLCByZXN1bHQpKTsKIH0KIAotQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxs
RGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU0NhbGxiYWNrRnVuY3Rpb246Omdl
dENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENh
bGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbDsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggN2Uy
NjUyZWQyYTE3NDBmMTFiZjcyZjMyYzEzNTJhNjM2YzRlYmFjZC4uY2UyYWQ5Y2JkNjE5NDVkMDlm
YTZmNjBjMmNiNWEzNDMyNjhiMTU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwor
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDFkZWZi
NGU1ZTU2ZTFmNWNkNTUzODk3ZmE0YmI1ODU1MzU5ZTUwODMuLjdjZDQ4M2NhZWI4ZTU3ZmZjZjNl
MzUzZTA0MTJlNmU1MDY0ZGUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdC5oCkBAIC0xOTQsNyArMTk0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2M2Jm
YmM2ZjY3ZTc2ZjkyNjQ3ZmMzYmQ1ZTkwOWYyYmI0Y2RmYjlmLi42OWRlY2ExMDE0NTFhYjdlMDIw
NGEwNjkyYzkxOTk4ODc4YWVjYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMzcyLDkgKzM3MiwxNiBAQCBi
b29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbAogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotQ2Fs
bFR5cGUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2Fs
bERhdGEpCitDYWxsVHlwZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENhbGxEYXRhVmly
dHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCiB7Ci0gICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3Mg
PSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsK
KyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCit0ZW1wbGF0ZSA8
Y2xhc3MgUGFyZW50PgorQ2FsbFR5cGUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxs
RGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICBKU0NhbGxiYWNr
T2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwp
OworICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iamVjdC0+Y2xhc3NSZWYoKTsg
anNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChq
c0NsYXNzLT5jYWxsQXNGdW5jdGlvbikgewogICAgICAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbDsKICAgICAgICAgICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGNmMDMxZjcwZTNiMmM4NzQ0
YjAwMDA1NTNhMGEyYjYxYTU5ZjJhYmUuLmZhNjgyZDhmYTJlOTAwOGMyNjg4MjBmYmU4NDI5ZTFl
MDM2MWI5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBA
IC00MTYsNyArNDE2LDcgQEAgYm9vbCBKU09iamVjdERlbGV0ZVByaXZhdGVQcm9wZXJ0eShKU0Nv
bnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW4KIGJvb2wgSlNPYmplY3RJ
c0Z1bmN0aW9uKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIENhbGxE
YXRhIGNhbGxEYXRhOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmdldENhbGxEYXRhKGNhbGxE
YXRhKSAhPSBDYWxsVHlwZU5vbmU7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+Z2V0Q2FsbERh
dGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmU7CiB9CiAKIEpTVmFsdWVSZWYgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC00MzUsNyArNDM1
LDcgQEAgSlNWYWx1ZVJlZiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNPYmplY3QKICAgICAgICAgYXJnTGlzdC5hcHBlbmQodG9K
UyhleGVjLCBhcmd1bWVudHNbaV0pKTsKIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENh
bGxUeXBlIGNhbGxUeXBlID0ganNPYmplY3QtPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGpzT2JqZWN0LT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEp
OwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCiAgICAgICAgIHJldHVybiAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBiZWY2NGY0YzU2M2VlY2E1MjgwYjgxMjEzMDBh
MzQyYzRkMTQxOWMxLi40NTAwYTJkMGQwNDQ3MzI1MjQxOWI0YjM5MzNmNDQxYTQyYTNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDUgQEAKKzIwMTEtMDktMjUgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Rh
dGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRDYWxsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoIHdlIGp1c3QgZXh0cmFjdCB0
aGUgYm9kaWVzIG9mIHRoZSB2aXJ0dWFsIGdldENhbGxEYXRhIG1ldGhvZHMKKyAgICAgICAgdGhy
b3VnaG91dCB0aGUgSlNDZWxsIGluaGVyaXRhbmNlIGhpZXJhcmNoeSBvdXQgaW50byBzdGF0aWMg
bWV0aG9kcywgd2hpY2ggYXJlIAorICAgICAgICBub3cgY2FsbGVkIGZyb20gdGhlIHZpcnR1YWwg
bWV0aG9kcy4gIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIHN0ZXAgaW4gdHJ5aW5nIHRvIAorICAg
ICAgICBtb3ZlIHRoZSB2aXJ0dWFsLW5lc3Mgb2YgZ2V0Q2FsbERhdGEgaW50byBvdXIgb3duIG1l
dGhvZCB0YWJsZSBzdG9yZWQgaW4gCisgICAgICAgIENsYXNzSW5mby4gIFdlIG5lZWQgdG8gY29u
dmVydCB0aGUgbWV0aG9kcyB0byBzdGF0aWMgbWV0aG9kcyBiZWNhdXNlIHN0YXRpYyBtZXRob2Rz
IAorICAgICAgICBjYW4gYmUgcmVwcmVzZW50ZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMgcmF0aGVy
IHRoYW4gcG9pbnRlcnMgdG8gbWVtYmVyIG1ldGhvZHMsIGFuZAorICAgICAgICBmdW5jdGlvbiBw
b2ludGVycyBhcmUgc21hbGxlciBhbmQgZmFzdGVyIHRvIGNhbGwgdGhhbiBwb2ludGVycyB0byBt
ZW1iZXIgbWV0aG9kcy4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwOgor
ICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OmdldENhbGxEYXRhVmlydHVhbCk6Cisg
ICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAq
IEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAg
IChKU0M6Ojo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6OjpnZXRDYWxsRGF0
YSk6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0SXNG
dW5jdGlvbik6CisgICAgICAgIChKU09iamVjdENhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZSk6
CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJf
RlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
IChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6Qm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6Cisg
ICAgICAgICogcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0
Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6RGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBy
dW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0
aW9uOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVy
cm9yRnVuY3Rpb246OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZp
cnR1YWwpOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6Cisg
ICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6
RnVuY3Rpb25Qcm90b3R5cGU6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6Cisg
ICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldENh
bGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0Q2FsbERhdGEpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OmdldENhbGxEYXRhKToKKyAg
ICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRDYWxs
RGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGlt
ZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVy
KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OnRvSlNPTik6CisgICAgICAgIChKU0M6OlN0
cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgICogcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6TmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFs
KToKKyAgICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAg
ICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaDoKKyAgICAgICAg
KiBydW50aW1lL09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpqc1R5cGVTdHJpbmdGb3JW
YWx1ZSk6CisgICAgICAgIChKU0M6OmpzSXNPYmplY3RUeXBlKToKKyAgICAgICAgKEpTQzo6anNJ
c0Z1bmN0aW9uVHlwZSk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpT
dHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6U3Ry
aW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmg6CisKIDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCAwMjBjODU1
NmM1NWU0OWViODViZDE3MzVlOGE4NGI4N2VjYmYyNzE4Li45YzRmMzc5M2JjYWRjM2I0NTQ5NjAw
OWFkZjFiNzk3YzdiYzhkYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTI1MiwxMCArMjUyLDEwIEBAIF9fWk4zSlNDNFlhcnIxMVlhcnJQYXR0ZXJuQzFF
UktOU183VVN0cmluZ0ViYlBQS2MKIF9fWk4zSlNDNFlhcnIxMWJ5dGVDb21waWxlRVJOUzBfMTFZ
YXJyUGF0dGVybkVQTjNXVEYyMEJ1bXBQb2ludGVyQWxsb2NhdG9yRQogX19aTjNKU0M0WWFycjlp
bnRlcnByZXRFUE5TMF8xNUJ5dGVjb2RlUGF0dGVybkVSS05TXzdVU3RyaW5nRWpqUGkKIF9fWk4z
SlNDNGNhbGxFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfOENhbGxUeXBlRVJLTlNfOENh
bGxEYXRhRVMyX1JLTlNfN0FyZ0xpc3RFCi1fX1pOM0pTQzZKU0NlbGwxMWdldENhbGxEYXRhRVJO
U184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEz
Q29uc3RydWN0RGF0YUUKK19fWk4zSlNDNkpTQ2VsbDE4Z2V0Q2FsbERhdGFWaXJ0dWFsRVJOU184
Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0Nl
bGwxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90
RQogX19aTjNKU0M2SlNDZWxsMThnZXRQcmltaXRpdmVOdW1iZXJFUE5TXzlFeGVjU3RhdGVFUmRS
TlNfN0pTVmFsdWVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCmluZGV4IDNlYjc4YjUzZDdkNDlmNDY4ZDNiMWMxZjAxNGEzYWUwZWMxZWRh
M2UuLjNiNmQyMzM4YmI4MDRiYTE3ZGI5YzYyYTI3N2VkYmZiYmU4NGNiMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC0xODYs
NyArMTg2LDcgQEAgRVhQT1JUUwogICAgID9mdW5jdGlvbk5hbWVARGVidWdnZXJDYWxsRnJhbWVA
SlNDQEBRQkVQQlZVU3RyaW5nQDJAWFoKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NAQFFBRUlBQVZK
U0dsb2JhbERhdGFAMkBBQlZJZGVudGlmaWVyQDJAQUFJQUFQQVZKU0NlbGxAMkBAWgogICAgID9n
ZXRAU3RydWN0dXJlQEpTQ0BAUUFFSUFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cmluZ0ltcGxAV1RG
QEBBQUlBQVBBVkpTQ2VsbEAyQEBaCi0gICAgP2dldENhbGxEYXRhQEpTQ2VsbEBKU0NAQFVBRT9B
VzRDYWxsVHlwZUAyQEFBVENhbGxEYXRhQDJAQFoKKyAgICA/Z2V0Q2FsbERhdGFWaXJ0dWFsQEpT
Q2VsbEBKU0NAQFVBRT9BVzRDYWxsVHlwZUAyQEFBVENhbGxEYXRhQDJAQFoKICAgICA/Z2V0Q29u
c3RydWN0RGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q29uc3RydWN0VHlwZUAyQEFBVENvbnN0cnVj
dERhdGFAMkBAWgogICAgID9nZXRPYmplY3RASlNDZWxsQEpTQ0BAUUFFUEFWSlNPYmplY3RAMkBY
WgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNHbG9iYWxPYmplY3RASlNDQEBVQUVf
TlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAKaW5kZXggOWYwYWEzMGRmYjZjYjllZmNjNDcxYzUwMTk5MTJhMDQwZmYxYzJkZi4uNGM2MTcx
ZjcxYjQ3OGFkN2Y2ZGM2NjYxN2RjN2M0Y2NkNTFkMmZiZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC0yODI5LDcgKzI4Mjks
NyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpb25GbGFnIGZs
YWcsIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaQogICAgICAgICAgICAgICAgICAgICBpZiAoR2V0
dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBhc0dldHRlclNldHRlcihwcm90b09iamVjdC0+Z2V0
RGlyZWN0T2Zmc2V0KG9mZnNldCkuYXNDZWxsKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBKU09iamVjdCogZ2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgICAgICAgICAgICAgICAgICAgICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5nZXRDYWxsRGF0
YVZpcnR1YWwoY2FsbERhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1
bHQgPSBjYWxsKGNhbGxGcmFtZSwgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFzT2JqZWN0
KGJhc2VDZWxsKSwgQXJnTGlzdCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0ZP
Ul9FWENFUFRJT04oKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZS0+dW5jaGVj
a2VkUihkc3QpID0gcmVzdWx0OwpAQCAtMjk2NCw3ICsyOTY0LDcgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxhZyBmbGFnLCBSZWdpc3RlckZpbGUqIHJl
Z2lzdGVyRmkKICAgICAgICAgICAgICAgICBpZiAoR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIg
PSBhc0dldHRlclNldHRlcihiYXNlT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0KS5hc0Nl
bGwoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlciA9IGdldHRlclNl
dHRlci0+Z2V0dGVyKCk7CiAgICAgICAgICAgICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwot
ICAgICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0Q2FsbERh
dGEoY2FsbERhdGEpOworICAgICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdl
dHRlci0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgICAgICAgICAgICAg
SlNWYWx1ZSByZXN1bHQgPSBjYWxsKGNhbGxGcmFtZSwgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERh
dGEsIGJhc2VPYmplY3QsIEFyZ0xpc3QoKSk7CiAgICAgICAgICAgICAgICAgICAgIENIRUNLX0ZP
Ul9FWENFUFRJT04oKTsKICAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLT51bmNoZWNrZWRS
KGRzdCkgPSByZXN1bHQ7CkBAIC0zMDcyLDcgKzMwNzIsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxm
OgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVy
ID0gYXNHZXR0ZXJTZXR0ZXIoYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkuYXND
ZWxsKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlciA9
IGdldHRlclNldHRlci0+Z2V0dGVyKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fs
bERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsbFR5cGUgY2Fs
bFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0Q2FsbERhdGFWaXJ0dWFs
KGNhbGxEYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGNhbGwoY2FsbEZyYW1lLCBnZXR0ZXIsIGNhbGxUeXBlLCBjYWxsRGF0YSwgYmFzZVZhbHVlLCBB
cmdMaXN0KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJ
T04oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsRnJhbWUtPnVuY2hlY2tlZFIo
ZHN0KSA9IHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXgg
Y2VmOTQyMWI0ZWU0MWRlYTkzOTNmZTdiY2M5YzI1NGJmZmM4YTA5YS4uNGMwNWJhMWRkNTA5Njk4
ZmFmMGVlY2ZiNDZiYWU5MDBmNDk0NzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAKQEAgLTE3NTUsNyArMTc1NSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29k
ZWRKU1ZhbHVlLCBvcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNPYmplY3QqIGdldHRlciA9IGFzT2Jq
ZWN0KGdldHRlclNldHRlci0+Z2V0dGVyKCkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAg
IENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGNhbGxGcmFtZSwgZ2V0dGVyLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIHN0YWNrRnJhbWUuYXJnc1sxXS5qc09iamVjdCgpLCBBcmdMaXN0KCkpOwogICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm5Ub1Rocm93VHJh
bXBvbGluZSgmY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIHN0YWNrRnJhbWUuYXJnc1syXS5yZXR1
cm5BZGRyZXNzKCksIFNUVUJfUkVUVVJOX0FERFJFU1MpOwpAQCAtMjE1OCw3ICsyMTU4LDcgQEAg
REVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIG9wX2NhbGxfaml0Q29tcGlsZSkKIAogI2lmICFB
U1NFUlRfRElTQUJMRUQKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBBU1NFUlQoc3RhY2tG
cmFtZS5jYWxsRnJhbWUtPmNhbGxlZSgpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgPT0gQ2FsbFR5
cGVKUyk7CisgICAgQVNTRVJUKHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jYWxsZWUoKS0+Z2V0Q2Fs
bERhdGFWaXJ0dWFsKGNhbGxEYXRhKSA9PSBDYWxsVHlwZUpTKTsKICNlbmRpZgogICAgIAogICAg
IHJldHVybiBqaXRDb21waWxlRm9yKHN0YWNrRnJhbWUsIENvZGVGb3JDYWxsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
YThkNjQ1ODc5MGRjY2M4NjUxNWZhYTBkNjllOWIwZWNmZDdkNjA1Zi4uNGU1YjRjNGJmNzcxNWEz
YTdlNTBkYmQ2OGFmMzI0ZDQ2OTU3MDY0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwOSw3ICsxMDksMTIgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlX
aXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MpKTsKIH0KIAotQ2FsbFR5cGUgQXJyYXlDb25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgQXJyYXlDb25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1
cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBBcnJheUNvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAg
Ly8gZXF1aXZhbGVudCB0byAnbmV3IEFycmF5KC4uLi4pJwogICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxBcnJheUNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDk2Y2VjNmI3YjdiMzIwN2FkMjM4
ZmFhZWYyODEyZmEyZjg3MzQ1OGYuLmM0NmRjYjIzNjMyZGFiNGZjN2I4NjZmOWE3YzA3NzAzZTM2
MWUwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmgKQEAgLTU1LDcgKzU1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5D
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwCmluZGV4IGY2ZTJhNzA4YzNmZjkwY2JlNmZiOGQzMGMxOWFkZWUyZmEzNzc5
ZDUuLmM5OGM5OGVmZTEwMGI0NDNiNjVkNjRiNDc1YjZlZGUzMTVjMThkNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcApA
QCAtNjgsNyArNjgsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oZXhlYy0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGV4ZWMpKSk7CiB9
CiAKLUNhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNh
bGxEYXRhKQorQ2FsbFR5cGUgQm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwo
Q2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxs
RGF0YSk7Cit9CisKK0NhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxCb29sZWFuQ29uc3RydWN0b3I7CiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgK
aW5kZXggMWQ5NDY4ODYzNzkxMGZhOWFmYWUxNWE3NDA1MjcwY2M4OTcwODVjNi4uMDM5NWY4MjY3
ZTg2NTNkMGE4MTgzMWQ4YTA0M2I0N2QzNGNiMmY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVhbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCiAgICAgSlNPYmplY3Qq
IGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihFeGVjU3RhdGUqLCBKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODVmNTQ0YWRjNzQ4NWMyM2IyNGY0YmI4Yzg2OGIw
ODc2NTU0Mjc0MC4uZWEzMzFlMDljY2Q0YjU0NDNkZjhiZTYyNjdhNDY0NDQyMWFhZTgwYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3Bw
CkBAIC0xNzYsNyArMTc2LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxEYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgZGF0ZSwgIiAiLCB0aW1lKSk7CiB9CiAKLUNhbGxU
eXBlIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2Fs
bFR5cGUgRGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxE
YXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0Nh
bGxUeXBlIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNh
bGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxEYXRlOwogICAg
IHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IGZkYjdhMTFhMWNlN2FkMmM3YmRjYTViOTE3N2M0MDlj
MWM2ZDNkMTguLjA2ZGM5NGE4YjdiMGMzNGNmMWQwOWFkMjQ4MjRhMzI3NWY5ZDRiMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC01
Miw3ICs1Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIERhdGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFs
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAg
IHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVh
bCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IDAwODExMzVk
OTgxZjc5ZTMxMWI3NzZiZWU1MDMxYmFlMTIyMDBjNjcuLjE5ZDkyMTZjNjFkNWM0N2YyOGRjNGI4
YjRkZWQ5MTYyZTRjM2Q5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5j
cHAKQEAgLTIwMSw3ICsyMDEsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAKLSAgICBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxs
RGF0YSYgY2FsbERhdGEpCisgICAgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRh
JiBjYWxsRGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxs
RGF0YSk7CisgICAgfQorCisgICAgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQogICAgIHsKICAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbFRocm93VHlwZUVycm9yOwogICAgICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAppbmRl
eCBhODkxOGQ2NmRhY2Y1Mzg4YjdlMWE3NThjMzZkMGQ5MThlNmQyZmE2Li5hMDVjZDUyNmQ4YjQ2
NzhlZjM2NDRlYWZkMDAwNzBmMDMwOWQ4MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjQsNyArNjQsMTIgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEVycm9yQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKLUNhbGxUeXBlIEVy
cm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBl
IEVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEp
Cit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5
cGUgRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxE
YXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxFcnJvckNvbnN0cnVj
dG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggNTA4M2E4ZTU3ZmZlY2YzMjE0ZWM2
OGYyZDUxZWRkNDY4MjVmZWYzNy4uMjRmYzE5OGIyY2ZlMWUwZDdkZTM0ZjU1Y2JmOTkyMjg0NGNj
MzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3Ry
dWN0b3IuaApAQCAtNDUsNyArNDUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgog
ICAgICAgICBFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAg
ICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERh
dGEmKTsKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwor
ICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOwor
ICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMzA0MjQ5ZDk1NDky
MjM1ZTE2ODcxNDg4MTc4NGJmMjJkZGExODZiMS4uZjY5MTMwMGM5NTJjMTBjYzFiMjgwYWRkODdi
YjQ4YWZmMjRjYzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTY5LDggKzY5LDEzIEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4
ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBh
cmdzKSk7CiB9CiAKK0NhbGxUeXBlIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmly
dHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMs
IGNhbGxEYXRhKTsKK30KKwogLy8gRUNNQSAxNS4zLjEgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9y
IENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1DYWxsVHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3I7CiAgICAgcmV0dXJu
IENhbGxUeXBlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCAzMDM0ZWYxZmZkMjFmNmZmMTc1ZGFiMGM4OGVjNmE4
MzY5NGEyYmExLi42OGYwNTdlNzM2ZmFmYzkwZGQ4MTYxNzAxMTk4NTQzY2UzZjA2M2FiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5oCkBAIC00Miw3ICs0Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlvbkNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqKTsKICAgICAgICAgdmly
dHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwotICAg
ICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZp
cnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0
YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAK
ICAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBBcmdMaXN0JiwgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25z
dCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCBmZGNmYjg1
NGM3NTkxMjQxNjViNzAwM2U4NWI2YzQyMjlhZjBmYTc0Li5hYjJkOGM1NDVhOTA4MWZjYWYzMjdh
YTE3ZmIzYzkyOWUyNjBkYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC03MCw4ICs3MCwxMyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0YXRl
KikKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitDYWxs
VHlwZSBGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxs
RGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCiAv
LyBFQ01BIDE1LjMuNAotQ2FsbFR5cGUgRnVuY3Rpb25Qcm90b3R5cGU6OmdldENhbGxEYXRhKENh
bGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbEZ1bmN0aW9uUHJvdG90eXBlOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aAppbmRleCAxYTIxOWU4ODI0ZGE5ZjhlN2Y4Mjc4MzJiNmNjY2IxY2Q2NTA4ODJhLi44MmZmZjA1
ODZjZjQwMjAzZTZlMjUxMjc2OGRhZWJlZGRmN2MxNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAgLTQ4LDcgKzQ4LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBGdW5jdGlvblByb3RvdHlw
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmlu
ZGV4IDBmNjE1OWIzNjRhZjM5NzIxNGJjYTNiYjhkZWYxMGVhNTE5ODlkOGEuLjljYTU5ZmI3OTAz
ZjQ3OTc5MDU4NWQwODEzZTYwOTE5M2ZkMGQ2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTU3LDcgKzU3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIENh
bGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikgPSAwOworICAgICAgICB2aXJ0dWFsIENhbGxU
eXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpID0gMDsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgdnRhYmxlQW5jaG9yKCk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuY3BwCmluZGV4IGI3YWZlOWJlMWVhNTg0MGRlNWEzMDg3MzQyZjNjNDMyMTczMzI5
MjEuLmZlZDAwYzg4Mjg2NzQ1NWVhZGE5ZjMyODE3MGVmNjMyMWJjNzA2YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtNTQsNyArNTQsMTIgQEAgY29uc3Qg
SlNPYmplY3QqIEpTQ2VsbDo6Z2V0T2JqZWN0KCkgY29uc3QKICAgICByZXR1cm4gaXNPYmplY3Qo
KSA/IHN0YXRpY19jYXN0PGNvbnN0IEpTT2JqZWN0Kj4odGhpcykgOiAwOwogfQogCi1DYWxsVHlw
ZSBKU0NlbGw6OmdldENhbGxEYXRhKENhbGxEYXRhJikKK0NhbGxUeXBlIEpTQ2VsbDo6Z2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERh
dGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBKU0NlbGw6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJikKIHsKICAgICByZXR1cm4gQ2FsbFR5cGVOb25lOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCA2MjY4YjFkOWJjNWQ3ZTRlZjE3YTcw
MTM5MmRkMjNlNTAzZWRhN2RhLi44ZDhjODg2MmQyZDA4OGIxN2U0YjIxOTIyZjJhMDViZmMzYmFh
NDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtNzMsNyArNzMs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNPYmplY3QqIGdldE9iamVjdCgpOyAvLyBO
VUxMIGlmIG5vdCBhbiBvYmplY3QKICAgICAgICAgY29uc3QgSlNPYmplY3QqIGdldE9iamVjdCgp
IGNvbnN0OyAvLyBOVUxMIGlmIG5vdCBhbiBvYmplY3QKICAgICAgICAgCi0gICAgICAgIHZpcnR1
YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxs
VHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKIAogICAgICAgICAv
LyBCYXNpYyBjb252ZXJzaW9ucy4KQEAgLTIzNSw3ICsyMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIGlubGluZSBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU1ZhbHVlIHZhbHVlLCBDYWxsRGF0
YSYgY2FsbERhdGEpCiAgICAgewotICAgICAgICBDYWxsVHlwZSByZXN1bHQgPSB2YWx1ZS5pc0Nl
bGwoKSA/IHZhbHVlLmFzQ2VsbCgpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgOiBDYWxsVHlwZU5v
bmU7CisgICAgICAgIENhbGxUeXBlIHJlc3VsdCA9IHZhbHVlLmlzQ2VsbCgpID8gdmFsdWUuYXND
ZWxsKCktPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSkgOiBDYWxsVHlwZU5vbmU7CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQgPT0gQ2FsbFR5cGVOb25lIHx8IHZhbHVlLmlzVmFsaWRDYWxsZWUo
KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAzN2Y2NmMxODJjNTVkMTNhMDQ2NzM2ZWYy
YzE1NjRlYjY5NGQ4OTkxLi4yZjUzOTI5MDI3MTY4NTYwOTQ5NDMzMTdiY2Y0N2U4ZmNhNDg0MzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAt
MTY5LDE0ICsxNjksMjAgQEAgdm9pZCBKU0Z1bmN0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX2V4ZWN1dGFibGUpOwogfQogCi1DYWxsVHlwZSBKU0Z1bmN0aW9uOjpnZXRDYWxs
RGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU0Z1bmN0aW9uOjpnZXRDYWxsRGF0
YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIGlmIChpc0hvc3RGdW5jdGlvbigp
KSB7Ci0gICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IG5hdGl2ZUZ1bmN0aW9uKCk7
CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUg
SlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEp
Cit7CisgICAgSlNGdW5jdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24q
PihjZWxsKTsKKyAgICBpZiAodGhpc09iamVjdC0+aXNIb3N0RnVuY3Rpb24oKSkgeworICAgICAg
ICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSB0aGlzT2JqZWN0LT5uYXRpdmVGdW5jdGlvbigp
OwogICAgICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogICAgIH0KLSAgICBjYWxsRGF0YS5qcy5m
dW5jdGlvbkV4ZWN1dGFibGUgPSBqc0V4ZWN1dGFibGUoKTsKLSAgICBjYWxsRGF0YS5qcy5zY29w
ZUNoYWluID0gc2NvcGUoKTsKKyAgICBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUgPSB0
aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKTsKKyAgICBjYWxsRGF0YS5qcy5zY29wZUNoYWluID0g
dGhpc09iamVjdC0+c2NvcGUoKTsKICAgICByZXR1cm4gQ2FsbFR5cGVKUzsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IGE1ZDAzZGRiOWIzZjVi
YmE2NjFmMzEyYjk0MWIwODgyYzZlNzg1OTAuLjFlNjY4ZTllMjAxMDI3ZDMxYTI5MGM0MWY2ZDkz
MmNkMTY5Nzc1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKQEAgLTEwOSw3ICsxMDksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTmF0aXZlRnVu
Y3Rpb24gbmF0aXZlQ29uc3RydWN0b3IoKTsKIAogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgc3RhdGljIGlubGluZSBz
aXplX3Qgb2Zmc2V0T2ZTY29wZUNoYWluKCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA0MzE0YjY1ZTI2ZTc4NGQ5OTkxNDIw
OGYxZTVkYjAyY2M1OGUzZjcwLi5iNzAyM2M0NzZmNzQ0YWYxMWE0MDdkMzBmMmE3ZDUzZGU1NGY0
NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApA
QCAtMjQ2LDcgKzI0Niw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IExvY2FsPFVua25vd24+JiByZXBsYWNlciwgY29uc3QKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIG1fcmVwbGFjZXJDYWxsVHlwZSA9IG1fcmVwbGFjZXIuYXNPYmplY3Qo
KS0+Z2V0Q2FsbERhdGEobV9yZXBsYWNlckNhbGxEYXRhKTsKKyAgICBtX3JlcGxhY2VyQ2FsbFR5
cGUgPSBtX3JlcGxhY2VyLmFzT2JqZWN0KCktPmdldENhbGxEYXRhVmlydHVhbChtX3JlcGxhY2Vy
Q2FsbERhdGEpOwogfQogCiBMb2NhbDxVbmtub3duPiBTdHJpbmdpZmllcjo6c3RyaW5naWZ5KEhh
bmRsZTxVbmtub3duPiB2YWx1ZSkKQEAgLTMzNyw3ICszMzcsNyBAQCBpbmxpbmUgSlNWYWx1ZSBT
dHJpbmdpZmllcjo6dG9KU09OKEpTVmFsdWUgdmFsdWUsIGNvbnN0IFByb3BlcnR5TmFtZUZvckZ1
bmN0aW9uQwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHRvSlNPTkZ1bmN0aW9u
KTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG9iamVj
dC0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2JqZWN0
LT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpCiAgICAgICAgIHJldHVybiB2YWx1ZTsKIApAQCAtNDAxLDcgKzQwMSw3IEBAIFN0
cmluZ2lmaWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVk
VmFsdWUoVVN0cmluZ0J1aWxkZXImCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZh
bHVlKTsKIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIGlmIChvYmplY3QtPmdldENhbGxE
YXRhKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKKyAgICBpZiAob2JqZWN0LT5nZXRDYWxs
RGF0YVZpcnR1YWwoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkgewogICAgICAgICBpZiAoaG9s
ZGVyLT5pbmhlcml0cygmSlNBcnJheTo6c19pbmZvKSkgewogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIm51bGwiKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlTdWNjZWVkZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggOWM4MDFiNmE0
YTM2MzRkNDcyMTMwODk4Mjg1Nzk3ZWYyNmQ2MmU2NS4uODQwODMzY2JkZmZkOWVjMDQxMzgzOTA3
MDVkOTZiMzVjZTA3MDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIENhbGxEYXRh
IGNhbGxEYXRhOwotICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gc2V0dGVyRnVu
Yy0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxU
eXBlID0gc2V0dGVyRnVuYy0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAg
ICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgICAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBlNTgxZGE5ZjQ0OWNmMzkyNDM5
ODUxYTgwNmJlMTk5YzU1NTk0MDA0Li4xMTg4MGExY2I2Zjg1N2NiNjRiYTJiNjZmZThlZjk4MDJk
ZTZmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
YXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNzQsNyArNzQsMTIgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKLUNhbGxUeXBlIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKK0NhbGxU
eXBlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYg
Y2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30K
KworQ2FsbFR5cGUgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVj
dG9yLmgKaW5kZXggOGMyNzJlYWEyYTg2NGMwODBhMWQyMTRkY2YzZWI3NmY4YmUwYTNjNy4uMGEy
YmIyM2QzZTIwYjM5M2VjOWY5YjcxOGFiZWE2MTZjYmRkOGZkNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAt
NjksNyArNjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSW50ZXJu
YWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBDYWxs
VHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IGY3OGEwNGU5MjE1
ODg5Mzg1Zjg5ZDAxZjI4MjkwYjA1YTA5ZDZjM2UuLjUyMzkwNjc4MmRhNmEzMThmN2E4ZDY5Mjkz
NzM0Yzg2MzBiZWI4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNyw3ICsxMjcsMTIgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKCFleGVjLT5hcmd1bWVu
dENvdW50KCkgPyAwIDogZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYykpKTsKIH0KIAot
Q2FsbFR5cGUgTnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0
YSkKK0NhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERh
dGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7
Cit9CisKK0NhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bE51bWJlckNvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCA0ZDY0
MWI5ODQyNTEzNjdiMmU5ZDZlYzlhOTRlMTMxZDY2Y2JlYTA5Li44YWVhNjkwN2EzMjZlYmEwNTM1
ZWYzMWFhMjRkYjBhMDZlN2VjZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTU4LDcgKzU4LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwotICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENh
bGxEYXRhKENhbGxEYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFW
aXJ0dWFsKENhbGxEYXRhJik7CisgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IGRlNTY2NTJjNGVmZGExOWMwMTk0MTViODMyMTM4NjUwMzFiNjViYzkuLmIxMDliMTk5YmVm
MzkyMDJmMTVkMzU5Y2VmNTA0ODNmNmQwMTRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNiw3ICsxMjYsMTIg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVj
dE9iamVjdChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxP
YmplY3QoKSwgYXJncykpOwogfQogCi1DYWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgT2JqZWN0Q29uc3RydWN0b3I6Omdl
dENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENh
bGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgT2JqZWN0Q29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsT2JqZWN0Q29uc3RydWN0b3I7CiAgICAgcmV0dXJuIENh
bGxUeXBlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCmluZGV4IGI4NDIxMmYwZDA0YzMzNTdiMTE2MTlmNjQ0YWI1ZGM3NGE1NDQz
MWQuLmRkZjNjYWY0YzQxMWMyYmE4MGE4NjJkZmUwNzFhMmQ3ZGEzMDA5NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtNTUs
NyArNTUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBPYmplY3RD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFs
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Ci0gICAgICAg
IHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKKyAgICAgICAgdmlydHVh
bCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKKyAgICAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlv
bnMuY3BwCmluZGV4IGMzYTMwNmE4ODljYjBlNmE4NTBmMzA1YmE5ODljMWE3MTQ5OTVkNjguLjUy
ZjRlOWQ2NThmYzRiZjhlZDU2YjdhY2UxOWMxYzhkY2JiMGVkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEpTVmFs
dWUganNUeXBlU3RyaW5nRm9yVmFsdWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikK
ICAgICAgICAgaWYgKGFzT2JqZWN0KHYpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5tYXNxdWVy
YWRlc0FzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5n
KGNhbGxGcmFtZSwgInVuZGVmaW5lZCIpOwogICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAg
ICAgICAgaWYgKGFzT2JqZWN0KHYpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgIT0gQ2FsbFR5cGVO
b25lKQorICAgICAgICBpZiAoYXNPYmplY3QodiktPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0
YSkgIT0gQ2FsbFR5cGVOb25lKQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhjYWxsRnJhbWUsICJmdW5jdGlvbiIpOwogICAgIH0KICAgICByZXR1cm4ganNOb250cml2aWFs
U3RyaW5nKGNhbGxGcmFtZSwgIm9iamVjdCIpOwpAQCAtOTIsNyArOTIsNyBAQCBib29sIGpzSXNP
YmplY3RUeXBlKEpTVmFsdWUgdikKICAgICAgICAgaWYgKGFzT2JqZWN0KHYpLT5zdHJ1Y3R1cmUo
KS0+dHlwZUluZm8oKS5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgICAgICBpZiAoYXNPYmpl
Y3QodiktPmdldENhbGxEYXRhKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlm
IChhc09iamVjdCh2KS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5v
bmUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpA
QCAtMTAyLDcgKzEwMiw3IEBAIGJvb2wganNJc0Z1bmN0aW9uVHlwZShKU1ZhbHVlIHYpCiB7CiAg
ICAgaWYgKHYuaXNPYmplY3QoKSkgewogICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAg
ICAgaWYgKGFzT2JqZWN0KHYpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25l
KQorICAgICAgICBpZiAoYXNPYmplY3QodiktPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSkg
IT0gQ2FsbFR5cGVOb25lKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNs
b3QuY3BwCmluZGV4IDg3N2QwZjVmMTViNjk3YjkzY2UyNWNhMDhmN2QyYjE4ODQ3ZWUxZjguLjFh
ODZlZTMzN2M0ZGQwYjFkM2FkZjQ2Yjk2YWU4MWNmMGZkMmFkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApAQCAtMzMsNyArMzMsNyBAQCBK
U1ZhbHVlIFByb3BlcnR5U2xvdDo6ZnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogICAgICAgICByZXR1cm4gZXhlYy0+ZXhjZXB0aW9uKCk7CiAKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG1fZGF0YS5nZXR0ZXJGdW5jLT5nZXRDYWxs
RGF0YShjYWxsRGF0YSk7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBtX2RhdGEuZ2V0dGVyRnVu
Yy0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAKICAgICAvLyBPbmx5IG9iamVj
dHMgY2FuIGhhdmUgYWNjZXNzb3IgcHJvcGVydGllcy4KICAgICAvLyBJZiB0aGUgYmFzZSBpcyBX
ZWJDb3JlJ3MgZ2xvYmFsIG9iamVjdCB0aGVuIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZSB0aGUgc2hl
bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggY2FmYTEyOTFiYzI1Yzk1ZTU3NzkxYjE1YzBkNGE5MmFkZDBjZGM2ZS4u
YjE2OTI0MjcyNzdhM2Q3MzM5YWMwMjQ4YzliZjViZDA4NjZhMjAxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMzU3
LDcgKzM1NywxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVn
RXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUo
KSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKLUNhbGxUeXBlIFJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBSZWdFeHBDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICBy
ZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBSZWdFeHBD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewog
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxSZWdFeHBDb25zdHJ1Y3RvcjsKICAg
ICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggYTlhOWU2OTNhZjEyZDQxMzg0OWMxZDZlNDQ3
YTA5NDZkZmVjN2FmNC4uZGVlNDg0NDUxZDU4ZjlmMzQzMWRlZmI5ZTg1ZWQ1NTIxZGNkMzJiMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oCkBAIC05OCw3ICs5OCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAg
ICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEm
KTsKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAg
ICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOworICAg
ICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAog
ICAgICAgICBPd25QdHI8UmVnRXhwQ29uc3RydWN0b3JQcml2YXRlPiBkOwogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggNmYzNTI2NjRkZTE0NWExMzcxODhmN2NmNzE3ZGRlM2RhM2Q5Y2ExMy4uZGY2OGU2MDdj
OGYyYjFlZWY2NzBjZmIzMzVhMzQ5NDliYTRhMTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTA5LDcgKzEwOSwx
MiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJp
bmcoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKIH0KIAotQ2FsbFR5
cGUgU3RyaW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKK0Nh
bGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNh
bGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisK
K0NhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN0cmlu
Z0NvbnN0cnVjdG9yOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCA5NTdiNGIzMTkz
MGI2ZTVmMGRhZTY4Mzc4OGM1NGQ1ZGIzMDUxODQ3Li43MDBkZWFiNWY3ZWM4ODU3YjRmMzU2MmIx
MjQzZGQxMGE5ZTIzMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTUyLDcgKzUyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIFN0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAg
ICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgU3RyaW5nUHJvdG90eXBlKik7
CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYp
OworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYp
OworICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBiNjJhNzk4
ZjUwNGRhMDhiZGI5MzE5ODgxOWJjZDlkYWJiYjBhZTM2Li42NmUwMDYxMGZjNzQzYjNmMjhiYjE1
YjMyNmViOTlhY2RiNmI0MTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAxMS0wOS0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldENhbGxEYXRhCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoaXMgcGF0
Y2ggd2UganVzdCBleHRyYWN0IHRoZSBib2RpZXMgb2YgdGhlIHZpcnR1YWwgZ2V0Q2FsbERhdGEg
bWV0aG9kcworICAgICAgICB0aHJvdWdob3V0IHRoZSBKU0NlbGwgaW5oZXJpdGFuY2UgaGllcmFy
Y2h5IG91dCBpbnRvIHN0YXRpYyBtZXRob2RzLCB3aGljaCBhcmUgCisgICAgICAgIG5vdyBjYWxs
ZWQgZnJvbSB0aGUgdmlydHVhbCBtZXRob2RzLiAgVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgc3Rl
cCBpbiB0cnlpbmcgdG8gCisgICAgICAgIG1vdmUgdGhlIHZpcnR1YWwtbmVzcyBvZiBnZXRDYWxs
RGF0YSBpbnRvIG91ciBvd24gbWV0aG9kIHRhYmxlIHN0b3JlZCBpbiAKKyAgICAgICAgQ2xhc3NJ
bmZvLiAgV2UgbmVlZCB0byBjb252ZXJ0IHRoZSBtZXRob2RzIHRvIHN0YXRpYyBtZXRob2RzIGJl
Y2F1c2Ugc3RhdGljIG1ldGhvZHMgCisgICAgICAgIGNhbiBiZSByZXByZXNlbnRlZCBhcyBmdW5j
dGlvbiBwb2ludGVycyByYXRoZXIgdGhhbiBwb2ludGVycyB0byBtZW1iZXIgbWV0aG9kcywgYW5k
CisgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXJzIGFyZSBzbWFsbGVyIGFuZCBmYXN0ZXIgdG8gY2Fs
bCB0aGFuIHBvaW50ZXJzIHRvIG1lbWJlciBtZXRob2RzLgorCisgICAgICAgICogSlNWYWx1ZVdy
YXBwZXIuY3BwOgorICAgICAgICAoSlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0Q2FsbEZ1bmN0aW9u
KToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6
OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpnZXRDYWxsRGF0
YSk6CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorCiAyMDExLTA5LTIzICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0YXRpYyB2ZXJz
aW9uIG9mIEpTQ2VsbDo6dmlzaXRDaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVl
V3JhcHBlci5jcHAKaW5kZXggMzI0YTk3NDg3OWU2NGM2YjZhODJiYWE0MDU2MjQyMmJkNGIyMTFj
YS4uZjFmMWE3MjEzMjEyMzVkNzU4MDI0ZGE2NTY3YjQ2ODJjMGI3YTAxOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgSlNPYmpl
Y3RSZWYgSlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0Q2FsbEZ1bmN0aW9uKHZvaWQgKmRhdGEsIEpT
T2JqZWN0UmVmIHRoaXNPYmoKICAgICAgICAgfQogCiAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRh
OwotICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG9ialZhbHVlLT5nZXRDYWxsRGF0YShjYWxs
RGF0YSk7CisgICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2JqVmFsdWUtPmdldENhbGxEYXRh
VmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgSlNWYWx1ZSAgcmVzdWx0VmFsdWUgPSBj
YWxsKGV4ZWMsIG9ialZhbHVlLCBjYWxsVHlwZSwgY2FsbERhdGEsIGtzalRoaXNPYmosIGxpc3RB
cmdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA2YzNhN2Q0
OTVhZTE0NTFlNzEwZmZhOWEwY2E3MDQzYTdjMGFmNzJmLi5jOThhNDA1ZDM5M2U2MTIwNTcwYTRj
YWRmODUyOTM5YmFhYTg5OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNl
ck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
Y3BwCkBAIC00Niw5ICs0NiwxNSBAQCBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCiAg
ICAgICAgIGZKU1VzZXJPYmplY3QtPlJlbGVhc2UoKTsKIH0KIAotQ2FsbFR5cGUgVXNlck9iamVj
dEltcDo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgVXNlck9iamVj
dEltcDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICByZXR1
cm4gZkpTVXNlck9iamVjdCA/IGZKU1VzZXJPYmplY3QtPmdldENhbGxEYXRhKGNhbGxEYXRhKSA6
IENhbGxUeXBlTm9uZTsKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOwor
fQorCitDYWxsVHlwZSBVc2VyT2JqZWN0SW1wOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENh
bGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICBVc2VyT2JqZWN0SW1wKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8VXNlck9iamVjdEltcCo+KGNlbGwpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5m
SlNVc2VyT2JqZWN0ID8gdGhpc09iamVjdC0+ZkpTVXNlck9iamVjdC0+Z2V0Q2FsbERhdGEoY2Fs
bERhdGEpIDogQ2FsbFR5cGVOb25lOwogfQogCiBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OmNhbGxB
c0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5oCmluZGV4IGE4NmI1MmNiMzYzYThkN2UwMTRlODgxMmIzOTdmYWM3ZGNjNTg1MjkuLjA0ODU0
MzVhNjc1ZTBiNzYwMTc4Nzc5M2RjMzJhN2VmNDhiMzY1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuaApAQCAtNDksNyArNDksOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoQ2FsbERhdGEmKTsKKyAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChD
YWxsRGF0YSYpOworICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250
RW51bVByb3BlcnRpZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc1MzdlNmRjMzNjOGQ4ZTRmZTEwYjgw
OWYyNjdjZmQ3Y2VlYzM2OS4uMDlmZTUwMmJmMzNiNDg0MWE0OWJjYTlmNjA0NzZiZWZjZDg3NWZl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDExLTA5LTI1ICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0YXRpYyB2ZXJzaW9u
IG9mIEpTQ2VsbDo6Z2V0Q2FsbERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2ggd2Ug
anVzdCBleHRyYWN0IHRoZSBib2RpZXMgb2YgdGhlIHZpcnR1YWwgZ2V0Q2FsbERhdGEgbWV0aG9k
cworICAgICAgICB0aHJvdWdob3V0IHRoZSBKU0NlbGwgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG91
dCBpbnRvIHN0YXRpYyBtZXRob2RzLCB3aGljaCBhcmUgCisgICAgICAgIG5vdyBjYWxsZWQgZnJv
bSB0aGUgdmlydHVhbCBtZXRob2RzLiAgVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgc3RlcCBpbiB0
cnlpbmcgdG8gCisgICAgICAgIG1vdmUgdGhlIHZpcnR1YWwtbmVzcyBvZiBnZXRDYWxsRGF0YSBp
bnRvIG91ciBvd24gbWV0aG9kIHRhYmxlIHN0b3JlZCBpbiAKKyAgICAgICAgQ2xhc3NJbmZvLiAg
V2UgbmVlZCB0byBjb252ZXJ0IHRoZSBtZXRob2RzIHRvIHN0YXRpYyBtZXRob2RzIGJlY2F1c2Ug
c3RhdGljIG1ldGhvZHMgCisgICAgICAgIGNhbiBiZSByZXByZXNlbnRlZCBhcyBmdW5jdGlvbiBw
b2ludGVycyByYXRoZXIgdGhhbiBwb2ludGVycyB0byBtZW1iZXIgbWV0aG9kcywgYW5kCisgICAg
ICAgIGZ1bmN0aW9uIHBvaW50ZXJzIGFyZSBzbWFsbGVyIGFuZCBmYXN0ZXIgdG8gY2FsbCB0aGFu
IHBvaW50ZXJzIHRvIG1lbWJlciBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFu
ZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRhVmlydHVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBbGxDb2xsZWN0aW9uOjpnZXRDYWxsRGF0YSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0hUTUxBcHBsZXRFbGVtZW50OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQXBwbGV0RWxlbWVudDo6Z2V0Q2FsbERhdGEpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0hUTUxFbWJlZEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0hUTUxFbWJlZEVsZW1lbnQ6OmdldENhbGxEYXRhKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSFRNTE9iamVjdEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
IChXZWJDb3JlOjpKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cnVu
dGltZU9iamVjdEdldENhbGxEYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBicmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6Omdl
dENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tP
YmplY3RJbXA6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5j
cHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxs
RGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lTWV0YU1ldGhv
ZDo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6Y2FsbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjppc0phdmFTY3JpcHRG
dW5jdGlvbik6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpn
ZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpnZXRDYWxs
RGF0YSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVP
YmplY3Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjpnZXRDYWxsRGF0YSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0
Lmg6CisKIDIwMTEtMDktMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBBdHRlbXB0ZWQgYnVpbGQgZml4ZXMgZm9yIEdUSyBhbmQgUXQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IDQ2ZjI5ZDc4YzI1OTVlYTIyYjQ5OTc2YWIwNTZiNDhkNmM4OGI2MDQuLjgyNGY0
NGJmNmViNmIzNjRjYzJlZWUwODMwYWFiZjZkYTViNGUwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC0xNjQ2LDE3ICsxNjQ2LDE3IEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9yaWVudGF0
aW9uQ2hhbmdlRXZlbnRFaQogI2VuZGlmCiAKICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VTUykK
LV9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTFnZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRhRQogX19a
TjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVS
S05TXzEwSWRlbnRpZmllckUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRDYWxsRGF0YVZp
cnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
CiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGltZU1ldGhv
ZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5T
XzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQx
RXYKLV9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVSTlNfOENh
bGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVByb3BlcnR5
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4QmluZGluZ3MxM1J1
bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNK
U0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3Ry
dWN0RGF0YUUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRDYWxsRGF0YVZp
cnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThn
ZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEy
UHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93blBy
b3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVF
bnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18x
OFByb3BlcnR5RGVzY3JpcHRvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fs
bGJhY2tEYXRhLmNwcAppbmRleCAyMDRjMzQ4NDk3ZTdlYzEyNDEzZTg2MjdlZTQyOGRlM2RmZDhl
NjI5Li4wYjI3MDA4MDdkYjFjMTdkOTRmZTZmZDlhZDE3ZGRkMjQ0ODBmYzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKE1hcmtlZEFyZ3VtZW50
QnVmZmVyJiBhcmdzLCBib29sKiByYWlzZWRFCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwogICAg
IGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgY2FsbFR5cGUgPSBjYWxs
YmFjaygpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBlID0gY2FsbGJh
Y2soKS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAg
IGZ1bmN0aW9uID0gY2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCA1YjJlZDdlMzQ2NjZhMDgy
YzhjMTUyM2NiODRjMDliNWMxYmQxMGRiLi4wNjJiYmEwZjc5ZmFlNTMzMDU5Y2UxOWQ5OWI1YWNi
OGNlM2RlZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFN0cmluZyBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4
KQogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2Fs
bERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVO
b25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0Q2FsbERhdGEo
Y2FsbERhdGEpOworICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldENhbGxE
YXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5v
bmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBhbmQg
c291cmNlIFVSTC4KICAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNvbGUo
KS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNl
VVJJIG1ldGhvZC4iLCAwLCBTdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggNGYyY2UzOTRhMmEwZDNmNTI3NWNhYzdkNDY4ZmZh
OWE3YzAyMjE1Ny4uYTk0Zjc5NjZkYjJmMmYxYjA0YWIzNmVmMzA5NTA0ZjUzMjQ2MDhlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0g
ICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7
CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YVZpcnR1YWwo
Y2FsbERhdGEpOwogCiAgICAgaWYgKGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSkgewogICAgICAg
ICBSZWZQdHI8SlNFcnJvckhhbmRsZXI+IHByb3RlY3RlZGN0b3IodGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCAyNjMwOTU2ZTQw
OWEyMmY4ZDU5OGY2ZTI5MzdhYTFmNjZhNzlmODUxLi45MWNhMTQ5OWExYzVkZmQyNjVmMjMwYTNi
ODA4NDIzMWFhMjUzOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dAogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoaGFuZGxlRXZlbnRGdW5jdGlv
biwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAg
ICAgaGFuZGxlRXZlbnRGdW5jdGlvbiA9IEpTVmFsdWUoKTsKLSAgICAgICAgY2FsbFR5cGUgPSBq
c0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBlID0ganNG
dW5jdGlvbi0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICB9CiAKICAgICBpZiAo
Y2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IGM2YTkwNTQ5
YzkzNDVkYzY2ZDJhMDFkN2RkYzE3M2JmMWQwYjY1MzUuLjcwZWI2ZTE3NWVmMzk4MTRjNmU4YWJj
YjIwZDUzN2FmZjM1ZGZjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC05OSw3ICs5OSwxMiBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTEFsbENvbGxlY3Rpb24o
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUNhbGxUeXBlIEpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRhKENhbGxE
YXRhJiBjYWxsRGF0YSkKK0NhbGxUeXBlIEpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRh
VmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRo
aXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgSlNIVE1MQWxsQ29sbGVjdGlvbjo6Z2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNhbGxIVE1MQWxsQ29sbGVjdGlvbjsKICAgICByZXR1cm4gQ2FsbFR5cGVI
b3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0
RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBs
ZXRFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAyYmZmMDFhOTZkMTUzNDRlYTdkZWFhOGVkZDIzMTZj
NWZlOGNhYWMwLi44MGQ1OTRlZjU4ODk0YzU2ZGMxN2RiODQzNTcwY2JkYmExN2Y0N2E1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVtZW50Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtNDgsOSArNDgsMTQgQEAgYm9vbCBKU0hUTUxBcHBsZXRFbGVtZW50
OjpwdXREZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnQK
ICAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCB0aGlzLCBzbG90KTsKIH0KIAotQ2FsbFR5cGUgSlNIVE1MQXBwbGV0RWxlbWVudDo6Z2V0
Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgSlNIVE1MQXBwbGV0RWxlbWVu
dDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICByZXR1cm4g
cnVudGltZU9iamVjdEdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKKyAgICByZXR1cm4gZ2V0
Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBKU0hUTUxBcHBsZXRFbGVt
ZW50OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAg
ICByZXR1cm4gcnVudGltZU9iamVjdEdldENhbGxEYXRhKHN0YXRpY19jYXN0PEpTSFRNTEFwcGxl
dEVsZW1lbnQqPihjZWxsKSwgY2FsbERhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1l
bnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVt
ZW50Q3VzdG9tLmNwcAppbmRleCA3MmU2OTViNjU1MDk5MThkYWU3NjUzNTZjYzQ0NzMzNjNlNTQy
ZjEyLi41YzRiNzBhMWExMmEyNmRhY2Y0MWEwNjhkNGI1NTJiYWFlZmU2NWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3Rv
bS5jcHAKQEAgLTQ4LDkgKzQ4LDE0IEBAIGJvb2wgSlNIVE1MRW1iZWRFbGVtZW50OjpwdXREZWxl
Z2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgcmV0
dXJuIHJ1bnRpbWVPYmplY3RDdXN0b21QdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgdGhp
cywgc2xvdCk7CiB9CiAKLUNhbGxUeXBlIEpTSFRNTEVtYmVkRWxlbWVudDo6Z2V0Q2FsbERhdGEo
Q2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgSlNIVE1MRW1iZWRFbGVtZW50OjpnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIHJldHVybiBydW50aW1lT2Jq
ZWN0R2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0
aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTSFRNTEVtYmVkRWxlbWVudDo6Z2V0Q2Fs
bERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIHJ1
bnRpbWVPYmplY3RHZXRDYWxsRGF0YShzdGF0aWNfY2FzdDxKU0hUTUxFbWJlZEVsZW1lbnQqPihj
ZWxsKSwgY2FsbERhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20u
Y3BwCmluZGV4IGM4N2I5MzJiYjdiZGY0YWQ1Y2UyODZjNWZiYzJhNGMyYTMwNTRhN2EuLjdiMzkw
ZTM1ZDY1NGU1NzdjNzA5NDRlNmI4NmU2Yzg1N2YwODhlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwCkBA
IC00OCw5ICs0OCwxNCBAQCBib29sIEpTSFRNTE9iamVjdEVsZW1lbnQ6OnB1dERlbGVnYXRlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIHJldHVybiBydW50
aW1lT2JqZWN0Q3VzdG9tUHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHRoaXMsIHNsb3Qp
OwogfQogCi1DYWxsVHlwZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YShDYWxsRGF0
YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YVZp
cnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIHJldHVybiBydW50aW1lT2JqZWN0R2V0
Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBj
YWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTSFRNTE9iamVjdEVsZW1lbnQ6OmdldENhbGxEYXRh
KEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBydW50aW1l
T2JqZWN0R2V0Q2FsbERhdGEoc3RhdGljX2Nhc3Q8SlNIVE1MT2JqZWN0RWxlbWVudCo+KGNlbGwp
LCBjYWxsRGF0YSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNw
cAppbmRleCA3ZjlmOTllNjQ3MDEyOWZmY2UyNzdkMTlmM2YyNzM3YWNlZDc4MjQzLi4wMzFiYzIx
MmQ2MWMzNTE2M2ZkMzRmMWRkMzQwYjMwNGVjZTJlMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBA
IC04NSw3ICs4NSw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1YXRlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIEpTRnVuY3Rpb24qIGV2YWxGdW5jdGlvbiA9IGds
b2JhbE9iamVjdC0+ZXZhbEZ1bmN0aW9uKCk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBldmFsRnVuY3Rpb24tPmdldENhbGxEYXRhKGNhbGxEYXRhKTsK
KyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGV2YWxGdW5jdGlvbi0+Z2V0Q2FsbERhdGFWaXJ0dWFs
KGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0
aW9ucy5jcHAKaW5kZXggMjZiYjA1ZGQwM2M2YjI3NmJiYWNlNTIyMjU2NmViYjFhYTMzZjcwZS4u
MTQ3YmMzODZlMjNiYTk3MDkxMzA0ZjIwMzVmZWU4NjczODEzMDU3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CkBAIC0xNzcsNyArMTc3LDcgQEAgQ2FsbFR5cGUgcnVudGltZU9iamVjdEdldENhbGxEYXRhKEpT
SFRNTEVsZW1lbnQqIGVsZW1lbnQsIENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICBpZiAoSlNPYmpl
Y3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShl
bGVtZW50KSkgewogICAgICAgICBDYWxsRGF0YSBzY3JpcHRPYmplY3RDYWxsRGF0YTsKICAgICAg
ICAgCi0gICAgICAgIGlmIChzY3JpcHRPYmplY3QtPmdldENhbGxEYXRhKHNjcmlwdE9iamVjdENh
bGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChzY3JpcHRPYmplY3QtPmdldENh
bGxEYXRhVmlydHVhbChzY3JpcHRPYmplY3RDYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25lKQogICAg
ICAgICAgICAgcmV0dXJuIENhbGxUeXBlTm9uZTsKIAogICAgICAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsUGx1Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1MjAzZmRmMGM0MDcxODg2YmVjYmQ0NjE4
YzExYTZiYzhlOWQzZDhkLi43MzU0ZWM3ZjU3MzNlOGM3NGU0ZGJhMWFkYTNjZmQ0NDhlNTc4ZmRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtODE2LDcgKzgxNiw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBwdXNoRXZl
bnRIYW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKikgY29u
c3Q7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1c2hF
dmVudEhhbmRsZXJTY29wZSJ9OwogCiAgICAgIyBDdXN0b20gY2FsbCBmdW5jdGlvbnMKLSAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0M6OkNhbGxEYXRhJik7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbUNhbGwifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
SlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoSlNDOjpDYWxsRGF0YSYpO1xuXG4iKSBp
ZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21DYWxsIn07CisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShK
U0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTtcblxuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ2FsbCJ9OwogCiAgICAgIyBDdXN0b20gZGVsZXRlUHJvcGVy
dHkgZnVuY3Rpb24KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpO1xu
IikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRGVsZXRlUHJvcGVy
dHkifTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggODM4
MGI5ZGFhMTIzOTU0NDRhMWYwYjFhYjczZjM1YWJjYjUxMTZkOC4uYzFhZGViM2UwOGMzZDFhNGRh
MzNiMjAyMjQ1MTRmYzQzMjZjMWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLmgKQEAgLTEyNiw3ICsxMjYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENh
bGxEYXRhKENhbGxEYXRhJik7CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmKTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVm
YXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggYzAzZjI4ZjAz
N2I3M2ZlZTM2YmFjZDFmOTZkOWMwNDE3NjI0ZjQyMS4uMDE3MWM3NTJlZjkxNzk5NGViMjcwNTBl
MmQ2ZWQ3NjA4ZWExODRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQpAQCAtMjU1LDkgKzI1NSwxNSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNhbGxUeXBlIE9iamNGYWxsYmFja09i
amVjdEltcDo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgT2JqY0Zh
bGxiYWNrT2JqZWN0SW1wOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQog
ewotICAgIGlkIHRhcmdldE9iamVjdCA9IF9pbnN0YW5jZS0+Z2V0T2JqZWN0KCk7CisgICAgcmV0
dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgT2JqY0ZhbGxi
YWNrT2JqZWN0SW1wOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0
YSkKK3sKKyAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxPYmpjRmFsbGJhY2tPYmplY3RJbXAqPihjZWxsKTsKKyAgICBpZCB0YXJnZXRPYmplY3QgPSB0
aGlzT2JqZWN0LT5faW5zdGFuY2UtPmdldE9iamVjdCgpOwogICAgIGlmICghW3RhcmdldE9iamVj
dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGludm9rZVVuZGVmaW5lZE1ldGhvZEZyb21X
ZWJTY3JpcHQ6d2l0aEFyZ3VtZW50czopXSkKICAgICAgICAgcmV0dXJuIENhbGxUeXBlTm9uZTsK
ICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IDk1ZWE4ZDkzNDdmNTI0
NjI1ZGY0ZTY5MjU1ZjNmOTRkNWY0ZDU5MjMuLjUwNDJmOGQ4YzY0ZDhlMDI4MzI0MWVjOGQ5OGI0
OTQ0ODViMDQxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAg
LTE0OTEsNyArMTQ5MSwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpj
YWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1DYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxsRGF0YShD
YWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0
YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6Omdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBjYWxsOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CkBAIC0xNjIw
LDcgKzE2MjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpj
YWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPT0gMSkgewogICAgICAgICAgICAgICAgIGZ1bmNPYmplY3QgPSBleGVjLT5hcmd1bWVudCgw
KS50b09iamVjdChleGVjKTsKICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAg
ICAgICAgICAgICAgICBpZiAoZnVuY09iamVjdC0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpID09IENh
bGxUeXBlTm9uZSkgeworICAgICAgICAgICAgICAgIGlmIChmdW5jT2JqZWN0LT5nZXRDYWxsRGF0
YVZpcnR1YWwoY2FsbERhdGEpID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoZC0+bV9pc0Nvbm5lY3QpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUXRNZXRhTWV0aG9kLmNvbm5l
Y3Q6IHRhcmdldCBpcyBub3QgYSBmdW5jdGlvbiIpKTsKICAgICAgICAgICAgICAgICAgICAgZWxz
ZQpAQCAtMTYzMyw3ICsxNjM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgIC8vIEdl
dCB0aGUgYWN0dWFsIGZ1bmN0aW9uIHRvIGNhbGwKICAgICAgICAgICAgICAgICAgICAgSlNPYmpl
Y3QgKmFzT2JqID0gZXhlYy0+YXJndW1lbnQoMSkudG9PYmplY3QoZXhlYyk7CiAgICAgICAgICAg
ICAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgICAgICAgICAgICAgICAgICBpZiAoYXNP
YmotPmdldENhbGxEYXRhKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGFzT2JqLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpICE9IENhbGxU
eXBlTm9uZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdmVyc2lvbgog
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuY09iamVjdCA9IGFzT2JqOwogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewpAQCAtMTY0Niw3ICsxNjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgUXRS
dW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBKU1ZhbHVlIHZhbCA9IHRoaXNPYmplY3QtPmdldChleGVjLCBmdW5jSWRl
bnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGFzRnVuY09iaiA9IHZhbC50
b09iamVjdChleGVjKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFzRnVuY09iai0+
Z2V0Q2FsbERhdGEoY2FsbERhdGEpICE9IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGFzRnVuY09iai0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBD
YWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jT2JqZWN0ID0g
YXNGdW5jT2JqOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZC0+bV9pc0Nvbm5lY3QpCkBAIC0xNzMwLDcgKzE3MzUsMTIg
QEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoQ2FsbERh
dGEmIGNhbGxEYXRhKQorQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERh
dGEodGhpcywgY2FsbERhdGEpOworfQorCitDYWxsVHlwZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0
aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbDsKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwpA
QCAtMTg1Myw3ICsxODYzLDcgQEAgaW50IFF0Q29ubmVjdGlvbk9iamVjdDo6cXRfbWV0YWNhbGwo
UU1ldGFPYmplY3Q6OkNhbGwgX2MsIGludCBfaWQsIHZvaWQgKipfYSkKIHN0YXRpYyBib29sIGlz
SmF2YVNjcmlwdEZ1bmN0aW9uKEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKICAgICBDYWxsRGF0YSBj
YWxsRGF0YTsKLSAgICByZXR1cm4gdG9KUyhvYmplY3QpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkg
PT0gQ2FsbFR5cGVKUzsKKyAgICByZXR1cm4gdG9KUyhvYmplY3QpLT5nZXRDYWxsRGF0YVZpcnR1
YWwoY2FsbERhdGEpID09IENhbGxUeXBlSlM7CiB9CiAKIHZvaWQgUXRDb25uZWN0aW9uT2JqZWN0
OjpleGVjdXRlKHZvaWQqKiBhcmd2KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgK
aW5kZXggZGUyMTNjMjA5ODEyMzFkYWFmZjZmNmNiZWY3MWM5MzVkNWE3YjBlMC4uODNlNWE2Yzk1
MjkwZDMxOTAyNTQ3N2M5ZTQ1MTcxNjk3ZTcxN2Y4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5oCkBAIC0xNzgsNyArMTc4LDggQEAgcHJpdmF0ZToKICAgICBRdFJ1bnRpbWVN
ZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQYXNz
UmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVy
ZSwgYm9vbCBhbGxvd1ByaXZhdGUpOwogCi0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0
YShDYWxsRGF0YSYpOworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENh
bGxEYXRhJik7CisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVj
U3RhdGUqIGV4ZWMpOwogICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgc3RhdGljIEpTVmFsdWUgY29ubmVj
dEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CkBAIC0yMDks
NyArMjEwLDggQEAgcHJpdmF0ZToKICAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBib29sIGlzQ29ubmVjdCwgUGFz
c1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1
cmUpOwogCi0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOworICAg
IHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVjU3RhdGUqIGV4ZWMpOwogICAg
IHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgc3RhdGljIFFNdWx0aU1hcDxRT2JqZWN0ICosIFF0Q29ubmVjdGlv
bk9iamVjdCAqPiBjb25uZWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuY3BwCmluZGV4IGFjMDA0ZmQ5MWVmODNkOTU1ZDY1MzdkNWI0NWUxNjJhY2Y0YTlhMmUuLjEy
ZTY5YWU4ODFmZDE4NDA5OWRiNzFmZTdiNzE2YzM0NzYwNTg1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtMTIzLDcgKzEyMywxMiBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1DYWxsVHlwZSBS
dW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBS
dW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQorewor
ICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIFJ1
bnRpbWVNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsK
ICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUnVudGltZU1ldGhvZDsKICAgICBy
ZXR1cm4gQ2FsbFR5cGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCBjNWQwYTZkMGZiZTgyODk0N2JhMzMxOTMwZWZkYWVmZDg3NzBkNTMwLi43MWI0MTM1MzE1
ZGRmNjlhY2VjMDQwNDljMGZjMDQ2ZGUxNDRiYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtNjcsNyArNjcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBKU1Zh
bHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7Ci0gICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwor
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CisgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBP
d25QdHI8QmluZGluZ3M6Ok1ldGhvZExpc3Q+IF9tZXRob2RMaXN0OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDVmZmY1ZTMwMjdiNzViNGFkYWZhNDRl
YTE0MGNlMDFmMmUzZjRkYjIuLjMwYTgxNDlkNjg5NTM5YWFiZTYwYmNhMzhjOWUwNjJjZWQxYjBl
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjU5LDEy
ICsyNTksMTggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRp
bWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEm
IGNhbGxEYXRhKQorQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENh
bGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICBpZiAoIW1faW5zdGFuY2UpCisgICAgcmV0dXJuIGdl
dENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKworQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgUnVu
dGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihjZWxs
KTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1faW5zdGFuY2UpCiAgICAgICAgIHJldHVybiBDYWxs
VHlwZU5vbmU7CiAgICAgCi0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IG1faW5zdGFu
Y2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmplY3QtPm1faW5zdGFu
Y2U7CiAgICAgaWYgKCFpbnN0YW5jZS0+c3VwcG9ydHNJbnZva2VEZWZhdWx0TWV0aG9kKCkpCiAg
ICAgICAgIHJldHVybiBDYWxsVHlwZU5vbmU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCmluZGV4IGEyYzkyODg4MzdiZWMzZjJkZmVkM2RjOTRjNmNkZTYyM2Y0OTEw
OGQuLjFhYzIxYWQ0OGYyODM3Yzk2MDA4YWUzNTA4MWZjMGMwMzkzYTYxYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC01MCw3ICs1MCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgdmlydHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmlt
aXRpdmVUeXBlKSBjb25zdDsKLSAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxE
YXRhJik7CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEm
KTsKKyAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
ICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRh
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVt
UHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOWQ1MTQyYjU1MjI1NjM2NTNmNzg2NzAw
N2U3ZjY3MTBkZGEwYTc3NC4uMTRkZjNhNzExMjZkMzExMjQ3MDQ5NTFhMmY4MmMxNzkzY2I1NTUz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA5LTI1ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0YXRpYyB2
ZXJzaW9uIG9mIEpTQ2VsbDo6Z2V0Q2FsbERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCB3ZSBqdXN0IGV4dHJhY3QgdGhlIGJv
ZGllcyBvZiB0aGUgdmlydHVhbCBnZXRDYWxsRGF0YSBtZXRob2RzCisgICAgICAgIHRocm91Z2hv
dXQgdGhlIEpTQ2VsbCBpbmhlcml0YW5jZSBoaWVyYXJjaHkgb3V0IGludG8gc3RhdGljIG1ldGhv
ZHMsIHdoaWNoIGFyZSAKKyAgICAgICAgbm93IGNhbGxlZCBmcm9tIHRoZSB2aXJ0dWFsIG1ldGhv
ZHMuICBUaGlzIGlzIGFuIGludGVybWVkaWF0ZSBzdGVwIGluIHRyeWluZyB0byAKKyAgICAgICAg
bW92ZSB0aGUgdmlydHVhbC1uZXNzIG9mIGdldENhbGxEYXRhIGludG8gb3VyIG93biBtZXRob2Qg
dGFibGUgc3RvcmVkIGluIAorICAgICAgICBDbGFzc0luZm8uICBXZSBuZWVkIHRvIGNvbnZlcnQg
dGhlIG1ldGhvZHMgdG8gc3RhdGljIG1ldGhvZHMgYmVjYXVzZSBzdGF0aWMgbWV0aG9kcyAKKyAg
ICAgICAgY2FuIGJlIHJlcHJlc2VudGVkIGFzIGZ1bmN0aW9uIHBvaW50ZXJzIHJhdGhlciB0aGFu
IHBvaW50ZXJzIHRvIG1lbWJlciBtZXRob2RzLCBhbmQKKyAgICAgICAgZnVuY3Rpb24gcG9pbnRl
cnMgYXJlIHNtYWxsZXIgYW5kIGZhc3RlciB0byBjYWxsIHRoYW4gcG9pbnRlcnMgdG8gbWVtYmVy
IG1ldGhvZHMuCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eTo6aW52b2tlRGVmYXVsdCk6CisKIDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggYWYwYTg3MzIwYzQ4
NmFjODkwY2MwM2Q2NGNlODFhMDcxNDgwY2EwNS4uM2EwM2FhNGRhYTE0NjUwZmMzZjBjZjlkMzkw
YjliZjNhY2RiMmY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtOTQzLDcg
Kzk0Myw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjppbnZva2VEZWZhdWx0
KHVpbnQzMl90IG9iamVjdElELCBkYXRhX3QgYXJndW1lCiAgICAgRXhlY1N0YXRlKiBleGVjID0g
ZnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSktPmdsb2JhbEV4ZWMo
KTsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOyAgICAKICAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IG9iamVjdC0+Z2V0Q2FsbERh
dGEoY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2JqZWN0LT5nZXRDYWxsRGF0
YVZpcnR1YWwoY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZhMDIxZGRjYTY2MjJmZTI5ZTE4
ZmE2NGM2NzgxZDE0YWMzZDIzYjEuLjk1ODFjMGQ0NjQyZmQwY2JmOGQzZTQ0NzdiZmYxY2E1Y2Mx
NTFjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wOS0yNSAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVy
c2lvbiBvZiBKU0NlbGw6OmdldENhbGxEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02ODc0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2ggd2UganVzdCBleHRyYWN0IHRoZSBib2Rp
ZXMgb2YgdGhlIHZpcnR1YWwgZ2V0Q2FsbERhdGEgbWV0aG9kcworICAgICAgICB0aHJvdWdob3V0
IHRoZSBKU0NlbGwgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG91dCBpbnRvIHN0YXRpYyBtZXRob2Rz
LCB3aGljaCBhcmUgCisgICAgICAgIG5vdyBjYWxsZWQgZnJvbSB0aGUgdmlydHVhbCBtZXRob2Rz
LiAgVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgc3RlcCBpbiB0cnlpbmcgdG8gCisgICAgICAgIG1v
dmUgdGhlIHZpcnR1YWwtbmVzcyBvZiBnZXRDYWxsRGF0YSBpbnRvIG91ciBvd24gbWV0aG9kIHRh
YmxlIHN0b3JlZCBpbiAKKyAgICAgICAgQ2xhc3NJbmZvLiAgV2UgbmVlZCB0byBjb252ZXJ0IHRo
ZSBtZXRob2RzIHRvIHN0YXRpYyBtZXRob2RzIGJlY2F1c2Ugc3RhdGljIG1ldGhvZHMgCisgICAg
ICAgIGNhbiBiZSByZXByZXNlbnRlZCBhcyBmdW5jdGlvbiBwb2ludGVycyByYXRoZXIgdGhhbiBw
b2ludGVycyB0byBtZW1iZXIgbWV0aG9kcywgYW5kCisgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXJz
IGFyZSBzbWFsbGVyIGFuZCBmYXN0ZXIgdG8gY2FsbCB0aGFuIHBvaW50ZXJzIHRvIG1lbWJlciBt
ZXRob2RzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwp
OgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkpTTlBPYmplY3Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OmdldENhbGxEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oOgorCiAyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IDEyYjg0ZDk4NGNhN2M0OWU2OTMzNDQzYmNj
OWQ4YTQxZGYzMjNmNTkuLjczNGUxNmVmMTUzYzAxN2U0OTE4MTg0MTk4ZTExOWMyNjAyODlhOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5jcHAKQEAgLTc3LDcgKzc3LDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogfQogCi1DYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRD
YWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0
YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKK0NhbGxUeXBlIEpTTlBNZXRob2Q6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsTWV0aG9kOwogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
aAppbmRleCAzY2JlOWI5OTZiMmI4NTJiNTY3MWZiYzJmOThiMTJiM2Y1MmJjNmY5Li5hOGZiNjI3
ZjVmNzcwOTRiNTdmOTk2NTJiODUzY2FiMWNmZGZjNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKQEAgLTYy
LDcgKzYyLDggQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAotICAgIHZp
cnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7CisgICAgdmly
dHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChKU0M6OkNhbGxEYXRhJik7Cisg
ICAgc3RhdGljIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNh
bGxEYXRhJik7CiAgICAgCiAgICAgTlBJZGVudGlmaWVyIG1fbnBJZGVudGlmaWVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAppbmRleCA0NDNkYWIxYzA3NmU0YjBiY2Q0ZTI0YzI4ZDY1OTA1MDc2NmU3
MjYzLi5jNmE2MjA1ZTI5ZWY3YThmMjJjZjBjZTNjODFjMDIzNmJmOGU1NDZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwCkBAIC0yMTcsMTAgKzIxNywxNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KS0+Y2FsbE9iamVj
dChleGVjKSk7CiB9CiAKLUpTQzo6Q2FsbFR5cGUgSlNOUE9iamVjdDo6Z2V0Q2FsbERhdGEoSlND
OjpDYWxsRGF0YSYgY2FsbERhdGEpCitDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YVZp
cnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpcywgJnNfaW5mbyk7Ci0gICAgaWYgKCFtX25wT2JqZWN0IHx8ICFtX25wT2JqZWN0LT5f
Y2xhc3MtPmludm9rZURlZmF1bHQpCisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxE
YXRhKTsKK30KKworSlNDOjpDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YShKU0M6OkpT
Q2VsbCogY2VsbCwgSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgSlNOUE9iamVjdCog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIGlmICghdGhpc09i
amVjdC0+bV9ucE9iamVjdCB8fCAhdGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5pbnZv
a2VEZWZhdWx0KQogICAgICAgICByZXR1cm4gQ2FsbFR5cGVOb25lOwogCiAgICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbE5QSlNPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCBlNjVj
ODlkZTVlY2YwYjI2MzBjODIzMTQ5MzkwNjJhZTYzNjJlZmZjLi4yNjRhNjM1YzAxNWY0OTYxODcy
NjY3OGZiMWIzZmU3MTNlZmI5ZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTc5LDcgKzc5LDggQEAg
cHJpdmF0ZToKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgIH0KIAotICAgIHZpcnR1YWwgSlNDOjpD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7CisgICAgdmlydHVhbCBKU0M6OkNh
bGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChKU0M6OkNhbGxEYXRhJik7CisgICAgc3RhdGljIEpT
Qzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNhbGxEYXRhJik7CiAg
ICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0
cnVjdERhdGEmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsK
</data>
<flag name="review"
          id="105785"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>