<?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>239044</bug_id>
          
          <creation_ts>2022-04-10 03:31:36 -0700</creation_ts>
          <short_desc>[JSC] Move StructureCache from VM to JSGlobalObject</short_desc>
          <delta_ts>2022-04-12 20:55:15 -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>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860096</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-10 03:31:36 -0700</bug_when>
    <thetext>[JSC] Move StructureCache from VM to JSGlobalObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860097</commentid>
    <comment_count>1</comment_count>
      <attachid>457195</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-10 03:33:52 -0700</bug_when>
    <thetext>Created attachment 457195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860100</commentid>
    <comment_count>2</comment_count>
      <attachid>457197</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-10 05:23:56 -0700</bug_when>
    <thetext>Created attachment 457197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860322</commentid>
    <comment_count>3</comment_count>
      <attachid>457197</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-04-11 10:01:12 -0700</bug_when>
    <thetext>Comment on attachment 457197
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:3144
&gt; +                structure = globalObject-&gt;structureCache().emptyObjectStructureConcurrently(base.getObject(), JSFinalObject::defaultInlineCapacity());

This looks wrong. The runtime code is using the prototype&apos;s global object. But we&apos;re using the lexical location&apos;s global object. Is that mismatch ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860332</commentid>
    <comment_count>4</comment_count>
      <attachid>457197</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-11 10:11:27 -0700</bug_when>
    <thetext>Comment on attachment 457197
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:3144
&gt;&gt; +                structure = globalObject-&gt;structureCache().emptyObjectStructureConcurrently(base.getObject(), JSFinalObject::defaultInlineCapacity());
&gt; 
&gt; This looks wrong. The runtime code is using the prototype&apos;s global object. But we&apos;re using the lexical location&apos;s global object. Is that mismatch ok?

I think Object.create is using its callee&apos;s JSGlobalObject (in this case, it is encoded as lexical global object), right?

```
   628 JSC_DEFINE_HOST_FUNCTION(objectConstructorCreate, (JSGlobalObject* globalObject, CallFrame* callFrame))
   629 {
   630     VM&amp; vm = globalObject-&gt;vm();
   631     auto scope = DECLARE_THROW_SCOPE(vm);
   632
   633     JSValue proto = callFrame-&gt;argument(0);
   634     if (!proto.isObject() &amp;&amp; !proto.isNull())
   635         return throwVMTypeError(globalObject, scope, &quot;Object prototype may only be an Object or null.&quot;_s);
   636     JSObject* newObject = proto.isObject()
   637         ? constructEmptyObject(globalObject, asObject(proto))
   638         : constructEmptyObject(vm, globalObject-&gt;nullPrototypeObjectStructure());
   639     if (callFrame-&gt;argument(1).isUndefined())
   640         return JSValue::encode(newObject);
   641     JSObject* properties = callFrame-&gt;uncheckedArgument(1).toObject(globalObject);
   642     RETURN_IF_EXCEPTION(scope, { });
   643                                                                                                                                                                                  644     RELEASE_AND_RETURN(scope, JSValue::encode(defineProperties(globalObject, newObject, properties)));
   645 }
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860342</commentid>
    <comment_count>5</comment_count>
      <attachid>457197</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2022-04-11 10:28:27 -0700</bug_when>
    <thetext>Comment on attachment 457197
Patch

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

&gt; Source/JavaScriptCore/runtime/StructureCache.cpp:-45
&gt; -    PrototypeKey key { makePolyProtoStructure ? nullptr : prototype, executable, inlineCapacity, classInfo, globalObject };

Does this deserve an assert?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860371</commentid>
    <comment_count>6</comment_count>
      <attachid>457197</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-11 12:10:54 -0700</bug_when>
    <thetext>Comment on attachment 457197
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/StructureCache.cpp:-45
&gt;&gt; -    PrototypeKey key { makePolyProtoStructure ? nullptr : prototype, executable, inlineCapacity, classInfo, globalObject };
&gt; 
&gt; Does this deserve an assert?

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860372</commentid>
    <comment_count>7</comment_count>
      <attachid>457277</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-11 12:11:57 -0700</bug_when>
    <thetext>Created attachment 457277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860992</commentid>
    <comment_count>8</comment_count>
      <attachid>457277</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-04-12 18:28:26 -0700</bug_when>
    <thetext>Comment on attachment 457277
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        JSGlobalObject, and (3) simplifies JSGlobalObject::haveABadTime handling.

for (3), you should say in the compiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861018</commentid>
    <comment_count>9</comment_count>
      <attachid>457277</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-12 20:52:32 -0700</bug_when>
    <thetext>Comment on attachment 457277
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        JSGlobalObject, and (3) simplifies JSGlobalObject::haveABadTime handling.
&gt; 
&gt; for (3), you should say in the compiler.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861019</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-12 20:54:46 -0700</bug_when>
    <thetext>Committed r292795 (?): &lt;https://commits.webkit.org/r292795&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861020</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-12 20:55:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/91667038&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457195</attachid>
            <date>2022-04-10 03:33:52 -0700</date>
            <delta_ts>2022-04-10 05:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239044-20220410033351.patch</filename>
            <type>text/plain</type>
            <size>24350</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi40MzhjZjA3OGNlYTdiMTZl
OTQyZGRhM2E2M2MyMWJjMDZmNTRjZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAyMi0wNC0xMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgU3RydWN0dXJlQ2FjaGUgZnJvbSBWTSB0byBKU0dsb2Jh
bE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM5MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugc2hvdWxkIGhhdmUgU3RydWN0dXJlQ2FjaGUgcGVyIEpTR2xvYmFsT2JqZWN0IHNpbmNlIGNh
Y2hlZCBzdHJ1Y3R1cmVzIGFyZSB0aWVkIHRvIHNvbWUgb2YgSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIFRoaXMgY2FuICgxKSByZWR1Y2Ugc2l6ZSBvZiBlYWNoIFN0cnVjdHVyZUNhY2hlLCAoMikg
ZGVzdHJveSBTdHJ1Y3R1cmVDYWNoZSB0aW1lbHkgYXQgdGhlIGRlc3RydWN0aW9uIG9mCisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0LCBhbmQgKDMpIHNpbXBsaWZpZXMgSlNHbG9iYWxPYmplY3Q6Omhh
dmVBQmFkVGltZSBoYW5kbGluZy4KKworICAgICAgICAqIGJ5dGVjb2RlL0ludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcm9tQmFzZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6Ok9iamVjdEFsbG9jYXRpb25Qcm9maWxlQmFzZTxEZXJpdmVkPjo6aW5pdGlhbGl6ZVBy
b2ZpbGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0
YW50cyk6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SXRlcmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3Vu
ZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3Qp
OgorICAgICAgICAoSlNDOjpjcmVhdGVEYXRhUHJvcGVydHlEZXNjcmlwdG9yT2JqZWN0U3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlQWNjZXNzb3JQcm9wZXJ0eURlc2NyaXB0b3JPYmpl
Y3RTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvdG90eXBlS2V5Lmg6CisgICAgICAg
IChKU0M6OlByb3RvdHlwZUtleTo6UHJvdG90eXBlS2V5KToKKyAgICAgICAgKEpTQzo6UHJvdG90
eXBlS2V5OjpjbGFzc0luZm8gY29uc3QpOgorICAgICAgICAoSlNDOjpQcm90b3R5cGVLZXk6Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoSlNDOjpQcm90b3R5cGVLZXk6Omhhc2ggY29uc3Qp
OgorICAgICAgICAoSlNDOjpQcm90b3R5cGVLZXk6Omdsb2JhbE9iamVjdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZUNhY2hlOjpjcmVhdGVFbXB0eVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZUNhY2hlOjplbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMi0w
NC0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0Nd
IFVzZSBWZWN0b3Igd2l0aCBpbmxpbmUgY2FwYWNpdHkgaW4gT2JqZWN0UHJvcGVydHlDb25kaXRp
b25TZXQgY3JlYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaAppbmRleCBi
MTc3ZmVmZDA2MzZlMjJlYjUwZmZmYjYyOWVjZTQxMTgxNGUyZGRkLi5hMWIzZGI1ZTliMmQzNTli
NGI2YjQ5MWViOGJiMWJlZDM4MzJiZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZS5oCkBAIC01Niw3ICs1Niw3IEBAIGlubGluZSBTdHJ1Y3R1cmUqIEludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZTo6Y3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyCiAgICAgaWYg
KHByb3RvdHlwZSA9PSBiYXNlU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSkKICAgICAgICAg
c3RydWN0dXJlID0gYmFzZVN0cnVjdHVyZTsKICAgICBlbHNlCi0gICAgICAgIHN0cnVjdHVyZSA9
IHZtLnN0cnVjdHVyZUNhY2hlLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1
Y3R1cmUoYmFzZUdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBiYXNlU3RydWN0dXJlKTsKKyAgICAg
ICAgc3RydWN0dXJlID0gYmFzZUdsb2JhbE9iamVjdC0+c3RydWN0dXJlQ2FjaGUuZW1wdHlTdHJ1
Y3R1cmVGb3JQcm90b3R5cGVGcm9tQmFzZVN0cnVjdHVyZShiYXNlR2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIGJhc2VTdHJ1Y3R1cmUpOwogCiAgICAgLy8gRW5zdXJlIHRoYXQgaWYgYW5vdGhlciB0
aHJlYWQgc2VlcyB0aGUgc3RydWN0dXJlLCBpdCB3aWxsIHNlZSBpdCBwcm9wZXJseSBjcmVhdGVk
LgogICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVz
LmgKaW5kZXggNjUwNWZhY2JmZGU5YjQyMWI0ODg2MjczZGU4N2NiMGYxODAzMTljNS4uYTliNWQz
Y2IyYWExOGJjNDJmYTJlOGUxMzgzNjAxZDVmZGQzODA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxlSW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmls
ZUlubGluZXMuaApAQCAtMTA5LDcgKzEwOSw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBPYmplY3RB
bGxvY2F0aW9uUHJvZmlsZUJhc2U8RGVyaXZlZD46OmluaXRpYWxpemVQcm9maWxlKFZNJiB2CiAg
ICAgICAgICAgICBpbmxpbmVDYXBhY2l0eSA9IEpTRmluYWxPYmplY3Q6Om1heElubGluZUNhcGFj
aXR5KCk7CiAgICAgfQogCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2bS5zdHJ1Y3R1cmVD
YWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZShnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgaW5saW5lQ2FwYWNpdHksIGlzUG9seVByb3RvLCBleGVjdXRhYmxlKTsKKyAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+c3RydWN0dXJlQ2FjaGUuZW1wdHlPYmpl
Y3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIGlubGluZUNh
cGFjaXR5LCBpc1BvbHlQcm90bywgZXhlY3V0YWJsZSk7CiAKICAgICBpZiAoaXNQb2x5UHJvdG8p
IHsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+aGFzUG9seVByb3RvKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCmluZGV4IDBmNjBiOTM3ZmFkOTY1N2YwOTc1YzIwYTEwMzFjNDZmZTJlYWEyMTQuLjMw
MDI0MmI5MDc4MWFkNjIwMDk4ZmNhZjQ4OGYzNTY2ODhlMWE5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKQEAgLTMxMjcsMTAgKzMxMjcsMjUgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICB9
CiAKICAgICBjYXNlIE9iamVjdENyZWF0ZTogewotICAgICAgICBpZiAoSlNWYWx1ZSBwcm90b3R5
cGUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlKSB7Ci0gICAgICAgICAgICBtX3N0
YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKLSAgICAgICAgICAgIGlmIChw
cm90b3R5cGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPm51bGxQ
cm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKTsKKyAgICAgICAgaWYgKEpTVmFsdWUgYmFzZSA9IGZv
ck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdmFsdWUpIHsKKyAgICAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBudWxscHRyOwor
ICAgICAgICAgICAgaWYgKGJhc2UuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgc3RydWN0dXJl
ID0gZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCk7CisgICAgICAg
ICAgICBlbHNlIGlmIChiYXNlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBIYXZp
bmcgYSBiYWQgdGltZSBjbGVhcnMgdGhlIHN0cnVjdHVyZUNhY2hlLCBhbmQgc28gaXQgc2hvdWxk
IGludmFsaWRhdGUgdGhpcyBzdHJ1Y3R1cmUuCisgICAgICAgICAgICAgICAgYm9vbCBpc0hhdmlu
Z0FCYWRUaW1lID0gZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCk7CisgICAgICAgICAg
ICAgICAgLy8gTm9ybWFsbHksIHdlIHdvdWxkIGFsd2F5cyBpbnN0YWxsIGEgd2F0Y2hwb2ludC4g
SW4gdGhpcyBjYXNlLCBob3dldmVyLCBpZiB3ZSBoYXZlQUJhZFRpbWUsIHdlCisgICAgICAgICAg
ICAgICAgLy8gc3RpbGwgd2FudCB0byBvcHRpbWl6ZS4gVGhlcmUgaXMgbm8gd2F0Y2hwb2ludCBm
b3IgdGhhdCBjYXNlIHRob3VnaCwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBsb2FkCisg
ICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgZ2V0IGhvaXN0ZWQgYWJvdmUgdGhlIGNoZWNrLgor
ICAgICAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOworICAgICAgICAgICAgICAgIGlm
ICghaXNIYXZpbmdBQmFkVGltZSkKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBv
aW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3QtPmhhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludCgp
KTsKKyAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPnN0cnVjdHVyZUNh
Y2hlLmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KGJhc2UuZ2V0T2JqZWN0KCksIEpT
RmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKHN0cnVjdHVyZSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0
U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKICAgICAgICAgICAgICAgICAgICAg
ZGlkRm9sZENsb2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwg
c3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMjk4NWE3NmQ2YmE2YzVjYWQzOTIwNmQ5ZDYzNDc4
YTNiZWJlNTI3OC4uODNjNTdiYWRmY2ZkNWVlNGY1YWRlZWU3NzMwNWQ0MzYzODUyNzUzNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OmxvYWRMb2FkRmVu
Y2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNIYXZpbmdBQmFkVGltZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRkTGF6aWx5
KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT52bSgpLnN0cnVjdHVyZUNhY2hl
LmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KGdsb2JhbE9iamVjdCwgYmFzZS5nZXRP
YmplY3QoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVDYWNo
ZS5lbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseShiYXNlLmdldE9iamVjdCgpLCBKU0Zp
bmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3R1
cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5jcHAKaW5kZXggMDFiYzA4NmFmODQ5ODBmODZhMDRiYjJhZGQ5YjU4YTE0ZGJlNjE4OS4u
MzY2NjQwOTgwMmFkN2JjNjliNjU1NzFkMzE2MTJjMWM3MmY5MTdlYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTE2MCw3
ICsxNjAsOCBAQCBTdHJ1Y3R1cmUqIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICBpZiAoSlNPYmplY3Qq
IHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgcHJvdG90eXBlVmFsdWUp
KSB7CiAgICAgICAgICAgICAvLyBUaGlzIG9ubHkgaGFwcGVucyBpZiBzb21lb25lIFJlZmxlY3Qu
Y29uc3RydWN0cyBvdXIgYnVpbHRpbiBjb25zdHJ1Y3RvciB3aXRoIGFub3RoZXIgYnVpbHRpbiBj
b25zdHJ1Y3RvciBhcyB0aGUgbmV3LnRhcmdldC4KICAgICAgICAgICAgIC8vIFRodXMsIHdlIGRv
bid0IGNhcmUgYWJvdXQgdGhlIGNvc3Qgb2YgbG9va2luZyB1cCB0aGUgc3RydWN0dXJlIGZyb20g
b3VyIGhhc2ggdGFibGUgZXZlcnkgdGltZS4KLSAgICAgICAgICAgIHJldHVybiB2bS5zdHJ1Y3R1
cmVDYWNoZS5lbXB0eVN0cnVjdHVyZUZvclByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KHZtKSwgcHJvdG90eXBlLCBiYXNlQ2xhc3MpOworICAgICAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KHZtKTsKKyAgICAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPnN0cnVjdHVyZUNhY2hlLmVt
cHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIGJhc2VDbGFzcyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JdGVyYXRvck9wZXJhdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcAppbmRl
eCBjMzE2OWEyY2U1OTdkNzQwZmYwMmRmNzI3M2RmMmU2ZWEwYzczMzA3Li5kNjlkYzBmMjE3YmJh
ZTkwNGE4MzAyMjc5MmFhZjhkZWY3MTZhN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JdGVyYXRvck9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5jcHAKQEAgLTEzMiw3ICsxMzIsNyBA
QCBzdGF0aWMgY29uc3RleHByIFByb3BlcnR5T2Zmc2V0IGRvbmVQcm9wZXJ0eU9mZnNldCA9IDE7
CiAKIFN0cnVjdHVyZSogY3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewotICAgIFN0cnVjdHVyZSogaXRlcmF0
b3JSZXN1bHRTdHJ1Y3R1cmUgPSB2bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVy
ZUZvclByb3RvdHlwZSgmZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBl
KCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1
cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LnN0cnVjdHVyZUNhY2hl
LmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKCZnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC5vYmplY3RQcm90b3R5cGUoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFj
aXR5KCkpOwogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldDsKICAgICBpdGVyYXRvclJlc3VsdFN0
cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBpdGVyYXRvclJl
c3VsdFN0cnVjdHVyZSwgdm0ucHJvcGVydHlOYW1lcy0+dmFsdWUsIDAsIG9mZnNldCk7CiAgICAg
UkVMRUFTRV9BU1NFUlQob2Zmc2V0ID09IHZhbHVlUHJvcGVydHlPZmZzZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXggMWVl
ODExZTBkNWY5ZWQzN2EzZDY5MGZlYWZhOGUzMzgyYWZhYmIwNi4uNjRlNDljNzNkYzUyOTNkZjhl
NzVlNzk2MzBkNjNhMWFlZWJjZjI0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgaW5saW5lIFN0
cnVjdHVyZSogZ2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QKICAgICAvLyBjdXJyZW50bHkuIFdob2V2ZXIgd29ya3Mgb24gY2FjaGlu
ZyBzdHJ1Y3R1cmUgY2hhbmdlcyBmb3IgcHJvdG90eXBlIHRyYW5zaXRpb25zIHNob3VsZCBjb25z
aWRlciB0aGlzIHByb2JsZW0gYXMgd2VsbC4KICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MzgKICAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0
KCkgJiYgcHJvdG90eXBlLmdldE9iamVjdCgpLT5nbG9iYWxPYmplY3Qodm0pID09IGdsb2JhbE9i
amVjdCkgewotICAgICAgICByZXN1bHQgPSB2bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eVN0cnVjdHVy
ZUZvclByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLmdl
dE9iamVjdCgpLCByZXN1bHQpOworICAgICAgICByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnN0cnVj
dHVyZUNhY2hlLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUuZ2V0T2JqZWN0KCksIHJlc3VsdCk7CiAgICAgICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlc3VsdC0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0ID0gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCByZXN1bHQtPnR5cGVJbmZvKCksIHJlc3Vs
dC0+Y2xhc3NJbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IDhmM2ViNmQ3MTY2ZDI5NDE1ZTliNzc0MmIzYjA5ZWRkMmUw
NzQ2ZTYuLjMyODBlNjVhZGRiNTRkMTg0OThkY2FkZjg4M2MzMmQxOTJiMWZmMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYx
Miw2ICs2MTIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZW5xdWV1ZUpvYiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogYwogSlNHbG9iYWxPYmplY3Q6OkpT
R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKICAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSwgbnVsbHB0cikKICAgICAsIG1fdm0oJnZtKQorICAgICwgc3RydWN0dXJlQ2Fj
aGUodm0pCiAgICAgLCBtX2xpbmtUaW1lQ29uc3RhbnRzKG51bWJlck9mTGlua1RpbWVDb25zdGFu
dHMpCiAgICAgLCBtX21hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KFdhdGNocG9pbnRT
ZXQ6OmNyZWF0ZShJc1dhdGNoZWQpKQogICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQo
V2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCkBAIC04MjMsNyArODI0LDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAgIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMCwgbWFrZVN0cmluZygic2V0ICIsIHZtLnByb3BlcnR5TmFtZXMtPnVuZGVy
c2NvcmVQcm90by5zdHJpbmcoKSksIGdsb2JhbEZ1bmNQcm90b1NldHRlcikpOwogICAgIG1fb2Jq
ZWN0UHJvdG90eXBlLT5wdXREaXJlY3ROb25JbmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90bywgcHJvdG9BY2Nlc3NvciwgUHJv
cGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
ICAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5zdHJ1Y3R1cmUodm0pLT5zZXRQcm90b3R5cGVXaXRo
b3V0VHJhbnNpdGlvbih2bSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwotICAgIG1fb2JqZWN0
U3RydWN0dXJlRm9yT2JqZWN0Q29uc3RydWN0b3Iuc2V0KHZtLCB0aGlzLCB2bS5zdHJ1Y3R1cmVD
YWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSh0aGlzLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpKTsKKyAg
ICBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yLnNldCh2bSwgdGhpcywgc3Ry
dWN0dXJlQ2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUodGhpcywgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgp
KSk7CiAgICAgbV9vYmplY3RQcm90b1ZhbHVlT2ZGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGpzQ2Fz
dDxKU0Z1bmN0aW9uKj4ob2JqZWN0UHJvdG90eXBlKCktPmdldERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+dmFsdWVPZikpKTsKIAogICAgIG1fc3BlY2llc0dldHRlclNldHRlci5zZXQodm0s
IHRoaXMsIEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIGdsb2JhbE9wZXJhdGlvbnNTcGVjaWVzR2V0dGVyQ29kZUdlbmVyYXRvcih2bSksIHRoaXMp
LCBudWxscHRyKSk7CkBAIC0yMDMxLDcgKzIwMzIsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpo
YXZlQUJhZFRpbWUoVk0mIHZtKQogICAgIC8vIFdfU0MsIFJfQlQsIFJfU0MsIFdfQlQ6IF4gU2Ft
ZQogICAgIC8vIFdfU0MsIFJfQlQsIFdfQlQsIFJfU0M6IF4gU2FtZQogICAgIC8vIFdfU0MsIFdf
QlQsIFJfQlQsIFJfU0M6IE5vIHdhdGNocG9pbnQgaXMgaW5zdGFsbGVkLCBidXQgd2UgY291bGQg
bm90IHNlZSBvbGQgc3RydWN0dXJlcyBmcm9tIHRoZSBjYWNoZS4KLSAgICB2bS5zdHJ1Y3R1cmVD
YWNoZS5jbGVhcigpOyAvLyBXZSBtYXkgYmUgY2FjaGluZyBhcnJheSBzdHJ1Y3R1cmVzIGluIGhl
cmUuCisgICAgc3RydWN0dXJlQ2FjaGUuY2xlYXIoKTsgLy8gV2UgbWF5IGJlIGNhY2hpbmcgYXJy
YXkgc3RydWN0dXJlcyBpbiBoZXJlLgogCiAgICAgRGVmZXJHQyBkZWZlckdDKHZtKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZmJl
MmEyMWRjMDc1OTE2NmRkNWMwZTMwM2RkNjhjZWNhODllMDVkOC4uNWM0OTZlMDYyOTc3Njg4ZjM3
OWY5NjE2NDU5OTQ4OGY4YWM4YzZkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVnRXhw
R2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVGbGFncy5oIgogI2luY2x1ZGUgIlN0cmlu
Z1Byb3RvdHlwZS5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUNhY2hlLmgiCiAjaW5jbHVkZSAiU3lt
Ym9sUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlICJXYXRjaHBvaW50Lmgi
CkBAIC0yOTgsNiArMjk5LDggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdt
ZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgSW5p
dGlhbGl6ZXIgPSB0eXBlbmFtZSBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFQ+OjpJbml0
aWFsaXplcjsKIAogICAgIFJlZ2lzdGVyIG1fZGVwcmVjYXRlZENhbGxGcmFtZUZvckRlYnVnZ2Vy
W0NhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzXTsKKworICAgIFN0cnVjdHVyZUNhY2hl
IHN0cnVjdHVyZUNhY2hlOwogICAgIAogICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbV9nbG9i
YWxUaGlzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaAppbmRleCBmZTM3ZDZjNTVlODM1NjJkYjRiMDcxMjg4YzFkMjg4OGI3MGIwMGRk
Li42ZDZhMDVmYmU3NDlkOTY3NGI1ODI3YTBmMmNlMWM4NmU4NTczNDFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKQEAgLTY3LDgg
KzY3LDcgQEAgaW5saW5lIEpTRmluYWxPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogY29uc3RydWN0
RW1wdHlPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHByb3Rv
dHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xv
YmFsT2JqZWN0KTsKLSAgICBTdHJ1Y3R1cmVDYWNoZSYgc3RydWN0dXJlQ2FjaGUgPSB2bS5zdHJ1
Y3R1cmVDYWNoZTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUNhY2hlLmVt
cHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBp
bmxpbmVDYXBhY2l0eSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3Qt
PnN0cnVjdHVyZUNhY2hlLmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBpbmxpbmVDYXBhY2l0eSk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdEVt
cHR5T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogfQogCkBAIC0xMDMsNyArMTAyLDcgQEAgc3RhdGlj
IGNvbnN0ZXhwciBQcm9wZXJ0eU9mZnNldCBhY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvckNvbmZp
Z3VyYWJsZVByb3BlcnR5T2YKIAogaW5saW5lIFN0cnVjdHVyZSogY3JlYXRlRGF0YVByb3BlcnR5
RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2bS5zdHJ1Y3R1cmVDYWNoZS5l
bXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0
eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC5zdHJ1Y3R1cmVD
YWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVD
YXBhY2l0eSgpKTsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7CiAgICAgc3RydWN0dXJlID0g
U3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSwgdm0ucHJvcGVy
dHlOYW1lcy0+dmFsdWUsIDAsIG9mZnNldCk7CiAgICAgUkVMRUFTRV9BU1NFUlQob2Zmc2V0ID09
IGRhdGFQcm9wZXJ0eURlc2NyaXB0b3JWYWx1ZVByb3BlcnR5T2Zmc2V0KTsKQEAgLTExOCw3ICsx
MTcsNyBAQCBpbmxpbmUgU3RydWN0dXJlKiBjcmVhdGVEYXRhUHJvcGVydHlEZXNjcmlwdG9yT2Jq
ZWN0U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYgogCiBpbmxpbmUgU3RydWN0dXJlKiBjcmVh
dGVBY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2
bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRl
ZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2Jh
bE9iamVjdC5zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgm
Z2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmpl
Y3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7
CiAgICAgc3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0
cnVjdHVyZSwgdm0ucHJvcGVydHlOYW1lcy0+Z2V0LCAwLCBvZmZzZXQpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKG9mZnNldCA9PSBhY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvckdldFByb3BlcnR5T2Zm
c2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlw
ZUtleS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKaW5k
ZXggYTdmOTQ3MGYxOTQyYTk5NWZjNDkxY2E0MjdkMWEzMDlhZGY4NWIyYS4uNmQzMDkxM2IyMGNi
ZDc0YjdkNGU3ZmI5OTllZmM0NTYyMGQ0ZmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKQEAgLTMwLDE5ICszMCwxNyBAQAogbmFtZXNwYWNlIEpT
QyB7CiAKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0Owog
Y2xhc3MgSlNPYmplY3Q7CiAKIGNsYXNzIFByb3RvdHlwZUtleSB7CiBwdWJsaWM6CiAgICAgUHJv
dG90eXBlS2V5KCkgeyB9CiAgICAgCi0gICAgUHJvdG90eXBlS2V5KEpTT2JqZWN0KiBwcm90b3R5
cGUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNp
dHksIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQorICAgIFByb3RvdHlwZUtleShKU09iamVjdCogcHJvdG90eXBlLCBGdW5jdGlvbkV4ZWN1
dGFibGUqIGV4ZWN1dGFibGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5LCBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbykKICAgICAgICAgOiBtX3Byb3RvdHlwZShwcm90b3R5cGUpCiAgICAgICAg
ICwgbV9leGVjdXRhYmxlKGV4ZWN1dGFibGUpCiAgICAgICAgICwgbV9pbmxpbmVDYXBhY2l0eShp
bmxpbmVDYXBhY2l0eSkKICAgICAgICAgLCBtX2NsYXNzSW5mbyhjbGFzc0luZm8pCi0gICAgICAg
ICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICB9CiAgICAgCkBAIC01
NSwxNSArNTMsMTMgQEAgY2xhc3MgUHJvdG90eXBlS2V5IHsKICAgICBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGV4ZWN1dGFibGUoKSBjb25zdCB7IHJldHVybiBtX2V4ZWN1dGFibGU7IH0KICAgICB1bnNp
Z25lZCBpbmxpbmVDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ2FwYWNpdHk7IH0K
ICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NJ
bmZvOyB9Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fZ2xvYmFsT2JqZWN0OyB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFByb3Rv
dHlwZUtleSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9wcm90b3R5cGUg
PT0gb3RoZXIubV9wcm90b3R5cGUKICAgICAgICAgICAgICYmIG1fZXhlY3V0YWJsZSA9PSBvdGhl
ci5tX2V4ZWN1dGFibGUKICAgICAgICAgICAgICYmIG1faW5saW5lQ2FwYWNpdHkgPT0gb3RoZXIu
bV9pbmxpbmVDYXBhY2l0eQotICAgICAgICAgICAgJiYgbV9jbGFzc0luZm8gPT0gb3RoZXIubV9j
bGFzc0luZm8KLSAgICAgICAgICAgICYmIG1fZ2xvYmFsT2JqZWN0ID09IG90aGVyLm1fZ2xvYmFs
T2JqZWN0OworICAgICAgICAgICAgJiYgbV9jbGFzc0luZm8gPT0gb3RoZXIubV9jbGFzc0luZm87
CiAgICAgfQogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90b3R5cGVLZXkmIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQpAQCAtNzIsNyArNjgsNyBA
QCBjbGFzcyBQcm90b3R5cGVLZXkgewogICAgIAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KG1fcHJvdG90eXBlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KG1fZXhlY3V0YWJsZSkgXiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX2NsYXNzSW5mbykgXiBi
aXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX2dsb2JhbE9iamVjdCkpICsgbV9pbmxpbmVDYXBhY2l0
eTsKKyAgICAgICAgcmV0dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KG1fcHJvdG90eXBlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1f
ZXhlY3V0YWJsZSkgXiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX2NsYXNzSW5mbykpICsgbV9p
bmxpbmVDYXBhY2l0eTsKICAgICB9CiAgICAgCiBwcml2YXRlOgpAQCAtODIsNyArNzgsNiBAQCBj
bGFzcyBQcm90b3R5cGVLZXkgewogICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogbV9leGVjdXRhYmxl
IHsgbnVsbHB0ciB9OyAKICAgICB1bnNpZ25lZCBtX2lubGluZUNhcGFjaXR5IHsgMCB9OwogICAg
IGNvbnN0IENsYXNzSW5mbyogbV9jbGFzc0luZm8geyBudWxscHRyIH07Ci0gICAgSlNHbG9iYWxP
YmplY3QqIG1fZ2xvYmFsT2JqZWN0IHsgbnVsbHB0ciB9OwogfTsKIAogc3RydWN0IFByb3RvdHlw
ZUtleUhhc2ggewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
Q2FjaGUuY3BwCmluZGV4IGNkZWMyZTRhYzAyOWIyZWY2YjVmMDMwNzMyZTQxNGFkZGE4MzJlMzUu
LjE4MDBlMjg0OTliZjVhOTk0NzdmZWJlNGQ2MGU0ODQwNTQ4MGU4ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5jcHAKQEAgLTQyLDcgKzQy
LDcgQEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlQ2FjaGU6OmNyZWF0ZUVtcHR5U3RydWN0
dXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FTU0VSVCghIXByb3Rv
dHlwZSk7IC8vIFdlIHVzZSBudWxscHRyIGluc2lkZSB0aGUgSGFzaE1hcCBmb3IgcHJvdG90eXBl
IHRvIG1lYW4gcG9seSBwcm90bywgc28gdXNlcidzIG9mIHRoaXMgQVBJIG11c3QgcHJvdmlkZSBu
b24tbnVsbCBwcm90b3R5cGVzLgogCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBsb2NrIGhlcmUg
YmVjYXVzZSBvbmx5IHRoZSBtYWluIHRocmVhZCBjYW4gZ2V0IGhlcmUsIGFuZCBvbmx5IHRoZSBt
YWluIHRocmVhZCBjYW4gbXV0YXRlIHRoZSBjYWNoZQotICAgIFByb3RvdHlwZUtleSBrZXkgeyBt
YWtlUG9seVByb3RvU3RydWN0dXJlID8gbnVsbHB0ciA6IHByb3RvdHlwZSwgZXhlY3V0YWJsZSwg
aW5saW5lQ2FwYWNpdHksIGNsYXNzSW5mbywgZ2xvYmFsT2JqZWN0IH07CisgICAgUHJvdG90eXBl
S2V5IGtleSB7IG1ha2VQb2x5UHJvdG9TdHJ1Y3R1cmUgPyBudWxscHRyIDogcHJvdG90eXBlLCBl
eGVjdXRhYmxlLCBpbmxpbmVDYXBhY2l0eSwgY2xhc3NJbmZvIH07CiAgICAgaWYgKFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gbV9zdHJ1Y3R1cmVzLmdldChrZXkpKSB7CiAgICAgICAgIGlmIChtYWtl
UG9seVByb3RvU3RydWN0dXJlKSB7CiAgICAgICAgICAgICBwcm90b3R5cGUtPmRpZEJlY29tZVBy
b3RvdHlwZSgpOwpAQCAtNjksMTEgKzY5LDExIEBAIGlubGluZSBTdHJ1Y3R1cmUqIFN0cnVjdHVy
ZUNhY2hlOjpjcmVhdGVFbXB0eVN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAg
ICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KIAotU3RydWN0dXJlKiBTdHJ1Y3R1cmVDYWNoZTo6ZW1w
dHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIHByb3RvdHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCitTdHJ1Y3R1
cmUqIFN0cnVjdHVyZUNhY2hlOjplbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseShKU09i
amVjdCogcHJvdG90eXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBSRUxFQVNF
X0FTU0VSVCghIXByb3RvdHlwZSk7IC8vIFdlIHVzZSBudWxscHRyIGluc2lkZSB0aGUgSGFzaE1h
cCBmb3IgcHJvdG90eXBlIHRvIG1lYW4gcG9seSBwcm90bywgc28gdXNlcidzIG9mIHRoaXMgQVBJ
IG11c3QgcHJvdmlkZSBub24tbnVsbCBwcm90b3R5cGVzLgogICAgIAotICAgIFByb3RvdHlwZUtl
eSBrZXkgeyBwcm90b3R5cGUsIG51bGxwdHIsIGlubGluZUNhcGFjaXR5LCBKU0ZpbmFsT2JqZWN0
OjppbmZvKCksIGdsb2JhbE9iamVjdCB9OworICAgIFByb3RvdHlwZUtleSBrZXkgeyBwcm90b3R5
cGUsIG51bGxwdHIsIGlubGluZUNhcGFjaXR5LCBKU0ZpbmFsT2JqZWN0OjppbmZvKCkgfTsKICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gbV9zdHJ1Y3R1cmVzLmdldChrZXkpKSB7CiAgICAgICAgIEFTU0VSVChwcm90b3R5cGUtPm1h
eUJlUHJvdG90eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUNhY2hlLmgKaW5kZXggMWI3N2FmOWVmOTg4ZDkzZjBjNDI5ZGJkN2MyM2VmZDA2M2RkY2I0
MC4uZTI3M2YwNjVhOGMyNzMyZjIwYjk3N2YxMzk4ZDcxYWI3NWE2MjdiNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2FjaGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5oCkBAIC01Miw3ICs1Miw3
IEBAIGNsYXNzIFN0cnVjdHVyZUNhY2hlIHsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cnVj
dHVyZSogZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5LCBib29sIG1ha2VQb2x5UHJvdG9TdHJ1
Y3R1cmUgPSBmYWxzZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiA9IG51bGxwdHIpOwogICAgIEpTX0VY
UE9SVF9QUklWQVRFIFN0cnVjdHVyZSogZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5cGVGcm9tQmFz
ZVN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAg
SlNfRVhQT1JUX1BSSVZBVEUgU3RydWN0dXJlKiBlbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJl
bnRseShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVkIGlubGlu
ZUNhcGFjaXR5KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIGVtcHR5T2JqZWN0
U3RydWN0dXJlQ29uY3VycmVudGx5KEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVkIGlubGlu
ZUNhcGFjaXR5KTsKIAogcHJpdmF0ZToKICAgICBTdHJ1Y3R1cmUqIGNyZWF0ZUVtcHR5U3RydWN0
dXJlKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8m
LCBjb25zdCBDbGFzc0luZm8qLCBJbmRleGluZ1R5cGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5
LCBib29sIG1ha2VQb2x5UHJvdG9TdHJ1Y3R1cmUsIEZ1bmN0aW9uRXhlY3V0YWJsZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGEyNzk4ZGQzZWI5Y2ZlNzMzNmYzNjNl
ZmY1NzMyODhjYjRkYWUxZDIuLjZjMjg5NDUyNjUxYzI1ZjY2NmI1OWRiNDNjYWVmYThmMWJhMTY3
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTIxOSw3ICsyMTksNiBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUsIFdURjo6UnVuTG9vcCog
cnVuTG9vcCwgYm9vbCogc3VjY2VzcykKICAgICAsIGVtcHR5TGlzdChuZXcgQXJnTGlzdCkKICAg
ICAsIG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVChtYWtlVW5p
cXVlPFNpbXBsZVN0YXRzPigpKQogICAgICwgc3ltYm9sSW1wbFRvU3ltYm9sTWFwKCp0aGlzKQot
ICAgICwgc3RydWN0dXJlQ2FjaGUoKnRoaXMpCiAgICAgLCBpbnRlcnByZXRlcihudWxscHRyKQog
ICAgICwgZW50cnlTY29wZShudWxscHRyKQogICAgICwgbV9yZWdFeHBDYWNoZShuZXcgUmVnRXhw
Q2FjaGUodGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA2NjU2OGYyOWZl
MGJmZTNmMDNlODA4ZmMxMjRmYmQ4NTJjYmM1ZGY5Li40NmU0MjcyMGNjZDk3ODk1MmYxODBkYWIw
ZTIxMTRhOWQ3MjNiODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25FdmVudExvY2F0aW9uLmgiCiAjaW5jbHVkZSAi
RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUg
IkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkludGVncml0eS5oIgogI2luY2x1ZGUgIkludHJp
bnNpYy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKQEAgLTQ4LDExICs0OSwxMSBAQAogI2lu
Y2x1ZGUgIk51bWVyaWNTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlQ2FjaGUuaCIKICNpbmNsdWRlICJT
dWJzcGFjZUFjY2Vzcy5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Vk1UcmFwcy5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0LmgiCisjaW5jbHVkZSAiV2Vha0dDTWFw
LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvQnVtcFBvaW50ZXJBbGxvY2F0
b3IuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KQEAgLTU0Nyw4ICs1NDgs
NiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBE
b3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGFkZFNv
dXJjZVByb3ZpZGVyQ2FjaGUoU291cmNlUHJvdmlkZXIqKTsKICAgICB2b2lkIGNsZWFyU291cmNl
UHJvdmlkZXJDYWNoZXMoKTsKIAotICAgIFN0cnVjdHVyZUNhY2hlIHN0cnVjdHVyZUNhY2hlOwot
CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTb3VyY2VQcm92aWRlcj4sIFJlZlB0cjxTb3Vy
Y2VQcm92aWRlckNhY2hlPj4gU291cmNlUHJvdmlkZXJDYWNoZU1hcDsKICAgICBTb3VyY2VQcm92
aWRlckNhY2hlTWFwIHNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CiAgICAgSW50ZXJwcmV0ZXIqIGlu
dGVycHJldGVyOwo=
</data>
<flag name="commit-queue"
          id="485726"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457197</attachid>
            <date>2022-04-10 05:23:56 -0700</date>
            <delta_ts>2022-04-11 12:11:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239044-20220410052356.patch</filename>
            <type>text/plain</type>
            <size>24746</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi4wZDJjZjlhOWFmNzUwMjc1
NDAyMjhhNjE4NGFkMzBjZjU0NGMwOWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMi0wNC0xMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgU3RydWN0dXJlQ2FjaGUgZnJvbSBWTSB0byBKU0dsb2Jh
bE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM5MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugc2hvdWxkIGhhdmUgU3RydWN0dXJlQ2FjaGUgcGVyIEpTR2xvYmFsT2JqZWN0IHNpbmNlIGNh
Y2hlZCBzdHJ1Y3R1cmVzIGFyZSB0aWVkIHRvIHNvbWUgb2YgSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIFRoaXMgY2FuICgxKSByZWR1Y2Ugc2l6ZSBvZiBlYWNoIFN0cnVjdHVyZUNhY2hlLCAoMikg
ZGVzdHJveSBTdHJ1Y3R1cmVDYWNoZSB0aW1lbHkgYXQgdGhlIGRlc3RydWN0aW9uIG9mCisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0LCBhbmQgKDMpIHNpbXBsaWZpZXMgSlNHbG9iYWxPYmplY3Q6Omhh
dmVBQmFkVGltZSBoYW5kbGluZy4KKworICAgICAgICAqIGJ5dGVjb2RlL0ludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcm9tQmFzZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6Ok9iamVjdEFsbG9jYXRpb25Qcm9maWxlQmFzZTxEZXJpdmVkPjo6aW5pdGlhbGl6ZVBy
b2ZpbGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0
YW50cyk6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SXRlcmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3Vu
ZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6c3RydWN0dXJlQ2FjaGUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3QpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVEYXRhUHJvcGVydHlEZXNjcmlwdG9yT2JqZWN0U3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6Y3JlYXRlQWNjZXNzb3JQcm9wZXJ0eURlc2NyaXB0b3JPYmplY3RTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvdG90eXBlS2V5Lmg6CisgICAgICAgIChKU0M6OlBy
b3RvdHlwZUtleTo6UHJvdG90eXBlS2V5KToKKyAgICAgICAgKEpTQzo6UHJvdG90eXBlS2V5Ojpj
bGFzc0luZm8gY29uc3QpOgorICAgICAgICAoSlNDOjpQcm90b3R5cGVLZXk6Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAoSlNDOjpQcm90b3R5cGVLZXk6Omhhc2ggY29uc3QpOgorICAgICAg
ICAoSlNDOjpQcm90b3R5cGVLZXk6Omdsb2JhbE9iamVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZUNhY2hlOjpjcmVhdGVFbXB0eVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZUNh
Y2hlOjplbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseSk6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAo
SlNDOjpWTTo6Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMi0wNC0wOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBWZWN0
b3Igd2l0aCBpbmxpbmUgY2FwYWNpdHkgaW4gT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY3Jl
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaAppbmRleCBiMTc3ZmVmZDA2
MzZlMjJlYjUwZmZmYjYyOWVjZTQxMTgxNGUyZGRkLi44OTFkYjI4YjZhMWJjYzk3NTQ4ZmVhNmMy
OWU3OTQ0N2U2YjRiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oCkBA
IC01Niw3ICs1Niw3IEBAIGlubGluZSBTdHJ1Y3R1cmUqIEludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZTo6Y3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyCiAgICAgaWYgKHByb3RvdHlw
ZSA9PSBiYXNlU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSkKICAgICAgICAgc3RydWN0dXJl
ID0gYmFzZVN0cnVjdHVyZTsKICAgICBlbHNlCi0gICAgICAgIHN0cnVjdHVyZSA9IHZtLnN0cnVj
dHVyZUNhY2hlLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUoYmFz
ZUdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBiYXNlU3RydWN0dXJlKTsKKyAgICAgICAgc3RydWN0
dXJlID0gYmFzZUdsb2JhbE9iamVjdC0+c3RydWN0dXJlQ2FjaGUoKS5lbXB0eVN0cnVjdHVyZUZv
clByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKGJhc2VHbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
YmFzZVN0cnVjdHVyZSk7CiAKICAgICAvLyBFbnN1cmUgdGhhdCBpZiBhbm90aGVyIHRocmVhZCBz
ZWVzIHRoZSBzdHJ1Y3R1cmUsIGl0IHdpbGwgc2VlIGl0IHByb3Blcmx5IGNyZWF0ZWQuCiAgICAg
V1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMuaAppbmRl
eCA2NTA1ZmFjYmZkZTliNDIxYjQ4ODYyNzNkZTg3Y2IwZjE4MDMxOWM1Li5lYWQ2OWJmN2M3MGI0
M2I4MzUwMWY4MjMwYzZhYmUxYjdiNDA1ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxlSW5saW5l
cy5oCkBAIC0xMDksNyArMTA5LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIE9iamVjdEFsbG9jYXRp
b25Qcm9maWxlQmFzZTxEZXJpdmVkPjo6aW5pdGlhbGl6ZVByb2ZpbGUoVk0mIHYKICAgICAgICAg
ICAgIGlubGluZUNhcGFjaXR5ID0gSlNGaW5hbE9iamVjdDo6bWF4SW5saW5lQ2FwYWNpdHkoKTsK
ICAgICB9CiAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHZtLnN0cnVjdHVyZUNhY2hlLmVt
cHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBp
bmxpbmVDYXBhY2l0eSwgaXNQb2x5UHJvdG8sIGV4ZWN1dGFibGUpOworICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVDYWNoZSgpLmVtcHR5T2JqZWN0U3Ry
dWN0dXJlRm9yUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBpbmxpbmVDYXBhY2l0
eSwgaXNQb2x5UHJvdG8sIGV4ZWN1dGFibGUpOwogCiAgICAgaWYgKGlzUG9seVByb3RvKSB7CiAg
ICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmhhc1BvbHlQcm90bygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAppbmRleCAwZjYwYjkzN2ZhZDk2NTdmMDk3NWMyMGExMDMxYzQ2ZmUyZWFhMjE0Li5hZTZjOWZk
ZmZkNDNjZTUwOWJlMjU2YTJmZWRlZmQ3NDVkOTRkZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBA
IC0zMTI3LDEwICszMTI3LDI1IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgfQogCiAg
ICAgY2FzZSBPYmplY3RDcmVhdGU6IHsKLSAgICAgICAgaWYgKEpTVmFsdWUgcHJvdG90eXBlID0g
Zm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV92YWx1ZSkgewotICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7Ci0gICAgICAgICAgICBpZiAocHJvdG90
eXBlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBt
X2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5udWxsUHJvdG90
eXBlT2JqZWN0U3RydWN0dXJlKCk7CisgICAgICAgIGlmIChKU1ZhbHVlIGJhc2UgPSBmb3JOb2Rl
KG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlKSB7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFu
dGljKTsKKyAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgIGlmIChiYXNlLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHN0cnVjdHVyZSA9IGds
b2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgpOworICAgICAgICAgICAg
ZWxzZSBpZiAoYmFzZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgLy8gSGF2aW5nIGEg
YmFkIHRpbWUgY2xlYXJzIHRoZSBzdHJ1Y3R1cmVDYWNoZSwgYW5kIHNvIGl0IHNob3VsZCBpbnZh
bGlkYXRlIHRoaXMgc3RydWN0dXJlLgorICAgICAgICAgICAgICAgIGJvb2wgaXNIYXZpbmdBQmFk
VGltZSA9IGdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpOworICAgICAgICAgICAgICAg
IC8vIE5vcm1hbGx5LCB3ZSB3b3VsZCBhbHdheXMgaW5zdGFsbCBhIHdhdGNocG9pbnQuIEluIHRo
aXMgY2FzZSwgaG93ZXZlciwgaWYgd2UgaGF2ZUFCYWRUaW1lLCB3ZQorICAgICAgICAgICAgICAg
IC8vIHN0aWxsIHdhbnQgdG8gb3B0aW1pemUuIFRoZXJlIGlzIG5vIHdhdGNocG9pbnQgZm9yIHRo
YXQgY2FzZSB0aG91Z2gsIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgbG9hZAorICAgICAg
ICAgICAgICAgIC8vIGRvZXMgbm90IGdldCBob2lzdGVkIGFib3ZlIHRoZSBjaGVjay4KKyAgICAg
ICAgICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWlz
SGF2aW5nQUJhZFRpbWUpCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMo
KS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoKSk7Cisg
ICAgICAgICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVDYWNoZSgp
LmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KGJhc2UuZ2V0T2JqZWN0KCksIEpTRmlu
YWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKHN0cnVjdHVyZSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hv
dWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKICAgICAgICAgICAgICAgICAgICAgZGlk
Rm9sZENsb2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgc3Ry
dWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMjk4NWE3NmQ2YmE2YzVjYWQzOTIwNmQ5ZDYzNDc4YTNi
ZWJlNTI3OC4uZDY2OWMxMGI3M2JlYTU5ZjgxMDM3ZThiY2FmMTExY2EyMDRhYjMxZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2Uo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNIYXZpbmdBQmFkVGltZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRkTGF6aWx5KGds
b2JhbE9iamVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT52bSgpLnN0cnVjdHVyZUNhY2hlLmVt
cHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KGdsb2JhbE9iamVjdCwgYmFzZS5nZXRPYmpl
Y3QoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVDYWNoZSgp
LmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KGJhc2UuZ2V0T2JqZWN0KCksIEpTRmlu
YWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnVjdHVy
ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmNwcAppbmRleCAwMWJjMDg2YWY4NDk4MGY4NmEwNGJiMmFkZDliNThhMTRkYmU2MTg5Li42
YTVlMmUwNzA2OWYyZDk0N2M0ZTQzNjY3OWQwZDMzYzUwMjE0YzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMTYwLDcg
KzE2MCw4IEBAIFN0cnVjdHVyZSogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1
Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgIGlmIChKU09iamVjdCog
cHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBwcm90b3R5cGVWYWx1ZSkp
IHsKICAgICAgICAgICAgIC8vIFRoaXMgb25seSBoYXBwZW5zIGlmIHNvbWVvbmUgUmVmbGVjdC5j
b25zdHJ1Y3RzIG91ciBidWlsdGluIGNvbnN0cnVjdG9yIHdpdGggYW5vdGhlciBidWlsdGluIGNv
bnN0cnVjdG9yIGFzIHRoZSBuZXcudGFyZ2V0LgogICAgICAgICAgICAgLy8gVGh1cywgd2UgZG9u
J3QgY2FyZSBhYm91dCB0aGUgY29zdCBvZiBsb29raW5nIHVwIHRoZSBzdHJ1Y3R1cmUgZnJvbSBv
dXIgaGFzaCB0YWJsZSBldmVyeSB0aW1lLgotICAgICAgICAgICAgcmV0dXJuIHZtLnN0cnVjdHVy
ZUNhY2hlLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUocHJvdG90
eXBlLT5nbG9iYWxPYmplY3Qodm0pLCBwcm90b3R5cGUsIGJhc2VDbGFzcyk7CisgICAgICAgICAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
dm0pOworICAgICAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+c3RydWN0dXJlQ2FjaGUoKS5l
bXB0eVN0cnVjdHVyZUZvclByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBiYXNlQ2xhc3MpOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5jcHAKaW5k
ZXggYzMxNjlhMmNlNTk3ZDc0MGZmMDJkZjcyNzNkZjJlNmVhMGM3MzMwNy4uYjE0Y2JjOTY4MTlh
MjM0MzFiZGY5OWM5MmEzMGM2ZDVjZmFjZjcwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JdGVyYXRvck9wZXJhdGlvbnMuY3BwCkBAIC0xMzIsNyArMTMyLDcg
QEAgc3RhdGljIGNvbnN0ZXhwciBQcm9wZXJ0eU9mZnNldCBkb25lUHJvcGVydHlPZmZzZXQgPSAx
OwogCiBTdHJ1Y3R1cmUqIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0T2JqZWN0U3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKLSAgICBTdHJ1Y3R1cmUqIGl0ZXJh
dG9yUmVzdWx0U3RydWN0dXJlID0gdm0uc3RydWN0dXJlQ2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1
cmVGb3JQcm90b3R5cGUoJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlw
ZSgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CisgICAgU3RydWN0
dXJlKiBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC5zdHJ1Y3R1cmVDYWNo
ZSgpLmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKCZnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNh
cGFjaXR5KCkpOwogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldDsKICAgICBpdGVyYXRvclJlc3Vs
dFN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBpdGVyYXRv
clJlc3VsdFN0cnVjdHVyZSwgdm0ucHJvcGVydHlOYW1lcy0+dmFsdWUsIDAsIG9mZnNldCk7CiAg
ICAgUkVMRUFTRV9BU1NFUlQob2Zmc2V0ID09IHZhbHVlUHJvcGVydHlPZmZzZXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXgg
MWVlODExZTBkNWY5ZWQzN2EzZDY5MGZlYWZhOGUzMzgyYWZhYmIwNi4uMDg5NDg2NmE2NDI4ZmY3
ODVmMzIyYzA0M2ExYmZhYzAyYTcyZDI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgaW5saW5l
IFN0cnVjdHVyZSogZ2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QKICAgICAvLyBjdXJyZW50bHkuIFdob2V2ZXIgd29ya3Mgb24gY2Fj
aGluZyBzdHJ1Y3R1cmUgY2hhbmdlcyBmb3IgcHJvdG90eXBlIHRyYW5zaXRpb25zIHNob3VsZCBj
b25zaWRlciB0aGlzIHByb2JsZW0gYXMgd2VsbC4KICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MzgKICAgICBpZiAocHJvdG90eXBlLmlzT2Jq
ZWN0KCkgJiYgcHJvdG90eXBlLmdldE9iamVjdCgpLT5nbG9iYWxPYmplY3Qodm0pID09IGdsb2Jh
bE9iamVjdCkgewotICAgICAgICByZXN1bHQgPSB2bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eVN0cnVj
dHVyZUZvclByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LmdldE9iamVjdCgpLCByZXN1bHQpOworICAgICAgICByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnN0
cnVjdHVyZUNhY2hlKCkuZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5cGVGcm9tQmFzZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QsIHByb3RvdHlwZS5nZXRPYmplY3QoKSwgcmVzdWx0KTsKICAgICAgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVzdWx0LT5nbG9iYWxPYmplY3QoKSA9
PSBnbG9iYWxPYmplY3QpOwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIHJlc3VsdC0+dHlwZUluZm8oKSwg
cmVzdWx0LT5jbGFzc0luZm8oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOGYzZWI2ZDcxNjZkMjk0MTVlOWI3NzQyYjNiMDll
ZGQyZTA3NDZlNi4uMTQzNzU2MjYzMDk2MzQzYWVhNzI2NGJkYTI2MTBjNTk1ZDZiZjIwYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApA
QCAtNjEzLDYgKzYxMyw3IEBAIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdChWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNCiAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIG51bGxwdHIpCiAgICAgLCBtX3ZtKCZ2bSkKICAgICAsIG1fbGlua1RpbWVD
b25zdGFudHMobnVtYmVyT2ZMaW5rVGltZUNvbnN0YW50cykKKyAgICAsIG1fc3RydWN0dXJlQ2Fj
aGUodm0pCiAgICAgLCBtX21hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KFdhdGNocG9p
bnRTZXQ6OmNyZWF0ZShJc1dhdGNoZWQpKQogICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9p
bnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBtX3ZhckluamVjdGlv
bldhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCkBAIC04MjMsNyAr
ODI0LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAgIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgbWFrZVN0cmluZygic2V0ICIsIHZtLnByb3BlcnR5
TmFtZXMtPnVuZGVyc2NvcmVQcm90by5zdHJpbmcoKSksIGdsb2JhbEZ1bmNQcm90b1NldHRlcikp
OwogICAgIG1fb2JqZWN0UHJvdG90eXBlLT5wdXREaXJlY3ROb25JbmRleEFjY2Vzc29yV2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90bywgcHJvdG9B
Y2Nlc3NvciwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKICAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5zdHJ1Y3R1cmUodm0pLT5zZXRQ
cm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbih2bSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwot
ICAgIG1fb2JqZWN0U3RydWN0dXJlRm9yT2JqZWN0Q29uc3RydWN0b3Iuc2V0KHZtLCB0aGlzLCB2
bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSh0aGlzLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFj
aXR5KCkpKTsKKyAgICBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yLnNldCh2
bSwgdGhpcywgbV9zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlw
ZSh0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElu
bGluZUNhcGFjaXR5KCkpKTsKICAgICBtX29iamVjdFByb3RvVmFsdWVPZkZ1bmN0aW9uLnNldCh2
bSwgdGhpcywganNDYXN0PEpTRnVuY3Rpb24qPihvYmplY3RQcm90b3R5cGUoKS0+Z2V0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZU9mKSkpOwogCiAgICAgbV9zcGVjaWVzR2V0dGVy
U2V0dGVyLnNldCh2bSwgdGhpcywgR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIHRoaXMsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT3BlcmF0aW9uc1NwZWNpZXNHZXR0ZXJDb2RlR2VuZXJh
dG9yKHZtKSwgdGhpcyksIG51bGxwdHIpKTsKQEAgLTIwMzEsNyArMjAzMiw3IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCiAgICAgLy8gV19TQywgUl9CVCwgUl9T
QywgV19CVDogXiBTYW1lCiAgICAgLy8gV19TQywgUl9CVCwgV19CVCwgUl9TQzogXiBTYW1lCiAg
ICAgLy8gV19TQywgV19CVCwgUl9CVCwgUl9TQzogTm8gd2F0Y2hwb2ludCBpcyBpbnN0YWxsZWQs
IGJ1dCB3ZSBjb3VsZCBub3Qgc2VlIG9sZCBzdHJ1Y3R1cmVzIGZyb20gdGhlIGNhY2hlLgotICAg
IHZtLnN0cnVjdHVyZUNhY2hlLmNsZWFyKCk7IC8vIFdlIG1heSBiZSBjYWNoaW5nIGFycmF5IHN0
cnVjdHVyZXMgaW4gaGVyZS4KKyAgICBtX3N0cnVjdHVyZUNhY2hlLmNsZWFyKCk7IC8vIFdlIG1h
eSBiZSBjYWNoaW5nIGFycmF5IHN0cnVjdHVyZXMgaW4gaGVyZS4KIAogICAgIERlZmVyR0MgZGVm
ZXJHQyh2bSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCmluZGV4IGZiZTJhMjFkYzA3NTkxNjZkZDVjMGUzMDNkZDY4Y2VjYTg5ZTA1ZDguLmIz
MjI5NDczYTk4OGMxZjhkZWFhNWViYjU2NTM4OTcxNzJkMjBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgIlJlZ0V4cEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJSdW50aW1lRmxhZ3MuaCIK
ICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVDYWNoZS5o
IgogI2luY2x1ZGUgIlN5bWJvbFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVk
ZSAiV2F0Y2hwb2ludC5oIgpAQCAtNDkxLDYgKzQ5Miw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0
IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgRml4ZWRWZWN0b3I8
TGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBKU0NlbGw+PiBtX2xpbmtUaW1lQ29uc3RhbnRz
OwogCisgICAgU3RydWN0dXJlQ2FjaGUgbV9zdHJ1Y3R1cmVDYWNoZTsKKwogICAgIFN0cmluZyBt
X25hbWU7CiAKICAgICBTdHJvbmc8SlNPYmplY3Q+IG1fdW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJh
Y2s7CkBAIC05NDQsNiArOTQ3LDggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYp
OwogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogCisg
ICAgU3RydWN0dXJlQ2FjaGUmIHN0cnVjdHVyZUNhY2hlKCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmVD
YWNoZTsgfQorCiAgICAgdm9pZCBzZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjayhWTSYgdm0s
IEpTT2JqZWN0KiBmdW5jdGlvbikgeyBtX3VuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrLnNldCh2
bSwgZnVuY3Rpb24pOyB9CiAgICAgSlNPYmplY3QqIHVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNr
KCkgY29uc3QgeyByZXR1cm4gbV91bmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjay5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
aAppbmRleCBmZTM3ZDZjNTVlODM1NjJkYjRiMDcxMjg4YzFkMjg4OGI3MGIwMGRkLi5iYjA5NTA0
YWY4Y2FiOWEyMjA3NGNiMTgyZThhZWVlNTI1NjRmNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKQEAgLTY3LDggKzY3LDcgQEAg
aW5saW5lIEpTRmluYWxPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogY29uc3RydWN0RW1wdHlPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHByb3RvdHlwZSwgdW5z
aWduZWQgaW5saW5lQ2FwYWNpdHkpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0
KTsKLSAgICBTdHJ1Y3R1cmVDYWNoZSYgc3RydWN0dXJlQ2FjaGUgPSB2bS5zdHJ1Y3R1cmVDYWNo
ZTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUNhY2hlLmVtcHR5T2JqZWN0
U3RydWN0dXJlRm9yUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBpbmxpbmVDYXBh
Y2l0eSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPnN0cnVjdHVy
ZUNhY2hlKCkuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIGlubGluZUNhcGFjaXR5KTsKICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmpl
Y3Qodm0sIHN0cnVjdHVyZSk7CiB9CiAKQEAgLTEwMyw3ICsxMDIsNyBAQCBzdGF0aWMgY29uc3Rl
eHByIFByb3BlcnR5T2Zmc2V0IGFjY2Vzc29yUHJvcGVydHlEZXNjcmlwdG9yQ29uZmlndXJhYmxl
UHJvcGVydHlPZgogCiBpbmxpbmUgU3RydWN0dXJlKiBjcmVhdGVEYXRhUHJvcGVydHlEZXNjcmlw
dG9yT2JqZWN0U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHZtLnN0cnVjdHVyZUNhY2hlLmVtcHR5T2Jq
ZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKCZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpOwor
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LnN0cnVjdHVyZUNhY2hlKCku
ZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0Lm9iamVjdFByb3RvdHlwZSgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNp
dHkoKSk7CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0OwogICAgIHN0cnVjdHVyZSA9IFN0cnVj
dHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHZtLnByb3BlcnR5TmFt
ZXMtPnZhbHVlLCAwLCBvZmZzZXQpOwogICAgIFJFTEVBU0VfQVNTRVJUKG9mZnNldCA9PSBkYXRh
UHJvcGVydHlEZXNjcmlwdG9yVmFsdWVQcm9wZXJ0eU9mZnNldCk7CkBAIC0xMTgsNyArMTE3LDcg
QEAgaW5saW5lIFN0cnVjdHVyZSogY3JlYXRlRGF0YVByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2IKIAogaW5saW5lIFN0cnVjdHVyZSogY3JlYXRlQWNj
ZXNzb3JQcm9wZXJ0eURlc2NyaXB0b3JPYmplY3RTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQogewotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdm0uc3Ry
dWN0dXJlQ2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoJmdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0
SW5saW5lQ2FwYWNpdHkoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmpl
Y3Quc3RydWN0dXJlQ2FjaGUoKS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6
OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7CiAg
ICAgc3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0cnVj
dHVyZSwgdm0ucHJvcGVydHlOYW1lcy0+Z2V0LCAwLCBvZmZzZXQpOwogICAgIFJFTEVBU0VfQVNT
RVJUKG9mZnNldCA9PSBhY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvckdldFByb3BlcnR5T2Zmc2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUtl
eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKaW5kZXgg
YTdmOTQ3MGYxOTQyYTk5NWZjNDkxY2E0MjdkMWEzMDlhZGY4NWIyYS4uNmQzMDkxM2IyMGNiZDc0
YjdkNGU3ZmI5OTllZmM0NTYyMGQ0ZmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvdG90eXBlS2V5LmgKQEAgLTMwLDE5ICszMCwxNyBAQAogbmFtZXNwYWNlIEpTQyB7
CiAKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xh
c3MgSlNPYmplY3Q7CiAKIGNsYXNzIFByb3RvdHlwZUtleSB7CiBwdWJsaWM6CiAgICAgUHJvdG90
eXBlS2V5KCkgeyB9CiAgICAgCi0gICAgUHJvdG90eXBlS2V5KEpTT2JqZWN0KiBwcm90b3R5cGUs
IEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHks
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIFByb3RvdHlwZUtleShKU09iamVjdCogcHJvdG90eXBlLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGV4ZWN1dGFibGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5LCBjb25zdCBDbGFzc0luZm8q
IGNsYXNzSW5mbykKICAgICAgICAgOiBtX3Byb3RvdHlwZShwcm90b3R5cGUpCiAgICAgICAgICwg
bV9leGVjdXRhYmxlKGV4ZWN1dGFibGUpCiAgICAgICAgICwgbV9pbmxpbmVDYXBhY2l0eShpbmxp
bmVDYXBhY2l0eSkKICAgICAgICAgLCBtX2NsYXNzSW5mbyhjbGFzc0luZm8pCi0gICAgICAgICwg
bV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICB9CiAgICAgCkBAIC01NSwx
NSArNTMsMTMgQEAgY2xhc3MgUHJvdG90eXBlS2V5IHsKICAgICBGdW5jdGlvbkV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUoKSBjb25zdCB7IHJldHVybiBtX2V4ZWN1dGFibGU7IH0KICAgICB1bnNpZ25l
ZCBpbmxpbmVDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ2FwYWNpdHk7IH0KICAg
ICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NJbmZv
OyB9Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
Z2xvYmFsT2JqZWN0OyB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFByb3RvdHlw
ZUtleSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9wcm90b3R5cGUgPT0g
b3RoZXIubV9wcm90b3R5cGUKICAgICAgICAgICAgICYmIG1fZXhlY3V0YWJsZSA9PSBvdGhlci5t
X2V4ZWN1dGFibGUKICAgICAgICAgICAgICYmIG1faW5saW5lQ2FwYWNpdHkgPT0gb3RoZXIubV9p
bmxpbmVDYXBhY2l0eQotICAgICAgICAgICAgJiYgbV9jbGFzc0luZm8gPT0gb3RoZXIubV9jbGFz
c0luZm8KLSAgICAgICAgICAgICYmIG1fZ2xvYmFsT2JqZWN0ID09IG90aGVyLm1fZ2xvYmFsT2Jq
ZWN0OworICAgICAgICAgICAgJiYgbV9jbGFzc0luZm8gPT0gb3RoZXIubV9jbGFzc0luZm87CiAg
ICAgfQogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90b3R5cGVLZXkmIG90aGVy
KSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQpAQCAtNzIsNyArNjgsNyBAQCBj
bGFzcyBQcm90b3R5cGVLZXkgewogICAgIAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAg
IHsKLSAgICAgICAgcmV0dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KG1fcHJvdG90eXBlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1f
ZXhlY3V0YWJsZSkgXiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX2NsYXNzSW5mbykgXiBiaXR3
aXNlX2Nhc3Q8dWludHB0cl90PihtX2dsb2JhbE9iamVjdCkpICsgbV9pbmxpbmVDYXBhY2l0eTsK
KyAgICAgICAgcmV0dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KG1fcHJvdG90eXBlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1fZXhl
Y3V0YWJsZSkgXiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX2NsYXNzSW5mbykpICsgbV9pbmxp
bmVDYXBhY2l0eTsKICAgICB9CiAgICAgCiBwcml2YXRlOgpAQCAtODIsNyArNzgsNiBAQCBjbGFz
cyBQcm90b3R5cGVLZXkgewogICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogbV9leGVjdXRhYmxlIHsg
bnVsbHB0ciB9OyAKICAgICB1bnNpZ25lZCBtX2lubGluZUNhcGFjaXR5IHsgMCB9OwogICAgIGNv
bnN0IENsYXNzSW5mbyogbV9jbGFzc0luZm8geyBudWxscHRyIH07Ci0gICAgSlNHbG9iYWxPYmpl
Y3QqIG1fZ2xvYmFsT2JqZWN0IHsgbnVsbHB0ciB9OwogfTsKIAogc3RydWN0IFByb3RvdHlwZUtl
eUhhc2ggewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2Fj
aGUuY3BwCmluZGV4IGNkZWMyZTRhYzAyOWIyZWY2YjVmMDMwNzMyZTQxNGFkZGE4MzJlMzUuLjE4
MDBlMjg0OTliZjVhOTk0NzdmZWJlNGQ2MGU0ODQwNTQ4MGU4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlQ2FjaGU6OmNyZWF0ZUVtcHR5U3RydWN0dXJl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FTU0VSVCghIXByb3RvdHlw
ZSk7IC8vIFdlIHVzZSBudWxscHRyIGluc2lkZSB0aGUgSGFzaE1hcCBmb3IgcHJvdG90eXBlIHRv
IG1lYW4gcG9seSBwcm90bywgc28gdXNlcidzIG9mIHRoaXMgQVBJIG11c3QgcHJvdmlkZSBub24t
bnVsbCBwcm90b3R5cGVzLgogCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBsb2NrIGhlcmUgYmVj
YXVzZSBvbmx5IHRoZSBtYWluIHRocmVhZCBjYW4gZ2V0IGhlcmUsIGFuZCBvbmx5IHRoZSBtYWlu
IHRocmVhZCBjYW4gbXV0YXRlIHRoZSBjYWNoZQotICAgIFByb3RvdHlwZUtleSBrZXkgeyBtYWtl
UG9seVByb3RvU3RydWN0dXJlID8gbnVsbHB0ciA6IHByb3RvdHlwZSwgZXhlY3V0YWJsZSwgaW5s
aW5lQ2FwYWNpdHksIGNsYXNzSW5mbywgZ2xvYmFsT2JqZWN0IH07CisgICAgUHJvdG90eXBlS2V5
IGtleSB7IG1ha2VQb2x5UHJvdG9TdHJ1Y3R1cmUgPyBudWxscHRyIDogcHJvdG90eXBlLCBleGVj
dXRhYmxlLCBpbmxpbmVDYXBhY2l0eSwgY2xhc3NJbmZvIH07CiAgICAgaWYgKFN0cnVjdHVyZSog
c3RydWN0dXJlID0gbV9zdHJ1Y3R1cmVzLmdldChrZXkpKSB7CiAgICAgICAgIGlmIChtYWtlUG9s
eVByb3RvU3RydWN0dXJlKSB7CiAgICAgICAgICAgICBwcm90b3R5cGUtPmRpZEJlY29tZVByb3Rv
dHlwZSgpOwpAQCAtNjksMTEgKzY5LDExIEBAIGlubGluZSBTdHJ1Y3R1cmUqIFN0cnVjdHVyZUNh
Y2hlOjpjcmVhdGVFbXB0eVN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIHN0cnVjdHVyZTsKIH0KIAotU3RydWN0dXJlKiBTdHJ1Y3R1cmVDYWNoZTo6ZW1wdHlP
YmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIHByb3RvdHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCitTdHJ1Y3R1cmUq
IFN0cnVjdHVyZUNhY2hlOjplbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseShKU09iamVj
dCogcHJvdG90eXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVCghIXByb3RvdHlwZSk7IC8vIFdlIHVzZSBudWxscHRyIGluc2lkZSB0aGUgSGFzaE1hcCBm
b3IgcHJvdG90eXBlIHRvIG1lYW4gcG9seSBwcm90bywgc28gdXNlcidzIG9mIHRoaXMgQVBJIG11
c3QgcHJvdmlkZSBub24tbnVsbCBwcm90b3R5cGVzLgogICAgIAotICAgIFByb3RvdHlwZUtleSBr
ZXkgeyBwcm90b3R5cGUsIG51bGxwdHIsIGlubGluZUNhcGFjaXR5LCBKU0ZpbmFsT2JqZWN0Ojpp
bmZvKCksIGdsb2JhbE9iamVjdCB9OworICAgIFByb3RvdHlwZUtleSBrZXkgeyBwcm90b3R5cGUs
IG51bGxwdHIsIGlubGluZUNhcGFjaXR5LCBKU0ZpbmFsT2JqZWN0OjppbmZvKCkgfTsKICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJlID0g
bV9zdHJ1Y3R1cmVzLmdldChrZXkpKSB7CiAgICAgICAgIEFTU0VSVChwcm90b3R5cGUtPm1heUJl
UHJvdG90eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZUNhY2hlLmgKaW5kZXggMWI3N2FmOWVmOTg4ZDkzZjBjNDI5ZGJkN2MyM2VmZDA2M2RkY2I0MC4u
ZTI3M2YwNjVhOGMyNzMyZjIwYjk3N2YxMzk4ZDcxYWI3NWE2MjdiNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2FjaGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDYWNoZS5oCkBAIC01Miw3ICs1Miw3IEBA
IGNsYXNzIFN0cnVjdHVyZUNhY2hlIHsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cnVjdHVy
ZSogZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCosIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5LCBib29sIG1ha2VQb2x5UHJvdG9TdHJ1Y3R1
cmUgPSBmYWxzZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiA9IG51bGxwdHIpOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIFN0cnVjdHVyZSogZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5cGVGcm9tQmFzZVN0
cnVjdHVyZShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3RydWN0dXJlKiBlbXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRs
eShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVkIGlubGluZUNh
cGFjaXR5KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIGVtcHR5T2JqZWN0U3Ry
dWN0dXJlQ29uY3VycmVudGx5KEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVkIGlubGluZUNh
cGFjaXR5KTsKIAogcHJpdmF0ZToKICAgICBTdHJ1Y3R1cmUqIGNyZWF0ZUVtcHR5U3RydWN0dXJl
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mLCBj
b25zdCBDbGFzc0luZm8qLCBJbmRleGluZ1R5cGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5LCBi
b29sIG1ha2VQb2x5UHJvdG9TdHJ1Y3R1cmUsIEZ1bmN0aW9uRXhlY3V0YWJsZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGEyNzk4ZGQzZWI5Y2ZlNzMzNmYzNjNlZmY1
NzMyODhjYjRkYWUxZDIuLjZjMjg5NDUyNjUxYzI1ZjY2NmI1OWRiNDNjYWVmYThmMWJhMTY3ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTIxOSw3ICsyMTksNiBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVu
TG9vcCwgYm9vbCogc3VjY2VzcykKICAgICAsIGVtcHR5TGlzdChuZXcgQXJnTGlzdCkKICAgICAs
IG1hY2hpbmVDb2RlQnl0ZXNQZXJCeXRlY29kZVdvcmRGb3JCYXNlbGluZUpJVChtYWtlVW5pcXVl
PFNpbXBsZVN0YXRzPigpKQogICAgICwgc3ltYm9sSW1wbFRvU3ltYm9sTWFwKCp0aGlzKQotICAg
ICwgc3RydWN0dXJlQ2FjaGUoKnRoaXMpCiAgICAgLCBpbnRlcnByZXRlcihudWxscHRyKQogICAg
ICwgZW50cnlTY29wZShudWxscHRyKQogICAgICwgbV9yZWdFeHBDYWNoZShuZXcgUmVnRXhwQ2Fj
aGUodGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA2NjU2OGYyOWZlMGJm
ZTNmMDNlODA4ZmMxMjRmYmQ4NTJjYmM1ZGY5Li40NmU0MjcyMGNjZDk3ODk1MmYxODBkYWIwZTIx
MTRhOWQ3MjNiODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25FdmVudExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiRnVu
Y3Rpb25IYXNFeGVjdXRlZENhY2hlLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIklu
ZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkludGVncml0eS5oIgogI2luY2x1ZGUgIkludHJpbnNp
Yy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKQEAgLTQ4LDExICs0OSwxMSBAQAogI2luY2x1
ZGUgIk51bWVyaWNTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlQ2FjaGUuaCIKICNpbmNsdWRlICJTdWJz
cGFjZUFjY2Vzcy5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiVk1U
cmFwcy5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0LmgiCisjaW5jbHVkZSAiV2Vha0dDTWFwLmgi
CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvQnVtcFBvaW50ZXJBbGxvY2F0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KQEAgLTU0Nyw4ICs1NDgsNiBA
QCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3Vi
bHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGFkZFNvdXJj
ZVByb3ZpZGVyQ2FjaGUoU291cmNlUHJvdmlkZXIqKTsKICAgICB2b2lkIGNsZWFyU291cmNlUHJv
dmlkZXJDYWNoZXMoKTsKIAotICAgIFN0cnVjdHVyZUNhY2hlIHN0cnVjdHVyZUNhY2hlOwotCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTb3VyY2VQcm92aWRlcj4sIFJlZlB0cjxTb3VyY2VQ
cm92aWRlckNhY2hlPj4gU291cmNlUHJvdmlkZXJDYWNoZU1hcDsKICAgICBTb3VyY2VQcm92aWRl
ckNhY2hlTWFwIHNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CiAgICAgSW50ZXJwcmV0ZXIqIGludGVy
cHJldGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457277</attachid>
            <date>2022-04-11 12:11:57 -0700</date>
            <delta_ts>2022-04-12 18:28:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239044-20220411121156.patch</filename>
            <type>text/plain</type>
            <size>26355</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi5mM2VjMDAxZWVhNWJlNWVj
ZjNkOGEyNDExNTMzNjM1NzU2OTRhMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAyMi0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1vdmUgU3RydWN0dXJlQ2FjaGUgZnJvbSBWTSB0byBKU0dsb2Jh
bE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM5MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugc2hvdWxkIGhhdmUgU3RydWN0dXJlQ2FjaGUgcGVyIEpTR2xvYmFsT2JqZWN0IHNpbmNlIGNh
Y2hlZCBzdHJ1Y3R1cmVzIGFyZSB0aWVkIHRvIHNvbWUgb2YgSlNHbG9iYWxPYmplY3QuCisgICAg
ICAgIFRoaXMgY2FuICgxKSByZWR1Y2Ugc2l6ZSBvZiBlYWNoIFN0cnVjdHVyZUNhY2hlLCAoMikg
ZGVzdHJveSBTdHJ1Y3R1cmVDYWNoZSB0aW1lbHkgYXQgdGhlIGRlc3RydWN0aW9uIG9mCisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0LCBhbmQgKDMpIHNpbXBsaWZpZXMgSlNHbG9iYWxPYmplY3Q6Omhh
dmVBQmFkVGltZSBoYW5kbGluZy4KKworICAgICAgICAqIGJ5dGVjb2RlL0ludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcm9tQmFzZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6Ok9iamVjdEFsbG9jYXRpb25Qcm9maWxlQmFzZTxEZXJpdmVkPjo6aW5pdGlhbGl6ZVBy
b2ZpbGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0
YW50cyk6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SXRlcmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3Vu
ZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpcmVXYXRjaHBvaW50
QW5kTWFrZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQpOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aGF2ZUFCYWRUaW1lKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzdHJ1Y3R1cmVDYWNoZSk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RFbXB0eU9iamVjdCk6CisgICAgICAgIChKU0M6OmNyZWF0ZURhdGFQcm9wZXJ0eURlc2NyaXB0
b3JPYmplY3RTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpjcmVhdGVBY2Nlc3NvclByb3BlcnR5
RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9Qcm90b3R5cGVL
ZXkuaDoKKyAgICAgICAgKEpTQzo6UHJvdG90eXBlS2V5OjpQcm90b3R5cGVLZXkpOgorICAgICAg
ICAoSlNDOjpQcm90b3R5cGVLZXk6OmNsYXNzSW5mbyBjb25zdCk6CisgICAgICAgIChKU0M6OlBy
b3RvdHlwZUtleTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3RvdHlwZUtl
eTo6aGFzaCBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3RvdHlwZUtleTo6Z2xvYmFsT2JqZWN0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNhY2hlLmNwcDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2FjaGU6OmNyZWF0ZUVtcHR5U3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlQ2FjaGU6OmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVu
dGx5KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNhY2hlLmg6CisgICAgICAgICogcnVu
dGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9W
TS5oOgorCiAyMDIyLTA0LTA5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gVXNlIFZlY3RvciB3aXRoIGlubGluZSBjYXBhY2l0eSBpbiBPYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldCBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZS5oCmluZGV4IGIxNzdmZWZkMDYzNmUyMmViNTBmZmZiNjI5ZWNlNDExODE0ZTJkZGQuLjg5
MWRiMjhiNmExYmNjOTc1NDhmZWE2YzI5ZTc5NDQ3ZTZiNGJmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlLmgKQEAgLTU2LDcgKzU2LDcgQEAgaW5saW5lIFN0cnVjdHVyZSog
SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpjcmVhdGVBbGxvY2F0aW9uU3RydWN0
dXJlRnIKICAgICBpZiAocHJvdG90eXBlID09IGJhc2VTdHJ1Y3R1cmUtPnN0b3JlZFByb3RvdHlw
ZSgpKQogICAgICAgICBzdHJ1Y3R1cmUgPSBiYXNlU3RydWN0dXJlOwogICAgIGVsc2UKLSAgICAg
ICAgc3RydWN0dXJlID0gdm0uc3RydWN0dXJlQ2FjaGUuZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5
cGVGcm9tQmFzZVN0cnVjdHVyZShiYXNlR2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIGJhc2VTdHJ1
Y3R1cmUpOworICAgICAgICBzdHJ1Y3R1cmUgPSBiYXNlR2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVD
YWNoZSgpLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUoYmFzZUds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBiYXNlU3RydWN0dXJlKTsKIAogICAgIC8vIEVuc3VyZSB0
aGF0IGlmIGFub3RoZXIgdGhyZWFkIHNlZXMgdGhlIHN0cnVjdHVyZSwgaXQgd2lsbCBzZWUgaXQg
cHJvcGVybHkgY3JlYXRlZC4KICAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxl
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRp
b25Qcm9maWxlSW5saW5lcy5oCmluZGV4IDY1MDVmYWNiZmRlOWI0MjFiNDg4NjI3M2RlODdjYjBm
MTgwMzE5YzUuLmVhZDY5YmY3YzcwYjQzYjgzNTAxZjgyMzBjNmFiZTFiN2I0MDVkYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJv
ZmlsZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0
QWxsb2NhdGlvblByb2ZpbGVJbmxpbmVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVCYXNlPERlcml2ZWQ+Ojppbml0aWFsaXpl
UHJvZmlsZShWTSYgdgogICAgICAgICAgICAgaW5saW5lQ2FwYWNpdHkgPSBKU0ZpbmFsT2JqZWN0
OjptYXhJbmxpbmVDYXBhY2l0eSgpOwogICAgIH0KIAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gdm0uc3RydWN0dXJlQ2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIGlubGluZUNhcGFjaXR5LCBpc1BvbHlQcm90bywgZXhlY3V0
YWJsZSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPnN0cnVjdHVy
ZUNhY2hlKCkuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIGlubGluZUNhcGFjaXR5LCBpc1BvbHlQcm90bywgZXhlY3V0YWJsZSk7CiAKICAg
ICBpZiAoaXNQb2x5UHJvdG8pIHsKICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+aGFzUG9seVBy
b3RvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDBmNjBiOTM3ZmFkOTY1N2YwOTc1YzIwYTEw
MzFjNDZmZTJlYWEyMTQuLmFlNmM5ZmRmZmQ0M2NlNTA5YmUyNTZhMmZlZGVmZDc0NWQ5NGRkYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTMxMjcsMTAgKzMxMjcsMjUgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICB9CiAKICAgICBjYXNlIE9iamVjdENyZWF0ZTogewotICAgICAgICBp
ZiAoSlNWYWx1ZSBwcm90b3R5cGUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlKSB7
Ci0gICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsK
LSAgICAgICAgICAgIGlmIChwcm90b3R5cGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyktPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKTsKKyAgICAgICAgaWYg
KEpTVmFsdWUgYmFzZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdmFsdWUpIHsKKyAgICAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBudWxscHRyOworICAgICAgICAgICAgaWYgKGJhc2UuaXNOdWxsKCkpCisgICAgICAg
ICAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3Ry
dWN0dXJlKCk7CisgICAgICAgICAgICBlbHNlIGlmIChiYXNlLmlzT2JqZWN0KCkpIHsKKyAgICAg
ICAgICAgICAgICAvLyBIYXZpbmcgYSBiYWQgdGltZSBjbGVhcnMgdGhlIHN0cnVjdHVyZUNhY2hl
LCBhbmQgc28gaXQgc2hvdWxkIGludmFsaWRhdGUgdGhpcyBzdHJ1Y3R1cmUuCisgICAgICAgICAg
ICAgICAgYm9vbCBpc0hhdmluZ0FCYWRUaW1lID0gZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRU
aW1lKCk7CisgICAgICAgICAgICAgICAgLy8gTm9ybWFsbHksIHdlIHdvdWxkIGFsd2F5cyBpbnN0
YWxsIGEgd2F0Y2hwb2ludC4gSW4gdGhpcyBjYXNlLCBob3dldmVyLCBpZiB3ZSBoYXZlQUJhZFRp
bWUsIHdlCisgICAgICAgICAgICAgICAgLy8gc3RpbGwgd2FudCB0byBvcHRpbWl6ZS4gVGhlcmUg
aXMgbm8gd2F0Y2hwb2ludCBmb3IgdGhhdCBjYXNlIHRob3VnaCwgc28gd2UgbmVlZCB0byBtYWtl
IHN1cmUgdGhpcyBsb2FkCisgICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgZ2V0IGhvaXN0ZWQg
YWJvdmUgdGhlIGNoZWNrLgorICAgICAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwor
ICAgICAgICAgICAgICAgIGlmICghaXNIYXZpbmdBQmFkVGltZSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3QtPmhhdmluZ0FC
YWRUaW1lV2F0Y2hwb2ludCgpKTsKKyAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPnN0cnVjdHVyZUNhY2hlKCkuZW1wdHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHko
YmFzZS5nZXRPYmplY3QoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3RydWN0dXJlKSB7CisgICAgICAg
ICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAg
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKQog
ICAgICAgICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICAg
ICAgc2V0Rm9yTm9kZShub2RlLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCAyOTg1YTc2ZDZi
YTZjNWNhZDM5MjA2ZDlkNjM0NzhhM2JlYmU1Mjc4Li5kNjY5YzEwYjczYmVhNTlmODEwMzdlOGJj
YWYxMTFjYTIwNGFiMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtODQ1LDcgKzg0NSw3IEBAIGNsYXNzIENv
bnN0YW50Rm9sZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFp
c0hhdmluZ0FCYWRUaW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0
Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5oYXZpbmdBQmFkVGltZVdhdGNocG9p
bnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3Qt
PnZtKCkuc3RydWN0dXJlQ2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHkoZ2xv
YmFsT2JqZWN0LCBiYXNlLmdldE9iamVjdCgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5l
Q2FwYWNpdHkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPnN0cnVjdHVyZUNhY2hlKCkuZW1wdHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHko
YmFzZS5nZXRPYmplY3QoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkp
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICBpZiAoc3RydWN0dXJlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IDAxYmMwODZhZjg0OTgwZjg2YTA0
YmIyYWRkOWI1OGExNGRiZTYxODkuLjZhNWUyZTA3MDY5ZjJkOTQ3YzRlNDM2Njc5ZDBkMzNjNTAy
MTRjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uY3BwCkBAIC0xNjAsNyArMTYwLDggQEAgU3RydWN0dXJlKiBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMK
ICAgICAgICAgaWYgKEpTT2JqZWN0KiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0
Kj4odm0sIHByb3RvdHlwZVZhbHVlKSkgewogICAgICAgICAgICAgLy8gVGhpcyBvbmx5IGhhcHBl
bnMgaWYgc29tZW9uZSBSZWZsZWN0LmNvbnN0cnVjdHMgb3VyIGJ1aWx0aW4gY29uc3RydWN0b3Ig
d2l0aCBhbm90aGVyIGJ1aWx0aW4gY29uc3RydWN0b3IgYXMgdGhlIG5ldy50YXJnZXQuCiAgICAg
ICAgICAgICAvLyBUaHVzLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBjb3N0IG9mIGxvb2tpbmcg
dXAgdGhlIHN0cnVjdHVyZSBmcm9tIG91ciBoYXNoIHRhYmxlIGV2ZXJ5IHRpbWUuCi0gICAgICAg
ICAgICByZXR1cm4gdm0uc3RydWN0dXJlQ2FjaGUuZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5cGVG
cm9tQmFzZVN0cnVjdHVyZShwcm90b3R5cGUtPmdsb2JhbE9iamVjdCh2bSksIHByb3RvdHlwZSwg
YmFzZUNsYXNzKTsKKyAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCh2bSk7CisgICAgICAgICAgICByZXR1cm4gZ2xvYmFsT2Jq
ZWN0LT5zdHJ1Y3R1cmVDYWNoZSgpLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIGJhc2VDbGFzcyk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
dGVyYXRvck9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRl
cmF0b3JPcGVyYXRpb25zLmNwcAppbmRleCBjMzE2OWEyY2U1OTdkNzQwZmYwMmRmNzI3M2RmMmU2
ZWEwYzczMzA3Li5iMTRjYmM5NjgxOWEyMzQzMWJkZjk5YzkyYTMwYzZkNWNmYWNmNzAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JdGVyYXRvck9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9u
cy5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgY29uc3RleHByIFByb3BlcnR5T2Zmc2V0
IGRvbmVQcm9wZXJ0eU9mZnNldCA9IDE7CiAKIFN0cnVjdHVyZSogY3JlYXRlSXRlcmF0b3JSZXN1
bHRPYmplY3RTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewotICAgIFN0cnVjdHVyZSogaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUgPSB2bS5zdHJ1Y3R1cmVD
YWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVD
YXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gZ2xv
YmFsT2JqZWN0LnN0cnVjdHVyZUNhY2hlKCkuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5
cGUoJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpLCBKU0ZpbmFs
T2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zm
c2V0OwogICAgIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0
eVRyYW5zaXRpb24odm0sIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLCB2bS5wcm9wZXJ0eU5hbWVz
LT52YWx1ZSwgMCwgb2Zmc2V0KTsKICAgICBSRUxFQVNFX0FTU0VSVChvZmZzZXQgPT0gdmFsdWVQ
cm9wZXJ0eU9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmNwcAppbmRleCAxZWU4MTFlMGQ1ZjllZDM3YTNkNjkwZmVhZmE4ZTMzODJh
ZmFiYjA2Li4wODk0ODY2YTY0MjhmZjc4NWYzMjJjMDQzYTFiZmFjMDJhNzJkMjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKQEAg
LTE3OCw3ICsxNzgsNyBAQCBpbmxpbmUgU3RydWN0dXJlKiBnZXRCb3VuZEZ1bmN0aW9uU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIC8vIGN1cnJlbnRs
eS4gV2hvZXZlciB3b3JrcyBvbiBjYWNoaW5nIHN0cnVjdHVyZSBjaGFuZ2VzIGZvciBwcm90b3R5
cGUgdHJhbnNpdGlvbnMgc2hvdWxkIGNvbnNpZGVyIHRoaXMgcHJvYmxlbSBhcyB3ZWxsLgogICAg
IC8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjczOAog
ICAgIGlmIChwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBwcm90b3R5cGUuZ2V0T2JqZWN0KCktPmds
b2JhbE9iamVjdCh2bSkgPT0gZ2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJlc3VsdCA9IHZtLnN0
cnVjdHVyZUNhY2hlLmVtcHR5U3RydWN0dXJlRm9yUHJvdG90eXBlRnJvbUJhc2VTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUuZ2V0T2JqZWN0KCksIHJlc3VsdCk7CisgICAgICAgIHJl
c3VsdCA9IGdsb2JhbE9iamVjdC0+c3RydWN0dXJlQ2FjaGUoKS5lbXB0eVN0cnVjdHVyZUZvclBy
b3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLmdldE9iamVj
dCgpLCByZXN1bHQpOwogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihy
ZXN1bHQtPmdsb2JhbE9iamVjdCgpID09IGdsb2JhbE9iamVjdCk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIHJlc3VsdCA9IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgcmVzdWx0LT50eXBlSW5mbygpLCByZXN1bHQtPmNsYXNzSW5mbygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4ZjNlYjZk
NzE2NmQyOTQxNWU5Yjc3NDJiM2IwOWVkZDJlMDc0NmU2Li5mYzI4ZjQ1N2Q1Mjk0ZGIyODBiYWIz
M2QyNTExYTZmZGQ2NzVkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC02MTMsNiArNjEzLDcgQEAgSlNHbG9iYWxPYmplY3Q6
OkpTR2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEdsb2Jh
bE9iamVjdE0KICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgbnVsbHB0cikKICAgICAsIG1fdm0o
JnZtKQogICAgICwgbV9saW5rVGltZUNvbnN0YW50cyhudW1iZXJPZkxpbmtUaW1lQ29uc3RhbnRz
KQorICAgICwgbV9zdHJ1Y3R1cmVDYWNoZSh2bSkKICAgICAsIG1fbWFzcXVlcmFkZXNBc1VuZGVm
aW5lZFdhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBt
X2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludChXYXRjaHBvaW50U2V0OjpjcmVhdGUoSXNXYXRjaGVk
KSkKICAgICAsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludChXYXRjaHBvaW50U2V0OjpjcmVhdGUo
SXNXYXRjaGVkKSkKQEAgLTgyMyw3ICs4MjQsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0
KFZNJiB2bSkKICAgICAgICAgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBtYWtlU3Ry
aW5nKCJzZXQgIiwgdm0ucHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvLnN0cmluZygpKSwg
Z2xvYmFsRnVuY1Byb3RvU2V0dGVyKSk7CiAgICAgbV9vYmplY3RQcm90b3R5cGUtPnB1dERpcmVj
dE5vbkluZGV4QWNjZXNzb3JXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
dW5kZXJzY29yZVByb3RvLCBwcm90b0FjY2Vzc29yLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogICAgIG1fZnVuY3Rpb25Qcm90b3R5
cGUtPnN0cnVjdHVyZSh2bSktPnNldFByb3RvdHlwZVdpdGhvdXRUcmFuc2l0aW9uKHZtLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9vYmplY3RTdHJ1Y3R1cmVGb3JPYmplY3RDb25z
dHJ1Y3Rvci5zZXQodm0sIHRoaXMsIHZtLnN0cnVjdHVyZUNhY2hlLmVtcHR5T2JqZWN0U3RydWN0
dXJlRm9yUHJvdG90eXBlKHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBKU0ZpbmFsT2Jq
ZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSkpOworICAgIG1fb2JqZWN0U3RydWN0dXJlRm9y
T2JqZWN0Q29uc3RydWN0b3Iuc2V0KHZtLCB0aGlzLCBtX3N0cnVjdHVyZUNhY2hlLmVtcHR5T2Jq
ZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBK
U0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSkpOwogICAgIG1fb2JqZWN0UHJv
dG9WYWx1ZU9mRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBqc0Nhc3Q8SlNGdW5jdGlvbio+KG9iamVj
dFByb3RvdHlwZSgpLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlT2YpKSk7
CiAKICAgICBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuc2V0KHZtLCB0aGlzLCBHZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPcGVyYXRpb25z
U3BlY2llc0dldHRlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgbnVsbHB0cikpOwpAQCAtMTk4
OCw2ICsxOTg5LDE3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmZpcmVXYXRjaHBvaW50QW5kTWFr
ZUFsbEFycmF5U3RydWN0dXJlc1Nsb3dQdXQoVk0mIHZtKQogICAgIGlmIChpc0hhdmluZ0FCYWRU
aW1lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFRoaXMgbXVzdCBoYXBwZW4gZmlyc3Qs
IGJlY2F1c2UgdGhlIGNvbXBpbGVyIHRocmVhZCBtYXkgcmFjZSB3aXRoIGhhdmVBQmFkVGltZS4K
KyAgICAvLyBMZXQgUl9CVCwgV19CVCA8LSBSZWFkL0ZpcmUgdGhlIHdhdGNocG9pbnQsIFJfU0Ms
IFdfU0MgPC0gUmVhZC9jbGVhciB0aGUgc3RydWN0dXJlIGNhY2hlLgorICAgIC8vIFRoZSBwb3Nz
aWJsZSBpbnRlcmxlYXZpbmdzIGFyZToKKyAgICAvLyBSX0JULCBSX1NDLCBXX1NDLCBXX0JUOiBD
b21waWxlciB0aHJlYWQgaW5zdGFsbHMgYSB3YXRjaHBvaW50LCBhbmQgdGhlIGNvZGUgaXMgZGlz
Y2FyZGVkLgorICAgIC8vIFJfQlQsIFdfU0MsIFJfU0MsIFdfQlQ6IF4gU2FtZQorICAgIC8vIFJf
QlQsIFdfU0MsIFdfQlQsIFdfU0M6IF4gU2FtZQorICAgIC8vIFdfU0MsIFJfQlQsIFJfU0MsIFdf
QlQ6IF4gU2FtZQorICAgIC8vIFdfU0MsIFJfQlQsIFdfQlQsIFJfU0M6IF4gU2FtZQorICAgIC8v
IFdfU0MsIFdfQlQsIFJfQlQsIFJfU0M6IE5vIHdhdGNocG9pbnQgaXMgaW5zdGFsbGVkLCBidXQg
d2UgY291bGQgbm90IHNlZSBvbGQgc3RydWN0dXJlcyBmcm9tIHRoZSBjYWNoZS4KKyAgICBtX3N0
cnVjdHVyZUNhY2hlLmNsZWFyKCk7IC8vIFdlIG1heSBiZSBjYWNoaW5nIGFycmF5IHN0cnVjdHVy
ZXMgaW4gaGVyZS4KKwogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGFsbCBKU0FycmF5IGFsbG9jYXRp
b25zIHRoYXQgbG9hZCB0aGUgYXBwcm9wcmlhdGUgc3RydWN0dXJlIGZyb20KICAgICAvLyB0aGlz
IG9iamVjdCBub3cgbG9hZCBhIHN0cnVjdHVyZSB0aGF0IHVzZXMgU2xvd1B1dC4KICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgTnVtYmVyT2ZBcnJheUluZGV4aW5nTW9kZXM7ICsraSkKQEAg
LTIwMjIsMTcgKzIwMzQsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRpbWUoVk0m
IHZtKQogICAgIGlmIChpc0hhdmluZ0FCYWRUaW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIFRoaXMgbXVzdCBoYXBwZW4gZmlyc3QsIGJlY2F1c2UgdGhlIGNvbXBpbGVyIHRocmVhZCBt
YXkgcmFjZSB3aXRoIGhhdmVBQmFkVGltZS4KLSAgICAvLyBMZXQgUl9CVCwgV19CVCA8LSBSZWFk
L0ZpcmUgdGhlIHdhdGNocG9pbnQsIFJfU0MsIFdfU0MgPC0gUmVhZC9jbGVhciB0aGUgc3RydWN0
dXJlIGNhY2hlLgotICAgIC8vIFRoZSBwb3NzaWJsZSBpbnRlcmxlYXZpbmdzIGFyZToKLSAgICAv
LyBSX0JULCBSX1NDLCBXX1NDLCBXX0JUOiBDb21waWxlciB0aHJlYWQgaW5zdGFsbHMgYSB3YXRj
aHBvaW50LCBhbmQgdGhlIGNvZGUgaXMgZGlzY2FyZGVkLgotICAgIC8vIFJfQlQsIFdfU0MsIFJf
U0MsIFdfQlQ6IF4gU2FtZQotICAgIC8vIFJfQlQsIFdfU0MsIFdfQlQsIFdfU0M6IF4gU2FtZQot
ICAgIC8vIFdfU0MsIFJfQlQsIFJfU0MsIFdfQlQ6IF4gU2FtZQotICAgIC8vIFdfU0MsIFJfQlQs
IFdfQlQsIFJfU0M6IF4gU2FtZQotICAgIC8vIFdfU0MsIFdfQlQsIFJfQlQsIFJfU0M6IE5vIHdh
dGNocG9pbnQgaXMgaW5zdGFsbGVkLCBidXQgd2UgY291bGQgbm90IHNlZSBvbGQgc3RydWN0dXJl
cyBmcm9tIHRoZSBjYWNoZS4KLSAgICB2bS5zdHJ1Y3R1cmVDYWNoZS5jbGVhcigpOyAvLyBXZSBt
YXkgYmUgY2FjaGluZyBhcnJheSBzdHJ1Y3R1cmVzIGluIGhlcmUuCi0KICAgICBEZWZlckdDIGRl
ZmVyR0Modm0pOwogCiAgICAgLy8gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBvYmplY3RzIGFuZCBw
cm90b3R5cGUgY2hhaW5zOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKaW5kZXggZmJlMmEyMWRjMDc1OTE2NmRkNWMwZTMwM2RkNjhjZWNhODllMDVk
OC4uYjMyMjk0NzNhOTg4YzFmOGRlYWE1ZWJiNTY1Mzg5NzE3MmQyMGFhNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC00Miw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiUmVnRXhwR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVGbGFn
cy5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUNh
Y2hlLmgiCiAjaW5jbHVkZSAiU3ltYm9sUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNp
bmNsdWRlICJXYXRjaHBvaW50LmgiCkBAIC00OTEsNiArNDkyLDggQEAgY2xhc3MgSlNHbG9iYWxP
YmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAKICAgICBGaXhlZFZl
Y3RvcjxMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIEpTQ2VsbD4+IG1fbGlua1RpbWVDb25z
dGFudHM7CiAKKyAgICBTdHJ1Y3R1cmVDYWNoZSBtX3N0cnVjdHVyZUNhY2hlOworCiAgICAgU3Ry
aW5nIG1fbmFtZTsKIAogICAgIFN0cm9uZzxKU09iamVjdD4gbV91bmhhbmRsZWRSZWplY3Rpb25D
YWxsYmFjazsKQEAgLTk0NCw2ICs5NDcsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1Ymxp
YyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICB2b2lkIHNldE5hbWUoY29uc3QgU3Ry
aW5nJik7CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9
CiAKKyAgICBTdHJ1Y3R1cmVDYWNoZSYgc3RydWN0dXJlQ2FjaGUoKSB7IHJldHVybiBtX3N0cnVj
dHVyZUNhY2hlOyB9CisKICAgICB2b2lkIHNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKFZN
JiB2bSwgSlNPYmplY3QqIGZ1bmN0aW9uKSB7IG1fdW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2su
c2V0KHZtLCBmdW5jdGlvbik7IH0KICAgICBKU09iamVjdCogdW5oYW5kbGVkUmVqZWN0aW9uQ2Fs
bGJhY2soKSBjb25zdCB7IHJldHVybiBtX3VuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrLmdldCgp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5oCmluZGV4IGZlMzdkNmM1NWU4MzU2MmRiNGIwNzEyODhjMWQyODg4YjcwYjAwZGQuLmJi
MDk1MDRhZjhjYWI5YTIyMDc0Y2IxODJlOGFlZWU1MjU2NGY1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtNjcsOCArNjcs
NyBAQCBpbmxpbmUgSlNGaW5hbE9iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIGlubGluZSBKU0ZpbmFsT2JqZWN0KiBjb25zdHJ1Y3RFbXB0
eU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogcHJvdG90eXBl
LCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxP
YmplY3QpOwotICAgIFN0cnVjdHVyZUNhY2hlJiBzdHJ1Y3R1cmVDYWNoZSA9IHZtLnN0cnVjdHVy
ZUNhY2hlOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlQ2FjaGUuZW1wdHlP
YmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIGlubGlu
ZUNhcGFjaXR5KTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+c3Ry
dWN0dXJlQ2FjaGUoKS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZShnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgaW5saW5lQ2FwYWNpdHkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0
eU9iamVjdCh2bSwgc3RydWN0dXJlKTsKIH0KIApAQCAtMTAzLDcgKzEwMiw3IEBAIHN0YXRpYyBj
b25zdGV4cHIgUHJvcGVydHlPZmZzZXQgYWNjZXNzb3JQcm9wZXJ0eURlc2NyaXB0b3JDb25maWd1
cmFibGVQcm9wZXJ0eU9mCiAKIGlubGluZSBTdHJ1Y3R1cmUqIGNyZWF0ZURhdGFQcm9wZXJ0eURl
c2NyaXB0b3JPYmplY3RTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0KQogewotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdm0uc3RydWN0dXJlQ2FjaGUuZW1w
dHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUoJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
Lm9iamVjdFByb3RvdHlwZSgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHko
KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3Quc3RydWN0dXJlQ2Fj
aGUoKS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVD
YXBhY2l0eSgpKTsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7CiAgICAgc3RydWN0dXJlID0g
U3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSwgdm0ucHJvcGVy
dHlOYW1lcy0+dmFsdWUsIDAsIG9mZnNldCk7CiAgICAgUkVMRUFTRV9BU1NFUlQob2Zmc2V0ID09
IGRhdGFQcm9wZXJ0eURlc2NyaXB0b3JWYWx1ZVByb3BlcnR5T2Zmc2V0KTsKQEAgLTExOCw3ICsx
MTcsNyBAQCBpbmxpbmUgU3RydWN0dXJlKiBjcmVhdGVEYXRhUHJvcGVydHlEZXNjcmlwdG9yT2Jq
ZWN0U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYgogCiBpbmxpbmUgU3RydWN0dXJlKiBjcmVh
dGVBY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2
bS5zdHJ1Y3R1cmVDYWNoZS5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZSgmZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIEpTRmluYWxPYmplY3Q6OmRl
ZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2Jh
bE9iamVjdC5zdHJ1Y3R1cmVDYWNoZSgpLmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBl
KCZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSwgSlNGaW5hbE9i
amVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpOwogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dDsKICAgICBzdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwg
c3RydWN0dXJlLCB2bS5wcm9wZXJ0eU5hbWVzLT5nZXQsIDAsIG9mZnNldCk7CiAgICAgUkVMRUFT
RV9BU1NFUlQob2Zmc2V0ID09IGFjY2Vzc29yUHJvcGVydHlEZXNjcmlwdG9yR2V0UHJvcGVydHlP
ZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90
eXBlS2V5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVLZXkuaApp
bmRleCBhN2Y5NDcwZjE5NDJhOTk1ZmM0OTFjYTQyN2QxYTMwOWFkZjg1YjJhLi42ZDMwOTEzYjIw
Y2JkNzRiN2Q0ZTdmYjk5OWVmYzQ1NjIwZDRmZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVLZXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm90b3R5cGVLZXkuaApAQCAtMzAsMTkgKzMwLDE3IEBACiBuYW1lc3BhY2Ug
SlNDIHsKIAogY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgSlNHbG9iYWxPYmplY3Q7
CiBjbGFzcyBKU09iamVjdDsKIAogY2xhc3MgUHJvdG90eXBlS2V5IHsKIHB1YmxpYzoKICAgICBQ
cm90b3R5cGVLZXkoKSB7IH0KICAgICAKLSAgICBQcm90b3R5cGVLZXkoSlNPYmplY3QqIHByb3Rv
dHlwZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCB1bnNpZ25lZCBpbmxpbmVDYXBh
Y2l0eSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCisgICAgUHJvdG90eXBlS2V5KEpTT2JqZWN0KiBwcm90b3R5cGUsIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHksIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvKQogICAgICAgICA6IG1fcHJvdG90eXBlKHByb3RvdHlwZSkKICAgICAg
ICAgLCBtX2V4ZWN1dGFibGUoZXhlY3V0YWJsZSkKICAgICAgICAgLCBtX2lubGluZUNhcGFjaXR5
KGlubGluZUNhcGFjaXR5KQogICAgICAgICAsIG1fY2xhc3NJbmZvKGNsYXNzSW5mbykKLSAgICAg
ICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiAgICAgewogICAgIH0KICAgICAKQEAg
LTU1LDE1ICs1MywxMyBAQCBjbGFzcyBQcm90b3R5cGVLZXkgewogICAgIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhlY3V0YWJsZTsgfQogICAgIHVu
c2lnbmVkIGlubGluZUNhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDYXBhY2l0eTsg
fQogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFz
c0luZm87IH0KLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9nbG9iYWxPYmplY3Q7IH0KICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUHJv
dG90eXBlS2V5JiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3Byb3RvdHlw
ZSA9PSBvdGhlci5tX3Byb3RvdHlwZQogICAgICAgICAgICAgJiYgbV9leGVjdXRhYmxlID09IG90
aGVyLm1fZXhlY3V0YWJsZQogICAgICAgICAgICAgJiYgbV9pbmxpbmVDYXBhY2l0eSA9PSBvdGhl
ci5tX2lubGluZUNhcGFjaXR5Ci0gICAgICAgICAgICAmJiBtX2NsYXNzSW5mbyA9PSBvdGhlci5t
X2NsYXNzSW5mbwotICAgICAgICAgICAgJiYgbV9nbG9iYWxPYmplY3QgPT0gb3RoZXIubV9nbG9i
YWxPYmplY3Q7CisgICAgICAgICAgICAmJiBtX2NsYXNzSW5mbyA9PSBvdGhlci5tX2NsYXNzSW5m
bzsKICAgICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFByb3RvdHlwZUtleSYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CkBAIC03Miw3ICs2OCw3
IEBAIGNsYXNzIFByb3RvdHlwZUtleSB7CiAgICAgCiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0
CiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjpJbnRIYXNoPHVpbnRwdHJfdD46Omhhc2goYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9wcm90b3R5cGUpIF4gYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4obV9leGVjdXRhYmxlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1fY2xhc3NJbmZvKSBe
IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1fZ2xvYmFsT2JqZWN0KSkgKyBtX2lubGluZUNhcGFj
aXR5OworICAgICAgICByZXR1cm4gV1RGOjpJbnRIYXNoPHVpbnRwdHJfdD46Omhhc2goYml0d2lz
ZV9jYXN0PHVpbnRwdHJfdD4obV9wcm90b3R5cGUpIF4gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
bV9leGVjdXRhYmxlKSBeIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG1fY2xhc3NJbmZvKSkgKyBt
X2lubGluZUNhcGFjaXR5OwogICAgIH0KICAgICAKIHByaXZhdGU6CkBAIC04Miw3ICs3OCw2IEBA
IGNsYXNzIFByb3RvdHlwZUtleSB7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBtX2V4ZWN1dGFi
bGUgeyBudWxscHRyIH07IAogICAgIHVuc2lnbmVkIG1faW5saW5lQ2FwYWNpdHkgeyAwIH07CiAg
ICAgY29uc3QgQ2xhc3NJbmZvKiBtX2NsYXNzSW5mbyB7IG51bGxwdHIgfTsKLSAgICBKU0dsb2Jh
bE9iamVjdCogbV9nbG9iYWxPYmplY3QgeyBudWxscHRyIH07CiB9OwogCiBzdHJ1Y3QgUHJvdG90
eXBlS2V5SGFzaCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVDYWNoZS5jcHAKaW5kZXggY2RlYzJlNGFjMDI5YjJlZjZiNWYwMzA3MzJlNDE0YWRkYTgzMmUz
NS4uMTNmOWQwYzVlNWFlZGFjZjFlNTdiY2M3ZDZjNTY0NTJhZjU4ZmU0NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNhY2hlLmNwcApAQCAtNDIsNyAr
NDIsOCBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVDYWNoZTo6Y3JlYXRlRW1wdHlTdHJ1
Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIFJFTEVBU0VfQVNTRVJUKCEhcHJv
dG90eXBlKTsgLy8gV2UgdXNlIG51bGxwdHIgaW5zaWRlIHRoZSBIYXNoTWFwIGZvciBwcm90b3R5
cGUgdG8gbWVhbiBwb2x5IHByb3RvLCBzbyB1c2VyJ3Mgb2YgdGhpcyBBUEkgbXVzdCBwcm92aWRl
IG5vbi1udWxsIHByb3RvdHlwZXMuCiAKICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGxvY2sgaGVy
ZSBiZWNhdXNlIG9ubHkgdGhlIG1haW4gdGhyZWFkIGNhbiBnZXQgaGVyZSwgYW5kIG9ubHkgdGhl
IG1haW4gdGhyZWFkIGNhbiBtdXRhdGUgdGhlIGNhY2hlCi0gICAgUHJvdG90eXBlS2V5IGtleSB7
IG1ha2VQb2x5UHJvdG9TdHJ1Y3R1cmUgPyBudWxscHRyIDogcHJvdG90eXBlLCBleGVjdXRhYmxl
LCBpbmxpbmVDYXBhY2l0eSwgY2xhc3NJbmZvLCBnbG9iYWxPYmplY3QgfTsKKyAgICBBU1NFUlQo
IWlzQ29tcGlsYXRpb25UaHJlYWQoKSAmJiAhVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOworICAg
IFByb3RvdHlwZUtleSBrZXkgeyBtYWtlUG9seVByb3RvU3RydWN0dXJlID8gbnVsbHB0ciA6IHBy
b3RvdHlwZSwgZXhlY3V0YWJsZSwgaW5saW5lQ2FwYWNpdHksIGNsYXNzSW5mbyB9OwogICAgIGlm
IChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG1fc3RydWN0dXJlcy5nZXQoa2V5KSkgewogICAgICAg
ICBpZiAobWFrZVBvbHlQcm90b1N0cnVjdHVyZSkgewogICAgICAgICAgICAgcHJvdG90eXBlLT5k
aWRCZWNvbWVQcm90b3R5cGUoKTsKQEAgLTY5LDExICs3MCwxMSBAQCBpbmxpbmUgU3RydWN0dXJl
KiBTdHJ1Y3R1cmVDYWNoZTo6Y3JlYXRlRW1wdHlTdHJ1Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iagogICAgIHJldHVybiBzdHJ1Y3R1cmU7CiB9CiAKLVN0cnVjdHVyZSogU3RydWN0dXJl
Q2FjaGU6OmVtcHR5T2JqZWN0U3RydWN0dXJlQ29uY3VycmVudGx5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5
KQorU3RydWN0dXJlKiBTdHJ1Y3R1cmVDYWNoZTo6ZW1wdHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJy
ZW50bHkoSlNPYmplY3QqIHByb3RvdHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCiB7CiAg
ICAgUkVMRUFTRV9BU1NFUlQoISFwcm90b3R5cGUpOyAvLyBXZSB1c2UgbnVsbHB0ciBpbnNpZGUg
dGhlIEhhc2hNYXAgZm9yIHByb3RvdHlwZSB0byBtZWFuIHBvbHkgcHJvdG8sIHNvIHVzZXIncyBv
ZiB0aGlzIEFQSSBtdXN0IHByb3ZpZGUgbm9uLW51bGwgcHJvdG90eXBlcy4KICAgICAKLSAgICBQ
cm90b3R5cGVLZXkga2V5IHsgcHJvdG90eXBlLCBudWxscHRyLCBpbmxpbmVDYXBhY2l0eSwgSlNG
aW5hbE9iamVjdDo6aW5mbygpLCBnbG9iYWxPYmplY3QgfTsKKyAgICBQcm90b3R5cGVLZXkga2V5
IHsgcHJvdG90eXBlLCBudWxscHRyLCBpbmxpbmVDYXBhY2l0eSwgSlNGaW5hbE9iamVjdDo6aW5m
bygpIH07CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IG1fc3RydWN0dXJlcy5nZXQoa2V5KSkgewogICAgICAgICBBU1NFUlQocHJv
dG90eXBlLT5tYXlCZVByb3RvdHlwZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVDYWNoZS5oCmluZGV4IDFiNzdhZjllZjk4OGQ5M2YwYzQyOWRiZDdjMjNl
ZmQwNjNkZGNiNDAuLmUyNzNmMDY1YThjMjczMmYyMGI5NzdmMTM5OGQ3MWFiNzVhNjI3YjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNhY2hlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2FjaGUuaApAQCAt
NTIsNyArNTIsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVDYWNoZSB7CiAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdHJ1Y3R1cmUqIGVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSwgYm9vbCBtYWtlUG9s
eVByb3RvU3RydWN0dXJlID0gZmFsc2UsIEZ1bmN0aW9uRXhlY3V0YWJsZSogPSBudWxscHRyKTsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIGVtcHR5U3RydWN0dXJlRm9yUHJvdG90
eXBlRnJvbUJhc2VTdHJ1Y3R1cmUoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVy
ZSopOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cnVjdHVyZSogZW1wdHlPYmplY3RTdHJ1Y3R1
cmVDb25jdXJyZW50bHkoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogcHJvdG90eXBlLCB1bnNp
Z25lZCBpbmxpbmVDYXBhY2l0eSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RydWN0dXJlKiBl
bXB0eU9iamVjdFN0cnVjdHVyZUNvbmN1cnJlbnRseShKU09iamVjdCogcHJvdG90eXBlLCB1bnNp
Z25lZCBpbmxpbmVDYXBhY2l0eSk7CiAKIHByaXZhdGU6CiAgICAgU3RydWN0dXJlKiBjcmVhdGVF
bXB0eVN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvJiwgY29uc3QgQ2xhc3NJbmZvKiwgSW5kZXhpbmdUeXBlLCB1bnNpZ25lZCBpbmxp
bmVDYXBhY2l0eSwgYm9vbCBtYWtlUG9seVByb3RvU3RydWN0dXJlLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBhMjc5OGRkM2ViOWNm
ZTczMzZmMzYzZWZmNTczMjg4Y2I0ZGFlMWQyLi42YzI4OTQ1MjY1MWMyNWY2NjZiNTlkYjQzY2Fl
ZmE4ZjFiYTE2N2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0yMTks
NyArMjE5LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlLCBXVEY6
OlJ1bkxvb3AqIHJ1bkxvb3AsIGJvb2wqIHN1Y2Nlc3MpCiAgICAgLCBlbXB0eUxpc3QobmV3IEFy
Z0xpc3QpCiAgICAgLCBtYWNoaW5lQ29kZUJ5dGVzUGVyQnl0ZWNvZGVXb3JkRm9yQmFzZWxpbmVK
SVQobWFrZVVuaXF1ZTxTaW1wbGVTdGF0cz4oKSkKICAgICAsIHN5bWJvbEltcGxUb1N5bWJvbE1h
cCgqdGhpcykKLSAgICAsIHN0cnVjdHVyZUNhY2hlKCp0aGlzKQogICAgICwgaW50ZXJwcmV0ZXIo
bnVsbHB0cikKICAgICAsIGVudHJ5U2NvcGUobnVsbHB0cikKICAgICAsIG1fcmVnRXhwQ2FjaGUo
bmV3IFJlZ0V4cENhY2hlKHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXgg
NjY1NjhmMjlmZTBiZmUzZjAzZTgwOGZjMTI0ZmJkODUyY2JjNWRmOS4uNDZlNDI3MjBjY2Q5Nzg5
NTJmMTgwZGFiMGUyMTE0YTlkNzIzYjg4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5oIgog
I2luY2x1ZGUgIkZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIgogI2luY2x1ZGUgIkhlYXAuaCIK
KyNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJJbnRlZ3JpdHkuaCIKICNpbmNs
dWRlICJJbnRyaW5zaWMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCkBAIC00OCwxMSArNDks
MTEgQEAKICNpbmNsdWRlICJOdW1lcmljU3RyaW5ncy5oIgogI2luY2x1ZGUgIlNtYWxsU3RyaW5n
cy5oIgogI2luY2x1ZGUgIlN0cm9uZy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZUNhY2hlLmgiCiAj
aW5jbHVkZSAiU3Vic3BhY2VBY2Nlc3MuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgog
I2luY2x1ZGUgIlZNVHJhcHMuaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dC5oIgorI2luY2x1ZGUg
IldlYWtHQ01hcC5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL0J1bXBQb2lu
dGVyQWxsb2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CkBAIC01
NDcsOCArNTQ4LDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+
LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBTb3VyY2VQcm92aWRlckNh
Y2hlKiBhZGRTb3VyY2VQcm92aWRlckNhY2hlKFNvdXJjZVByb3ZpZGVyKik7CiAgICAgdm9pZCBj
bGVhclNvdXJjZVByb3ZpZGVyQ2FjaGVzKCk7CiAKLSAgICBTdHJ1Y3R1cmVDYWNoZSBzdHJ1Y3R1
cmVDYWNoZTsKLQogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U291cmNlUHJvdmlkZXI+LCBS
ZWZQdHI8U291cmNlUHJvdmlkZXJDYWNoZT4+IFNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CiAgICAg
U291cmNlUHJvdmlkZXJDYWNoZU1hcCBzb3VyY2VQcm92aWRlckNhY2hlTWFwOwogICAgIEludGVy
cHJldGVyKiBpbnRlcnByZXRlcjsK
</data>
<flag name="review"
          id="485834"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>