<?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>129391</bug_id>
          
          <creation_ts>2014-02-26 14:09:19 -0800</creation_ts>
          <short_desc>Web Replay: capture and replay ResourceLoader callbacks</short_desc>
          <delta_ts>2017-07-10 13:59:27 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129388</dependson>
    
    <dependson>129389</dependson>
    
    <dependson>130632</dependson>
    
    <dependson>130728</dependson>
    
    <dependson>130865</dependson>
          <blocked>136290</blocked>
    
    <blocked>131318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>beidson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984898</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-26 14:09:19 -0800</bug_when>
    <thetext>This is the main bug for replaying network traffic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993818</commentid>
    <comment_count>1</comment_count>
      <attachid>227649</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-24 08:48:01 -0700</bug_when>
    <thetext>Created attachment 227649
wip.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994280</commentid>
    <comment_count>2</comment_count>
      <attachid>227649</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-03-25 12:19:32 -0700</bug_when>
    <thetext>Comment on attachment 227649
wip.1

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

&gt; Source/WebCore/loader/ResourceLoader.h:47
&gt; +namespace JSC {
&gt; +class InputCursor;
&gt; +}

#ifdef ENABLE(WEB_REPLAY) too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995762</commentid>
    <comment_count>3</comment_count>
      <attachid>228152</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-03-30 22:59:28 -0700</bug_when>
    <thetext>Created attachment 228152
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995765</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-03-30 23:01:40 -0700</bug_when>
    <thetext>Uploaded a new patch rebased on top of fixes for 130728, 130865.

Brady, I would appreciate it if you could look at this patch plus the one in 130865 to see how they work together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115044</commentid>
    <comment_count>5</comment_count>
      <attachid>228152</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-08-05 10:28:19 -0700</bug_when>
    <thetext>Comment on attachment 228152
the patch

How does this interact with the app cache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115048</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-05 10:33:31 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 228152 [details]
&gt; the patch
&gt; 
&gt; How does this interact with the app cache?

Good question! I don&apos;t think this patch considers app cache behavior. I&apos;ll have to look into it.

This patch series is at least 6 months behind, so I am clearing r? flags for the time being.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327140</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-10 13:59:27 -0700</bug_when>
    <thetext>Closing web replay-related bugs until we resume working on the feature again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227649</attachid>
            <date>2014-03-24 08:48:01 -0700</date>
            <delta_ts>2014-03-30 22:59:25 -0700</delta_ts>
            <desc>wip.1</desc>
            <filename>bug-129391-20140324084740.patch</filename>
            <type>text/plain</type>
            <size>49317</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MWNlOTJlNDVlMjRlNjlkNjBkNzNjOTlkNzRkNDhmMDdkZmQ2YTk5Li43M2Y0Njk5OTYxZGZlOWRi
ZDg2Yjc5ODg4YjY3ZGVkYWU2NzQzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNC0wMy0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgUmVwbGF5OiBjYXB0dXJlIGFuZCByZXBsYXkgUmVzb3VyY2VMb2FkZXIgY2Fs
bGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjkzOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHVuc2lnbmVkIGxvbmcgdmFsdWVz
LCB3aGljaCBoYXZlCisgICAgICAgIGEgZGlzdGluY3QgdHlwZSBmcm9tIHVpbnQzMl90IGFuZCB1
aW50NjRfdC4KKworICAgICAgICAqIHJlcGxheS9FbmNvZGVkVmFsdWUuY3BwOgorICAgICAgICAo
SlNDOjpFbmNvZGVkVmFsdWU6OmNvbnZlcnRUbzx1aW50NjRfdD4pOgorICAgICAgICAoSlNDOjps
b25nPik6CisgICAgICAgICogcmVwbGF5L0VuY29kZWRWYWx1ZS5oOgorCiAyMDE0LTAzLTIyICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRq
dXN0IHNpemVzIGZvciBBUk02NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2M3MDc3N2QxOWJhNDM3ZWQ2NzJi
OWUwMWM5YjdkNWNjOTY4MTVlLi4xYWUzNjA0OTYxYzJlM2JkMDYzN2U0YTMxMGQwMTk3OWYwYWU0
NGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTQtMDMtMjMgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIFJlcGxheTogY2FwdHVyZSBhbmQgcmVw
bGF5IFJlc291cmNlTG9hZGVyIGNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MzkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgT3VyIGFwcHJvYWNoIHRvIGVuc3VyaW5nIGRldGVybWluaXN0
aWMgcGFnZSBsb2FkaW5nIGlzIHRvIGNhcHR1cmUgcmVzb3VyY2UgbG9hZGVyCisgICAgICAgIGNh
bGxiYWNrcyBkdXJpbmcgY2FwdHVyaW5nLCBhbmQgdGhlbiBtYW51YWxseSBpbnZva2UgbG9hZGVy
IGNhbGxiYWNrcyBkdXJpbmcgcmVwbGF5CisgICAgICAgIGluIGxpZXUgb2YgdXNpbmcgdGhlIHJl
c291cmNlIGxvYWRlciBzY2hlZHVsZXIuCisKKyAgICAgICAgQ2FsbGJhY2tzIGFyZSB0YXBwZWQg
aW5zaWRlIFN1YnJlc291cmNlTG9hZGVyIGJlZm9yZSBkb2luZyBtb3JlIHdvcmsgaW5zaWRlIFdl
YkNvcmUuCisgICAgICAgIFdoZW4gcmVwbGF5aW5nLCB3ZSBhbGxvdyBsb2FkZXJzIHRvIGJlIGlu
aXRpYWxpemVkLCBidXQgbmV2ZXIgYWN0dWFsbHkgc2NoZWR1bGUgdGhlbS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6ZmluZExvYWRlckZvcklkZW50aWZpZXIpOiBBZGRlZC4gVGhpcyBtZXRob2QgaXMg
dXNlZCBkdXJpbmcKKyAgICAgICAgcGxheWJhY2sgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgcmVz
b3VyY2UgbG9hZGVyIHRvIGRpc3BhdGNoIGEgY2FsbGJhY2sgdG8uCisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmg6CisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQ
ZW5kaW5nUmVxdWVzdHMpOiBJZiByZXBsYXlpbmcsIGRvbid0IGFjdHVhbGx5CisgICAgICAgIHNj
aGVkdWxlIHRoZSByZXNvdXJjZSBsb2FkZXIuIEhvd2V2ZXIsIHdlIHN0aWxsIHdhbnQgdG8gZGVx
dWV1ZSBpdCBmcm9tIHBlbmRpbmcKKyAgICAgICAgcmVxdWVzdHMgYW5kIGFsbG93IGl0IHRvIGNv
dW50IHRvd2FyZHMgcmVzb3VyY2UgbG9hZGluZyBtZXRyaWNzLgorCisgICAgICAgICogbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjph
Y3RpdmVJbnB1dEN1cnNvcik6IEFkZGVkLiBUaGlzIG1ldGhvZCBmaWd1cmVzIG91dCB3aGljaAor
ICAgICAgICBpbnB1dCBjdXJzb3Igc2hvdWxkIGJlIGNvbnNpZGVyZWQgImFjdGl2ZSIgZm9yIHRo
aXMgcmVzb3VyY2UgbG9hZGVyLiBJdCB3aWxsIHRyeSB0byB1c2UKKyAgICAgICAgdGhlIGlucHV0
IGN1cnNvciBmb3IgdGhlIGRvY3VtZW50LCBvciB0aGUgcGFnZSdzIGN1cnNvciBpZiB0aGUgcmVz
b3VyY2UgaXMgcGFydCBvZiBhCisgICAgICAgIHByb3Zpc2lvbmFsIGRvY3VtZW50IGxvYWQuCisK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuY3BwOiBBZGQgaW5zdHJ1bWVudGF0aW9uIGhvb2tzIHRoYXQgY3JlYXRl
IGlucHV0cyBmb3IKKyAgICAgICAgZWFjaCByZXNvdXJjZSBsb2FkZXIgY2FsbGJhY2sgd2hlbiBj
YXB0dXJpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRTZW5k
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YU9yQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRG
YWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3JCYXNlOjpvd25lZENvcHkpOiBBZGRlZCBo
ZWxwZXIgbWV0aG9kLiBJdCBkb2VzIG5vdCBuZWVkIHRvIGNvcHkKKyAgICAgICAgcGxhdGZvcm0g
ZGF0YSB1bmxlc3MgaXQgKGluZGlyZWN0bHkpIGFmZmVjdHMgdGhlIHdlYiBwYWdlJ3MgZGV0ZXJt
aW5pc3RpYyBleGVjdXRpb24uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVy
cm9yQmFzZS5oOgorCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2Rz
LmNwcDogQWRkIGRpc3BhdGNoIG1ldGhvZHMgZm9yIHRoZSBtb3N0IGltcG9ydGFudAorICAgICAg
ICByZXNvdXJjZSBsb2FkZXIgY2FsbGJhY2tzLiBNb3JlIGNvdWxkIGJlIHN1cHBvcnRlZCwgYnV0
IHRoZXNlIGNvdmVyIG1vc3QgY2FzZXMuCisgICAgICAgIChXZWJDb3JlOjpnZXRSZXNvdXJjZUxv
YWRlcik6IEFkZGVkIGhlbHBlciBtZXRob2QgdG8gZGlnIG91dCBhIHJlc291cmNlIGxvYWRlciBm
cm9tCisgICAgICAgIGEgZnJhbWUncyBkb2N1bWVudCBsb2FkZXIgZ2l2ZW4gYSBmcmFtZSBpbmRl
eCBhbmQgcmVzb3VyY2UgaWRlbnRpZmllci4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyRGlkRmFpbDo6ZGlzcGF0Y2gpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyRGlkRmluaXNoTG9hZGluZzo6ZGlzcGF0Y2gpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyRGlkUmVjZWl2ZURhdGE6OmRpc3BhdGNoKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlckRpZFJlY2VpdmVSZXNwb25zZTo6ZGlzcGF0Y2gp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyRGlkU2VuZERhdGE6OmRp
c3BhdGNoKTogQWRkZWQuCisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNw
cDogQWRkIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZQor
ICAgICAgICBmcmFtZXMgYW5kIGRvY3VtZW50cy4gQWRkIG1hbnkgZW5jb2RlL2RlY29kZSBtZXRo
b2RzIGZvciByZXNvdXJjZSBsb2FkZXIgY2FsbGJhY2sgaW5wdXRzLgorICAgICAgICBSZWFycmFu
Z2Ugc29tZSBvZiB0aGUgc2hvcnRlbmluZyBtYWNyb3Mgc28gdGhhdCBsZXNzIGNvZGUgaXMgZHVw
bGljYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lSW5kZXhGcm9tRG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpk
b2N1bWVudEZyb21GcmFtZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRnJvbUZyYW1l
SW5kZXgpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxIVFRQSGVhZGVyTWFwPjo6ZW5j
b2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxIVFRQSGVhZGVyTWFwPjo6
ZGVjb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlz
dGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0
czxLZXlwcmVzc0NvbW1hbmQ+OjplbmNvZGVWYWx1ZSk6CisgICAgICAgIChKU0M6OkVuY29kaW5n
VHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpT
Qzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1Nb3VzZUV2ZW50Pjo6ZW5jb2RlVmFsdWUpOgorICAg
ICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlVmFsdWUpOgor
ICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlVmFsdWUp
OgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUxvYWRUaW1pbmc+OjplbmNv
ZGVWYWx1ZSk6CisgICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPFJlc291cmNlTG9hZFRpbWlu
Zz46OmRlY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UmVzb3VyY2VS
ZXNwb25zZT46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UmVz
b3VyY2VSZXNwb25zZT46OmRlY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFp
dHM8U2hhcmVkQnVmZmVyPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1Ry
YWl0czxTaGFyZWRCdWZmZXI+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgICogcmVwbGF5L1Nlcmlh
bGl6YXRpb25NZXRob2RzLmg6CisgICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAy
MDE0LTAzLTIxICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBS
ZXBsYXk6IHJlc291cmNlIHVuaXF1ZSBpZGVudGlmaWVycyBzaG91bGQgYmUgdW5pcXVlLXBlci1m
cmFtZSwgbm90IGdsb2JhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDNjOTUxMDE2MTZkYmU3YTg0NTExNjdm
NTY2ZWFkYTY0OWU2MWVhNi4uZDQ3NzE3NTRiNjMxNmJkZDM5MDAxMTdlYzZlNTRjOTEwYzVlODZl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAzLTIzICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IGNhcHR1cmUgYW5kIHJlcGxh
eSBSZXNvdXJjZUxvYWRlciBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTM5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIER1cmluZyBwbGF5YmFjaywgZG9uJ3Qgc2NoZWR1bGUgcmVzb3Vy
Y2UgbG9hZGVycy4gVGhpcyBwcmV2ZW50cyB0aGUgTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgZnJv
bSB0YWtpbmcgb3ZlciBhbmQgZnVsZmlsbGluZyB0aGUgbG9hZHMgbm9uZGV0ZXJtaW5pc3RpY2Fs
bHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hl
ZHVsZUxvYWQpOgorCiAyMDE0LTAzLTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwICNpbmNsdWRlcyBieSBnZW9tZXRyeSBjbGFzc2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5jcHAKaW5kZXgg
NGM4MGJkMmU4NTM1YWU4MTA1NGJjMzE4YzVmMmZhNTM2ZjAyOTE0OC4uMDE5MWQ0MTQ4ZWZiZjRk
ZmY5NjYzY2NkOTllNmFjNjE1MjVjM2NjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvRW5jb2RlZFZhbHVlLmNwcApAQCAtMTU4LDYgKzE1OCwxNSBAQCB0ZW1wbGF0ZTw+IHVp
bnQ2NF90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPHVpbnQ2NF90PigpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAordGVtcGxhdGU8PiB1bnNpZ25lZCBsb25nIEVuY29kZWRWYWx1ZTo6Y29udmVy
dFRvPHVuc2lnbmVkIGxvbmc+KCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKKyAgICBi
b29sIGNhc3RTdWNjZWVkZWQgPSBtX3ZhbHVlLT5hc051bWJlcigmcmVzdWx0KTsKKyAgICBBU1NF
UlRfVU5VU0VEKGNhc3RTdWNjZWVkZWQsIGNhc3RTdWNjZWVkZWQpOworCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwogdGVtcGxhdGU8PiBTdHJpbmcgRW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88U3Ry
aW5nPigpCiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L0VuY29kZWRWYWx1ZS5oCmluZGV4IGZjNzRmMTM1M2UyMDY3MGZhZTg4MDJjZDY0MDBjZmQ2
ZWM3NDM2MGYuLmYxNDc3YWE1MzVhZWZiMzA5MmJjMDVmYjM1NDI4NmMxZmFmZmZiZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaApAQCAtOTIsMTMgKzky
LDEzIEBAIHRlbXBsYXRlPD4gSlNfRVhQT1JUX1BSSVZBVEUgaW50MzJfdCBFbmNvZGVkVmFsdWU6
OmNvbnZlcnRUbzxpbnQzMl90PigpOwogdGVtcGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSBpbnQ2
NF90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGludDY0X3Q+KCk7CiB0ZW1wbGF0ZTw+IEpTX0VY
UE9SVF9QUklWQVRFIHVpbnQzMl90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPHVpbnQzMl90Pigp
OwogdGVtcGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSB1aW50NjRfdCBFbmNvZGVkVmFsdWU6OmNv
bnZlcnRUbzx1aW50NjRfdD4oKTsKK3RlbXBsYXRlPD4gSlNfRVhQT1JUX1BSSVZBVEUgdW5zaWdu
ZWQgbG9uZyBFbmNvZGVkVmFsdWU6OmNvbnZlcnRUbzx1bnNpZ25lZCBsb25nPigpOwogdGVtcGxh
dGU8PiBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgRW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88U3Ry
aW5nPigpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IEVuY29kaW5nVHJhaXRzIHsK
ICAgICB0eXBlZGVmIFQgRGVjb2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVu
Y29kZVZhbHVlKERlY29kZWRUeXBlKTsKICAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZh
bHVlKGNvbnN0IERlY29kZWRUeXBlJik7CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmLCBEZWNvZGVkVHlwZSYpOwpAQCAtMTU2LDYgKzE1Niw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPGludDMyX3Q+IDogcHVibGljIFNjYWxhckVuY29kaW5n
VHJhaXRzPGludDMyX3Q+CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxpbnQ2NF90
PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxpbnQ2NF90PiB7IH07CiB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbmNvZGluZ1RyYWl0czx1aW50MzJfdD4gOiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdU
cmFpdHM8dWludDMyX3Q+IHsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPHVp
bnQ2NF90PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czx1aW50NjRfdD4geyB9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4gOiBwdWJsaWMgU2Nh
bGFyRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4geyB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbmNvZGluZ1RyYWl0czxTdHJpbmc+IDogcHVibGljIFNjYWxhckVuY29kaW5nVHJhaXRzPFN0
cmluZz4gewogICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMGExNTMxMGUzMzEwYTIwNWU2NWU1NTdh
MGM2OGQ5ZjkyM2RmMDYwYi4uNTdiZjNiZDEwMjYxNjA0ZTZkNTMzNmU0NTU3YzNlZDJhNjNhNjQ2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMyODIsMyArMzI4Miw3IEBAIF9fWk43V2ViQ29y
ZTlQYWdlR3JvdXAxOGNhcHRpb25QcmVmZXJlbmNlc0V2CiAjaWYgRU5BQkxFKFZJRVdfTU9ERV9D
U1NfTUVESUEpCiBfX1pON1dlYkNvcmU0UGFnZTExc2V0Vmlld01vZGVFTlMwXzhWaWV3TW9kZUUK
ICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCitfX1pOSzdXZWJDb3JlMTRSZXNvdXJj
ZUxvYWRlcjE3YWN0aXZlSW5wdXRDdXJzb3JFdgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA5ZTAwZTgxY2IwN2M5OTkwNjQwOWIyZjlkMmM2NDYz
ODJmOGE2NmEyLi45MjQyYTk5NWNlOTYyMTViNTc5MTBlZDVhOTkzZjViNWYyMGI3MjM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTE1OTcsNCArMTU5Nywy
NCBAQCBib29sIERvY3VtZW50TG9hZGVyOjpoYW5kbGVDb250ZW50RmlsdGVyUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJf
UkVQTEFZKQorUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRlcj4gRG9jdW1lbnRMb2FkZXI6OmZpbmRM
b2FkZXJGb3JJZGVudGlmaWVyKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK3sKKyAgICBhdXRv
IGZvdW5kU3VicmVzb3VyY2VMb2FkZXIgPSBtX3N1YnJlc291cmNlTG9hZGVycy5maW5kKGlkZW50
aWZpZXIpOworICAgIGlmIChmb3VuZFN1YnJlc291cmNlTG9hZGVyICE9IG1fc3VicmVzb3VyY2VM
b2FkZXJzLmVuZCgpKQorICAgICAgICByZXR1cm4gZm91bmRTdWJyZXNvdXJjZUxvYWRlci0+dmFs
dWU7CisKKyAgICBhdXRvIGZvdW5kTXVsdGlwYXJ0TG9hZGVyID0gbV9tdWx0aXBhcnRTdWJyZXNv
dXJjZUxvYWRlcnMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoZm91bmRNdWx0aXBhcnRMb2Fk
ZXIgIT0gbV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMuZW5kKCkpCisgICAgICAgIHJldHVy
biBmb3VuZE11bHRpcGFydExvYWRlci0+dmFsdWU7CisKKyAgICBhdXRvIGZvdW5kUGx1Z2luU3Ry
ZWFtTG9hZGVyID0gbV9wbHVnSW5TdHJlYW1Mb2FkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAg
aWYgKGZvdW5kUGx1Z2luU3RyZWFtTG9hZGVyICE9IG1fcGx1Z0luU3RyZWFtTG9hZGVycy5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIGZvdW5kUGx1Z2luU3RyZWFtTG9hZGVyLT52YWx1ZTsKKworICAg
IEFTU0VSVChpc0xvYWRpbmdNYWluUmVzb3VyY2UoKSAmJiBtYWluUmVzb3VyY2VMb2FkZXIoKS0+
aWRlbnRpZmllcigpID09IGlkZW50aWZpZXIpOworICAgIHJldHVybiBtYWluUmVzb3VyY2VMb2Fk
ZXIoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBiMjNjYTA4
NmUyODlhODk4NDlkZDAxZTM3MTZmZDdhZjEzMjk5ZmY4Li5kODkxZmZiNTEzMDliZDgxN2Q2ZjU3
MGNmN2EzODNhMTg4MGIxYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtMjMyLDYgKzIzMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBh
ZGRQbHVnSW5TdHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2FkZXIqKTsKICAgICAgICAgdm9pZCByZW1v
dmVQbHVnSW5TdHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2FkZXIqKTsKIAorI2lmIEVOQUJMRShXRUJf
UkVQTEFZKQorICAgICAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZGVyPiBmaW5kTG9hZGVyRm9y
SWRlbnRpZmllcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworI2VuZGlmCiAgICAgICAgIHZv
aWQgc3VicmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNlTG9hZGVy
Kik7CiAKICAgICAgICAgdm9pZCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGJvb2wgZGVm
ZXIpIHsgbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkID0gZGVmZXI7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggOTk2YTgwMWMw
NmUxZTZkZGViNjdjNzVmYzk5OTc1NWI5Y2U0YzUyMy4uYWI4YWIyZTFiMzhiNGQ3ZTU1MDRkYTkw
N2NiMzc5YjQxMjNjNzM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKQEAgLTI3OCw2ICsyNzgsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKEhvc3RJbmZvcm1hdGlvbiogaG9zdCwgUmVz
b3VyY2UKIAogICAgICAgICAgICAgcmVxdWVzdHNQZW5kaW5nLnJlbW92ZUZpcnN0KCk7CiAgICAg
ICAgICAgICBob3N0LT5hZGRMb2FkSW5Qcm9ncmVzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSk7Cisj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgICAgICAgICBJbnB1dEN1cnNvciogY3Vyc29yID0g
cmVzb3VyY2VMb2FkZXItPmFjdGl2ZUlucHV0Q3Vyc29yKCk7CisgICAgICAgICAgICBpZiAoY3Vy
c29yICYmIGN1cnNvci0+aXNSZXBsYXlpbmcoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgIGlmICghYXBwbGljYXRpb25J
c1dlYlByb2Nlc3MoKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlTG9hZGVyLT5zdGFydExv
YWRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDI3
NGZmMTZmNmVjZjk2ZWY4ZmFjNGUwNTBhYjc0MjJjZDViMGJkMmEuLmU3MDk5MTY3NGFhNjQ4NmJi
YjI5ZWYwN2Y1ODg0ZTY4MmNkNzFhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtNTEsNiArNTEsMTEgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKyNpbmNsdWRl
ICJSZXBsYXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZXNvdXJjZUxvYWRlcjo6UmVzb3VyY2VM
b2FkZXIoRnJhbWUqIGZyYW1lLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucykKQEAgLTU4
Niw0ICs1OTEsMjQgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRDYW5jZWxsYXRpb24o
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogICAgIGNhbmNlbCgpOwogfQogCisjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCitJbnB1dEN1cnNvciogUmVzb3VyY2VMb2FkZXI6OmFjdGl2ZUlu
cHV0Q3Vyc29yKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgSW5wdXRDdXJzb3IqIGRvY3VtZW50Q3Vyc29yID0gbV9mcmFtZS0+ZG9j
dW1lbnQoKSA/ICZtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbnB1dEN1cnNvcigpIDogbnVsbHB0cjsK
KyAgICBpZiAoZG9jdW1lbnRDdXJzb3IpCisgICAgICAgIHJldHVybiBkb2N1bWVudEN1cnNvcjsK
KworICAgIElucHV0Q3Vyc29yKiBwYWdlQ3Vyc29yID0gbV9mcmFtZS0+cGFnZSgpID8gJm1fZnJh
bWUtPnBhZ2UoKS0+cmVwbGF5Q29udHJvbGxlcigpLmFjdGl2ZUlucHV0Q3Vyc29yKCkgOiBudWxs
cHRyOworICAgIGlmICghcGFnZUN1cnNvcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBib29sIGlzRnJhbWVOYXZpZ2F0aW5nID0gbV9mcmFtZS0+bG9hZGVyKCkuc3RhdGUoKSA9PSBG
cmFtZVN0YXRlUHJvdmlzaW9uYWw7CisgICAgYm9vbCBpc1Byb3Zpc2lvbmFsUmVzb3VyY2VMb2Fk
aW5nID0gZG9jdW1lbnRMb2FkZXIoKSA9PSBtX2ZyYW1lLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVu
dExvYWRlcigpOworICAgIHJldHVybiAoaXNGcmFtZU5hdmlnYXRpbmcgJiYgaXNQcm92aXNpb25h
bFJlc291cmNlTG9hZGluZykgPyBwYWdlQ3Vyc29yIDogbnVsbHB0cjsKK30KKyNlbmRpZgorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDZlYjE2ZWZhNzYyZGUy
NGQwMTkxYmRlMzkyMzY1NjI1NmVhYTM1YzUuLjk5ZGQxZjA4ZjA3ODdmZTE5OTYxODY1ZjI3ZmU1
YmQwNzNlN2FlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC00
Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlF1aWNrTG9vay5oIgogI2VuZGlmCiAKK25hbWVzcGFj
ZSBKU0MgeworY2xhc3MgSW5wdXRDdXJzb3I7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBAIC0xNjMsNiArMTY3LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFF1aWNrTG9va0hhbmRsZShQYXNzT3duUHRyPFF1aWNrTG9va0hhbmRs
ZT4gaGFuZGxlKSB7IG1fcXVpY2tMb29rSGFuZGxlID0gaGFuZGxlOyB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJfUkVQTEFZKQorICAgIEpTQzo6SW5wdXRDdXJzb3IqIGFjdGl2ZUlucHV0Q3Vy
c29yKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlTG9hZGVyKEZy
YW1lKiwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZjFmY2VhY2FhMTZlZDQzNDM4YWM3NDQ0ZDQxYzZh
ZTRlMjI5OTcxMS4uYTFiZWM4NTZlYjU5MWVmMjkyODdiODhkNTI2MDI1YTU5ZDY5NTY5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00OCw2ICs0
OCwxMyBAQAogI2luY2x1ZGUgPFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKyNpbmNsdWRlICJDYXB0dXJpbmdJbnB1dEN1cnNv
ci5oIgorI2luY2x1ZGUgIlJlcGxheUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTZXJpYWxpemF0
aW9uTWV0aG9kcy5oIgorI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291
bnRlZExlYWtDb3VudGVyLCBzdWJyZXNvdXJjZUxvYWRlckNvdW50ZXIsICgiU3VicmVzb3VyY2VM
b2FkZXIiKSk7CkBAIC0xODMsNiArMTkwLDEzIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcKIHsK
ICAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAgICAgUmVmPFN1YnJlc291cmNl
TG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIElu
cHV0Q3Vyc29yKiBjdXJzb3IgPSBhY3RpdmVJbnB1dEN1cnNvcigpOworICAgIGlmIChjdXJzb3Ig
JiYgY3Vyc29yLT5pc0NhcHR1cmluZygpKQorICAgICAgICBjdXJzb3ItPmFwcGVuZElucHV0PFJl
c291cmNlTG9hZGVyRGlkU2VuZERhdGE+KGlkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFt
ZShtX2ZyYW1lLmdldCgpKSwgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworI2VuZGlm
CisKICAgICBtX3Jlc291cmNlLT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0Jl
U2VudCk7CiB9CiAKQEAgLTE5NSw2ICsyMDksMTQgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAg
IC8vIGFueXRoaW5nIGluY2x1ZGluZyByZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhp
cyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWY8U3VicmVz
b3VyY2VMb2FkZXI+IHByb3RlY3QoKnRoaXMpOwogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisg
ICAgSW5wdXRDdXJzb3IqIGN1cnNvciA9IGFjdGl2ZUlucHV0Q3Vyc29yKCk7CisgICAgaWYgKGN1
cnNvciAmJiBjdXJzb3ItPmlzQ2FwdHVyaW5nKCkpIHsKKyAgICAgICAgUGFzc093blB0cjxSZXNv
dXJjZVJlc3BvbnNlPiBvd25lZFJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZTo6YWRvcHQocmVz
cG9uc2UuY29weURhdGEoKSk7CisgICAgICAgIGN1cnNvci0+YXBwZW5kSW5wdXQ8UmVzb3VyY2VM
b2FkZXJEaWRSZWNlaXZlUmVzcG9uc2U+KGlkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFt
ZShtX2ZyYW1lLmdldCgpKSwgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVzcG9uc2U+KG93bmVk
UmVzcG9uc2UubGVha1B0cigpKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9yZXNvdXJj
ZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSA9PSAzMDQpIHsKICAgICAgICAgICAgIC8vIDMwNCBOb3QgbW9kaWZpZWQgLyBV
c2UgbG9jYWwgY29weQpAQCAtMjY2LDcgKzI4OCwxNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIFBh
cwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyByZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2Ug
dG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWY8
U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3QoKnRoaXMpOwogICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlciA9IHBycEJ1ZmZlcjsKLSAgICAKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQor
ICAgIElucHV0Q3Vyc29yKiBjdXJzb3IgPSBhY3RpdmVJbnB1dEN1cnNvcigpOworICAgIGlmIChj
dXJzb3IgJiYgY3Vyc29yLT5pc0NhcHR1cmluZygpKSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IHNlcmlhbGl6ZWRCdWZmZXIgPSBidWZmZXI7CisgICAgICAgIGlmICghc2VyaWFsaXpl
ZEJ1ZmZlcikKKyAgICAgICAgICAgIHNlcmlhbGl6ZWRCdWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShkYXRhLCBsZW5ndGgpOworICAgICAgICBjdXJzb3ItPmFwcGVuZElucHV0PFJlc291cmNl
TG9hZGVyRGlkUmVjZWl2ZURhdGE+KGlkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZSht
X2ZyYW1lLmdldCgpKSwgc2VyaWFsaXplZEJ1ZmZlciwgZW5jb2RlZERhdGFMZW5ndGgpOworICAg
IH0KKyNlbmRpZgorCiAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIo
ZGF0YSwgbGVuZ3RoLCBidWZmZXIsIGVuY29kZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUp
OwogCiAgICAgaWYgKCFtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7CkBAIC0zMDAsNiArMzMy
LDEyIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZp
bmlzaFRpbWUpCiAKICAgICBSZWY8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3QoKnRoaXMpOwog
CisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgSW5wdXRDdXJzb3IqIGN1cnNvciA9IGFjdGl2
ZUlucHV0Q3Vyc29yKCk7CisgICAgaWYgKGN1cnNvciAmJiBjdXJzb3ItPmlzQ2FwdHVyaW5nKCkp
CisgICAgICAgIGN1cnNvci0+YXBwZW5kSW5wdXQ8UmVzb3VyY2VMb2FkZXJEaWRGaW5pc2hMb2Fk
aW5nPihpZGVudGlmaWVyKCksIGZyYW1lSW5kZXhGcm9tRnJhbWUobV9mcmFtZS5nZXQoKSksIGZp
bmlzaFRpbWUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKHJlc291cmNl
RGF0YSgpKQogICAgICAgICByZXNvdXJjZURhdGEoKS0+c2V0U2hvdWxkVXNlUHVyZ2VhYmxlTWVt
b3J5KHRydWUpOwpAQCAtMzI4LDYgKzM2NiwxMyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIExPRyhSZXNvdXJjZUxvYWRp
bmcsICJGYWlsZWQgdG8gbG9hZCAnJXMnLlxuIiwgbV9yZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCku
bGF0aW4xKCkuZGF0YSgpKTsKIAogICAgIFJlZjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCgq
dGhpcyk7CisKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKyAgICBJbnB1dEN1cnNvciogY3Vyc29y
ID0gYWN0aXZlSW5wdXRDdXJzb3IoKTsKKyAgICBpZiAoY3Vyc29yICYmIGN1cnNvci0+aXNDYXB0
dXJpbmcoKSkKKyAgICAgICAgY3Vyc29yLT5hcHBlbmRJbnB1dDxSZXNvdXJjZUxvYWRlckRpZEZh
aWw+KGlkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZShtX2ZyYW1lLmdldCgpKSwgc3Rk
Ojptb3ZlKGVycm9yLm93bmVkQ29weSgpKSk7CisjZW5kaWYKKwogICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVzb3VyY2UobV9yZXNvdXJjZSk7CiAgICAg
bV9zdGF0ZSA9IEZpbmlzaGluZzsKICAgICBpZiAobV9yZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFs
aWRhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VFcnJvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUVycm9yQmFzZS5jcHAKaW5kZXggYzJlZGU5OWIwODhkMTc3ZjA0MzBkNzA1YzQwYmNlMjc1
NDBiOWRlZC4uY2M0YjNiMzgzMzU0ODFhMGNhZGVkZjc5MGEzZWFhNTMwYTYzMWUzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFz
ZS5jcHAKQEAgLTQ3LDYgKzQ3LDE0IEBAIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvckJhc2U6
OmNvcHkoKSBjb25zdAogICAgIHJldHVybiBlcnJvckNvcHk7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0
cjxSZXNvdXJjZUVycm9yPiBSZXNvdXJjZUVycm9yQmFzZTo6b3duZWRDb3B5KCkgY29uc3QKK3sK
KyAgICBhdXRvIGVycm9yID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUVycm9yPihkb21haW4o
KSwgZXJyb3JDb2RlKCksIGZhaWxpbmdVUkwoKSwgbG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Cisg
ICAgZXJyb3ItPnNldElzQ2FuY2VsbGF0aW9uKGlzQ2FuY2VsbGF0aW9uKCkpOworICAgIGVycm9y
LT5zZXRJc1RpbWVvdXQoaXNUaW1lb3V0KCkpOworICAgIHJldHVybiBzdGQ6Om1vdmUoZXJyb3Ip
OworfQorCiB2b2lkIFJlc291cmNlRXJyb3JCYXNlOjpsYXp5SW5pdCgpIGNvbnN0CiB7CiAgICAg
Y29uc3RfY2FzdDxSZXNvdXJjZUVycm9yKj4oc3RhdGljX2Nhc3Q8Y29uc3QgUmVzb3VyY2VFcnJv
cio+KHRoaXMpKS0+cGxhdGZvcm1MYXp5SW5pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCmluZGV4IDUwNzk0ZTRhMTJmNTIz
ZGFlZjYzZDUxYmQ0M2E4ZjJlMTg3MzYyMTAuLmU1NzU5YTAzODdkODBiYThiNzUwYjQwMTQ3NzVj
NWQxOTU0YzE5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlRXJyb3JCYXNlLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgUmVzb3VyY2VFcnJv
ckJhc2UgewogcHVibGljOgogICAgIC8vIE1ha2VzIGEgZGVlcCBjb3B5LiBVc2VmdWwgZm9yIHdo
ZW4geW91IG5lZWQgdG8gdXNlIGEgUmVzb3VyY2VFcnJvciBvbiBhbm90aGVyIHRocmVhZC4KICAg
ICBSZXNvdXJjZUVycm9yIGNvcHkoKSBjb25zdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3Vy
Y2VFcnJvcj4gb3duZWRDb3B5KCkgY29uc3Q7CiAKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNOdWxsOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9S
ZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVw
bGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwCmluZGV4IDEwNDVlNjViZjgwNmMyZWJkYjZmMGFj
MDI5MjNmYTY2MDE3ZTY3M2EuLjYyNjE4MzcwNmUyYzE0ZWRiMTk2ZDk1NDRjNzhjYjEzZTQxNDk0
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNo
TWV0aG9kcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcApAQCAtMjksMTUgKzI5LDI4IEBACiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkp
CiAKICNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25TY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVwbGF5Q29udHJvbGxlci5oIgor
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgor
I2luY2x1ZGUgIlNlcmlhbGl6YXRpb25NZXRob2RzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5j
bHVkZSAiVXNlcklucHV0QnJpZGdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGlj
IFJlc291cmNlTG9hZGVyKiBnZXRSZXNvdXJjZUxvYWRlcihQYWdlJiBwYWdlLCBpbnQgZnJhbWVJ
bmRleCwgdW5zaWduZWQgbG9uZyBsb2FkZXJJZGVudGlmaWVyKQoreworICAgIEZyYW1lKiBmcmFt
ZSA9IGZyYW1lRnJvbUZyYW1lSW5kZXgoJnBhZ2UsIGZyYW1lSW5kZXgpOworICAgIEFTU0VSVChm
cmFtZSk7CisKKyAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IGZyYW1lLT5sb2Fk
ZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5maW5kTG9hZGVyRm9ySWRlbnRpZmllcihsb2Fk
ZXJJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbG9hZGVyID8gbG9hZGVyLmdldCgpIDogbnVsbHB0
cjsKK30KKwogLy8gU2VudGluZWwgaW5wdXRzLgogdm9pZCBCZWdpblNlZ21lbnRTZW50aW5lbDo6
ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYpCiB7CkBAIC03Nyw2ICs5MCw0MiBAQCB2b2lkIEhh
bmRsZU1vdXNlUmVsZWFzZTo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikK
ICAgICBjb250cm9sbGVyLnBhZ2UoKS51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChwbGF0Zm9ybUV2ZW50KCksIElucHV0U291cmNlOjpTeW50aGV0aWMpOwogfQogCisv
LyBOZXR3b3JrIGlucHV0cy4KK3ZvaWQgUmVzb3VyY2VMb2FkZXJEaWRGYWlsOjpkaXNwYXRjaChS
ZXBsYXlDb250cm9sbGVyJiBjb250cm9sbGVyKQoreworICAgIGlmIChSZXNvdXJjZUxvYWRlciog
bG9hZGVyID0gZ2V0UmVzb3VyY2VMb2FkZXIoY29udHJvbGxlci5wYWdlKCksIGlkZW50aWZpZXIo
KSwgZnJhbWVJbmRleCgpKSkKKyAgICAgICAgbG9hZGVyLT5kaWRGYWlsKG1fZXJyb3ItPmNvcHko
KSk7CisgICAgLy8gRklYTUU6IHNpZ25hbCBlcnJvciBpZiB0aGUgY2FsbGJhY2sgY291bGRuJ3Qg
YmUgZmlyZWQuCit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkZXJEaWRGaW5pc2hMb2FkaW5nOjpkaXNw
YXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250cm9sbGVyKQoreworICAgIGlmIChSZXNvdXJjZUxv
YWRlciogbG9hZGVyID0gZ2V0UmVzb3VyY2VMb2FkZXIoY29udHJvbGxlci5wYWdlKCksIGlkZW50
aWZpZXIoKSwgZnJhbWVJbmRleCgpKSkKKyAgICAgICAgbG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5n
KG1fZmluaXNoVGltZSk7CisgICAgLy8gRklYTUU6IHNpZ25hbCBlcnJvciBpZiB0aGUgY2FsbGJh
Y2sgY291bGRuJ3QgYmUgZmlyZWQuCit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZl
RGF0YTo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKK3sKKyAgICBpZiAo
UmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IGdldFJlc291cmNlTG9hZGVyKGNvbnRyb2xsZXIucGFn
ZSgpLCBpZGVudGlmaWVyKCksIGZyYW1lSW5kZXgoKSkpCisgICAgICAgIGxvYWRlci0+ZGlkUmVj
ZWl2ZURhdGEoYnVmZmVyKCktPmRhdGEoKSwgYnVmZmVyKCktPnNpemUoKSwgZW5jb2RlZExlbmd0
aCgpLCBEYXRhUGF5bG9hZEJ5dGVzKTsKKyAgICAvLyBGSVhNRTogc2lnbmFsIGVycm9yIGlmIHRo
ZSBjYWxsYmFjayBjb3VsZG4ndCBiZSBmaXJlZC4KK30KKwordm9pZCBSZXNvdXJjZUxvYWRlckRp
ZFJlY2VpdmVSZXNwb25zZTo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikK
K3sKKyAgICBpZiAoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IGdldFJlc291cmNlTG9hZGVyKGNv
bnRyb2xsZXIucGFnZSgpLCBpZGVudGlmaWVyKCksIGZyYW1lSW5kZXgoKSkpCisgICAgICAgIGxv
YWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCptX3Jlc3BvbnNlKTsKKyAgICAvLyBGSVhNRTogc2ln
bmFsIGVycm9yIGlmIHRoZSBjYWxsYmFjayBjb3VsZG4ndCBiZSBmaXJlZC4KK30KKwordm9pZCBS
ZXNvdXJjZUxvYWRlckRpZFNlbmREYXRhOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250
cm9sbGVyKQoreworICAgIGlmIChSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gZ2V0UmVzb3VyY2VM
b2FkZXIoY29udHJvbGxlci5wYWdlKCksIGlkZW50aWZpZXIoKSwgZnJhbWVJbmRleCgpKSkKKyAg
ICAgICAgbG9hZGVyLT5kaWRTZW5kRGF0YShtX2J5dGVzU2VudCwgbV90b3RhbEJ5dGVzVG9CZVNl
bnQpOworICAgIC8vIEZJWE1FOiBzaWduYWwgZXJyb3IgaWYgdGhlIGNhbGxiYWNrIGNvdWxkbid0
IGJlIGZpcmVkLgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JFUExBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxp
emF0aW9uTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCmluZGV4IDQyOTJkMWMyYWRjYzhkYThmM2VmMDljYmQ5YzRmODY1ODM3YzNkYzIu
LjFiNzNhMTI1MmE2ZGE0NTg0YjQ1NDljMTA2ZjhhNjQ0OWU3MTI1YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcApAQCAtMzEsMjAgKzMxLDc3
IEBACiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAKICNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
SFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZXBsYXlJbnB1dFR5cGVzLmgiCisjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgorI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0Jhc2U2NC5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBmcmFtZUluZGV4RnJv
bURvY3VtZW50KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1l
bnQpOworICAgIEFTU0VSVChkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgcmV0dXJuIGZyYW1lSW5k
ZXhGcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOworfQorCitpbnQgZnJhbWVJbmRleEZyb21G
cmFtZShjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUpCit7CisgICAgQVNTRVJUKHRhcmdldEZyYW1l
KTsKKworICAgIGludCBpbmRleCA9IDA7CisgICAgY29uc3QgRnJhbWUqIG1haW5GcmFtZSA9ICZ0
YXJnZXRGcmFtZS0+dHJlZSgpLnRvcCgpOworICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0g
bWFpbkZyYW1lOyBmcmFtZTsgaW5kZXgrKywgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dChtYWluRnJhbWUpKQorICAgICAgICBpZiAoZnJhbWUgPT0gdGFyZ2V0RnJhbWUpCisgICAg
ICAgICAgICByZXR1cm4gaW5kZXg7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworRG9jdW1lbnQqIGRvY3VtZW50RnJvbUZyYW1lSW5kZXgoUGFnZSogcGFn
ZSwgaW50IGZyYW1lSW5kZXgpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVGcm9tRnJhbWVJ
bmRleChwYWdlLCBmcmFtZUluZGV4KTsKKyAgICByZXR1cm4gZnJhbWUgPyBmcmFtZS0+ZG9jdW1l
bnQoKSA6IG51bGxwdHI7Cit9CisKK0ZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2UqIHBh
Z2UsIGludCBmcmFtZUluZGV4KQoreworICAgIEFTU0VSVChwYWdlKTsKKyAgICBBU1NFUlQoZnJh
bWVJbmRleCA+PSAwKTsKKworICAgIE1haW5GcmFtZSogbWFpbkZyYW1lID0gJnBhZ2UtPm1haW5G
cmFtZSgpOworICAgIEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZTsKKyAgICBpbnQgaWR4ID0gMDsK
KyAgICBmb3IgKDsgaWR4IDwgZnJhbWVJbmRleCAmJiBmcmFtZTsgaWR4KyssIGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobWFpbkZyYW1lKSkgeyB9CisgICAgcmV0dXJuIGZyYW1l
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK3VzaW5nIFdlYkNvcmU6OkhUVFBIZWFk
ZXJNYXA7CiB1c2luZyBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ7CiB1c2luZyBXZWJDb3JlOjpJ
bnRQb2ludDsKIHVzaW5nIFdlYkNvcmU6Ok1vdXNlQnV0dG9uOwogdXNpbmcgV2ViQ29yZTo6UGxh
dGZvcm1FdmVudDsKIHVzaW5nIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIHVzaW5n
IFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDsKK3VzaW5nIFdlYkNvcmU6OlJlc291cmNlRXJy
b3I7Cit1c2luZyBXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc7Cit1c2luZyBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOwogdXNpbmcgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW47Cit1c2luZyBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI7CiB1c2luZyBXZWJDb3JlOjpVUkw7CiB1c2luZyBXZWJDb3Jl
OjppbnB1dFR5cGVzOwogCkBAIC01NCwzMCArMTExLDgyIEBAIHVzaW5nIFdlYkNvcmU6Om5hbWU7
IFwKIFdFQl9SRVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0goSU1QT1JUX0ZST01fV0VCQ09SRV9O
QU1FU1BBQ0UpCiAjdW5kZWYgSU1QT1JUX0ZST01fV0VCQ09SRV9OQU1FU1BBQ0UKIAotI2RlZmlu
ZSBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXks
IF92YWx1ZSkgXAorI2RlZmluZSBFTkNPREVfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBf
dHlwZSwgX2tleSwgX3ZhbHVlKSBcCiAgICAgX2VuY29kZWRWYWx1ZS5wdXQ8X3R5cGU+KEFTQ0lJ
TGl0ZXJhbCgjX2tleSksIF92YWx1ZSkKIAotI2RlZmluZSBERUNPREVfU0NBTEFSX1RZUEVfV0lU
SF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXkpIFwKLSAgICBfdHlwZSBfa2V5OyBcCi0g
ICAgaWYgKCFfZW5jb2RlZFZhbHVlLmdldDxfdHlwZT4oQVNDSUlMaXRlcmFsKCNfa2V5KSwgX2tl
eSkpIFwKKyNkZWZpbmUgRU5DT0RFX09QVElPTkFMX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1
ZSwgX3R5cGUsIF9rZXksIF92YWx1ZSwgY29uZGl0aW9uKSBcCisgICAgaWYgKGNvbmRpdGlvbikg
XAorICAgICAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tl
eSwgX3ZhbHVlKQorCisjZGVmaW5lIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5j
b2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX2x2YWx1ZSkgXAorICAgIGlmICghX2VuY29kZWRWYWx1
ZS5nZXQ8X3R5cGU+KEFTQ0lJTGl0ZXJhbCgjX2tleSksIF9sdmFsdWUpKSBcCiAgICAgICAgIHJl
dHVybiBmYWxzZQogCi0jZGVmaW5lIEVOQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tF
WShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX3ZhbHVlLCBjb25kaXRpb24pIFwKLSAgICBp
ZiAoY29uZGl0aW9uKSBcCi0gICAgICAgIF9lbmNvZGVkVmFsdWUucHV0PF90eXBlPihBU0NJSUxp
dGVyYWwoI19rZXkpLCBfdmFsdWUpCisjZGVmaW5lIERFQ09ERV9PUFRJT05BTF9UWVBFX1dJVEhf
S0VZX1RPX0xWQUxVRShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX2x2YWx1ZSkgXAorICAg
IGJvb2wgX2tleSAjIyBXYXNEZWNvZGVkID0gX2VuY29kZWRWYWx1ZS5nZXQ8X3R5cGU+KEFTQ0lJ
TGl0ZXJhbCgjX2tleSksIF9sdmFsdWUpCisKKyNkZWZpbmUgREVDT0RFX1JFRkNPVU5URURfVFlQ
RV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSkgXAorICAgIFJlZlB0cjxfdHlw
ZT4gX2tleTsgXAorICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2RlZFZh
bHVlLCBfdHlwZSwgX2tleSwgX2tleSkKKworI2RlZmluZSBERUNPREVfT1dORURfVFlQRV9XSVRI
X0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSkgXAorICAgIHN0ZDo6dW5pcXVlX3B0cjxf
dHlwZT4gX2tleTsgXAorICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2Rl
ZFZhbHVlLCBfdHlwZSwgX2tleSwgX2tleSkKKworI2RlZmluZSBERUNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXkpIFwKKyAgICBfdHlwZSBfa2V5OyBc
CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKF9lbmNvZGVkVmFsdWUsIF90eXBl
LCBfa2V5LCBfa2V5KQogCiAjZGVmaW5lIERFQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRI
X0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSkgXAogICAgIF90eXBlIF9rZXk7IFwKLSAg
ICBib29sIF9rZXkgIyMgV2FzRGVjb2RlZCA9IF9lbmNvZGVkVmFsdWUuZ2V0PF90eXBlPihBU0NJ
SUxpdGVyYWwoI19rZXkpLCBfa2V5KQorICAgIERFQ09ERV9PUFRJT05BTF9UWVBFX1dJVEhfS0VZ
X1RPX0xWQUxVRShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX2tleSkKKworI2RlZmluZSBE
RUNPREVfT1BUSU9OQUxfUkVGQ09VTlRFRF9UWVBFX1dJVEhfS0VZKF9lbmNvZGVkVmFsdWUsIF90
eXBlLCBfa2V5KSBcCisgICAgUmVmUHRyPF90eXBlPiBfa2V5OyBcCisgICAgREVDT0RFX09QVElP
TkFMX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKF9lbmNvZGVkVmFsdWUsIF90eXBlLCBfa2V5LCBf
a2V5KQogCiBuYW1lc3BhY2UgSlNDIHsKIAorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEhU
VFBIZWFkZXJNYXA+OjplbmNvZGVWYWx1ZShjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJNYXAp
Cit7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVP
YmplY3QoKTsKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZEtleXMgPSBFbmNvZGVkVmFsdWU6OmNy
ZWF0ZUFycmF5KCk7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZXMgPSBFbmNvZGVkVmFs
dWU6OmNyZWF0ZUFycmF5KCk7CisKKyAgICBmb3IgKGF1dG8gaXQgPSBoZWFkZXJNYXAuYmVnaW4o
KTsgaXQgIT0gaGVhZGVyTWFwLmVuZCgpOyArK2l0KSB7CisgICAgICAgIGVuY29kZWRLZXlzLmFw
cGVuZDxTdHJpbmc+KGl0LT5rZXkuc3RyaW5nKCkpOworICAgICAgICBlbmNvZGVkVmFsdWVzLmFw
cGVuZDxTdHJpbmc+KGl0LT52YWx1ZSk7CisgICAgfQorCisgICAgRU5DT0RFX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZERhdGEsIEVuY29kZWRWYWx1ZSwga2V5cywgZW5jb2RlZEtleXMpOworICAgIEVO
Q09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBFbmNvZGVkVmFsdWUsIHZhbHVlcywgZW5j
b2RlZFZhbHVlcyk7CisKKyAgICByZXR1cm4gZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2Rp
bmdUcmFpdHM8SFRUUEhlYWRlck1hcD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2Rl
ZERhdGEsIHN0ZDo6dW5pcXVlX3B0cjxIVFRQSGVhZGVyTWFwPiYgZGVjb2RlZFZhbHVlKQorewor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxIVFRQSGVhZGVyTWFwPiBkZWNvZGVkSGVhZGVyTWFwID0gc3Rk
OjptYWtlX3VuaXF1ZTxIVFRQSGVhZGVyTWFwPigpOworCisgICAgREVDT0RFX1NDQUxBUl9UWVBF
X1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwga2V5cyk7CisgICAgREVDT0RF
X1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwgdmFsdWVz
KTsKKworICAgIGlmIChrZXlzLnNpemUoKSAhPSB2YWx1ZXMuc2l6ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kp
CisgICAgICAgIGRlY29kZWRIZWFkZXJNYXAtPmFkZChrZXlzW2ldLCB2YWx1ZXNbaV0pOworCisg
ICAgZGVjb2RlZFZhbHVlID0gc3RkOjptb3ZlKGRlY29kZWRIZWFkZXJNYXApOworICAgIHJldHVy
biB0cnVlOworfQorCiBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3Rp
Y0lucHV0QmFzZT46OmVuY29kZVZhbHVlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2Um
IGlucHV0KQogewogICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFsdWU6
OmNyZWF0ZU9iamVjdCgpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSA9IGlucHV0LnR5
cGUoKTsKIAotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0
cmluZywgdHlwZSwgdHlwZS5zdHJpbmcoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5j
b2RlZFZhbHVlLCBTdHJpbmcsIHR5cGUsIHR5cGUuc3RyaW5nKCkpOwogCiAjZGVmaW5lIEVOQ09E
RV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUpIFwKICAgICBpZiAodHlwZSA9PSBpbnB1dFR5cGVz
KCkubmFtZSkgeyBcCkBAIC0xMzQsOCArMjQzLDggQEAgRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPEtleXByZXNzQ29tbWFuZD46OmVuY29kZVZhbHVlKGNvbnN0IEtleXByZXNzQ29tbWFuZCYK
IHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVP
YmplY3QoKTsKIAotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUs
IFN0cmluZywgY29tbWFuZE5hbWUsIGNvbW1hbmQuY29tbWFuZE5hbWUpOwotICAgIEVOQ09ERV9P
UFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwg
Y29tbWFuZC50ZXh0LCAhY29tbWFuZC50ZXh0LmlzRW1wdHkoKSk7CisgICAgRU5DT0RFX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGNvbW1hbmROYW1lLCBjb21tYW5kLmNvbW1h
bmROYW1lKTsKKyAgICBFTkNPREVfT1BUSU9OQUxfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUs
IFN0cmluZywgdGV4dCwgY29tbWFuZC50ZXh0LCAhY29tbWFuZC50ZXh0LmlzRW1wdHkoKSk7CiAK
ICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogfQpAQCAtMTY0LDIxICsyNzMsMjEgQEAgRW5jb2Rl
ZFZhbHVlIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD46OmVuY29kZVZhbHVl
KGNvbnN0IFBsYXRmb3JtS2UKIHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5j
b2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKIAotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRI
X0tFWShlbmNvZGVkVmFsdWUsIGRvdWJsZSwgdGltZXN0YW1wLCBpbnB1dC50aW1lc3RhbXAoKSk7
Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1F
dmVudDo6VHlwZSwgdHlwZSwgaW5wdXQudHlwZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMsIG1vZGlmaWVy
cywgc3RhdGljX2Nhc3Q8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzPihpbnB1dC5tb2RpZmllcnMo
KSkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmlu
ZywgdGV4dCwgaW5wdXQudGV4dCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHVubW9kaWZpZWRUZXh0LCBpbnB1dC51bm1vZGlmaWVkVGV4
dCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJp
bmcsIGtleUlkZW50aWZpZXIsIGlucHV0LmtleUlkZW50aWZpZXIoKSk7Ci0gICAgRU5DT0RFX1ND
QUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50LCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUsIGlucHV0LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnB1
dC5uYXRpdmVWaXJ0dWFsS2V5Q29kZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZFZhbHVlLCBpbnQsIG1hY0NoYXJDb2RlLCBpbnB1dC5tYWNDaGFyQ29kZSgpKTsK
LSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBhdXRv
UmVwZWF0LCBpbnB1dC5pc0F1dG9SZXBlYXQoKSk7Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJ
VEhfS0VZKGVuY29kZWRWYWx1ZSwgYm9vbCwga2V5cGFkLCBpbnB1dC5pc0tleXBhZCgpKTsKLSAg
ICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBzeXN0ZW1L
ZXksIGlucHV0LmlzU3lzdGVtS2V5KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29k
ZWRWYWx1ZSwgZG91YmxlLCB0aW1lc3RhbXAsIGlucHV0LnRpbWVzdGFtcCgpKTsKKyAgICBFTkNP
REVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6OlR5cGUsIHR5cGUs
IGlucHV0LnR5cGUoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMsIG1vZGlmaWVycywgc3RhdGljX2Nhc3Q8UGxhdGZvcm1F
dmVudDo6TW9kaWZpZXJzPihpbnB1dC5tb2RpZmllcnMoKSkpOworICAgIEVOQ09ERV9UWVBFX1dJ
VEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB0ZXh0LCBpbnB1dC50ZXh0KCkpOworICAgIEVO
Q09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB1bm1vZGlmaWVkVGV4dCwg
aW5wdXQudW5tb2RpZmllZFRleHQoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBTdHJpbmcsIGtleUlkZW50aWZpZXIsIGlucHV0LmtleUlkZW50aWZpZXIoKSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSwgaW5wdXQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkpOworICAgIEVOQ09ERV9UWVBF
X1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50LCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW5wdXQu
bmF0aXZlVmlydHVhbEtleUNvZGUoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBpbnQsIG1hY0NoYXJDb2RlLCBpbnB1dC5tYWNDaGFyQ29kZSgpKTsKKyAgICBFTkNP
REVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIGF1dG9SZXBlYXQsIGlucHV0Lmlz
QXV0b1JlcGVhdCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJv
b2wsIGtleXBhZCwgaW5wdXQuaXNLZXlwYWQoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZFZhbHVlLCBib29sLCBzeXN0ZW1LZXksIGlucHV0LmlzU3lzdGVtS2V5KCkpOwogI2lm
IFVTRShBUFBLSVQpCi0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgYm9vbCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGlucHV0LmhhbmRsZWRCeUlucHV0TWV0aG9k
KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFZlY3Rv
cjxLZXlwcmVzc0NvbW1hbmQ+LCBjb21tYW5kcywgaW5wdXQuY29tbWFuZHMoKSk7CisgICAgRU5D
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBoYW5kbGVkQnlJbnB1dE1ldGhv
ZCwgaW5wdXQuaGFuZGxlZEJ5SW5wdXRNZXRob2QoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZFZhbHVlLCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiwgY29tbWFuZHMsIGlucHV0
LmNvbW1hbmRzKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKIH0KQEAgLTIx
NSwxOCArMzI0LDE4IEBAIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybU1vdXNl
RXZlbnQ+OjplbmNvZGVWYWx1ZShjb25zdCBQbGF0Zm9ybU1vdXNlCiB7CiAgICAgRW5jb2RlZFZh
bHVlIGVuY29kZWRWYWx1ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CiAKLSAgICBF
TkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHBvc2l0aW9uWCwg
aW5wdXQucG9zaXRpb24oKS54KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIGludCwgcG9zaXRpb25ZLCBpbnB1dC5wb3NpdGlvbigpLnkoKSk7Ci0gICAg
RU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50LCBnbG9iYWxQb3Np
dGlvblgsIGlucHV0Lmdsb2JhbFBvc2l0aW9uKCkueCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIGdsb2JhbFBvc2l0aW9uWSwgaW5wdXQuZ2xv
YmFsUG9zaXRpb24oKS55KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNv
ZGVkVmFsdWUsIE1vdXNlQnV0dG9uLCBidXR0b24sIGlucHV0LmJ1dHRvbigpKTsKLSAgICBFTkNP
REVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpUeXBl
LCB0eXBlLCBpbnB1dC50eXBlKCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIGludCwgY2xpY2tDb3VudCwgaW5wdXQuY2xpY2tDb3VudCgpKTsKLSAgICBF
TkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBzaGlmdEtleSwg
aW5wdXQuc2hpZnRLZXkoKSk7Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29k
ZWRWYWx1ZSwgYm9vbCwgY3RybEtleSwgaW5wdXQuY3RybEtleSgpKTsKLSAgICBFTkNPREVfU0NB
TEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBhbHRLZXksIGlucHV0LmFsdEtl
eSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29s
LCBtZXRhS2V5LCBpbnB1dC5tZXRhS2V5KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRI
X0tFWShlbmNvZGVkVmFsdWUsIGludCwgdGltZXN0YW1wLCBpbnB1dC50aW1lc3RhbXAoKSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHBvc2l0aW9uWCwgaW5w
dXQucG9zaXRpb24oKS54KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgaW50LCBwb3NpdGlvblksIGlucHV0LnBvc2l0aW9uKCkueSgpKTsKKyAgICBFTkNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGludCwgZ2xvYmFsUG9zaXRpb25YLCBpbnB1dC5nbG9i
YWxQb3NpdGlvbigpLngoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVl
LCBpbnQsIGdsb2JhbFBvc2l0aW9uWSwgaW5wdXQuZ2xvYmFsUG9zaXRpb24oKS55KCkpOworICAg
IEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgTW91c2VCdXR0b24sIGJ1dHRvbiwg
aW5wdXQuYnV0dG9uKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwg
UGxhdGZvcm1FdmVudDo6VHlwZSwgdHlwZSwgaW5wdXQudHlwZSgpKTsKKyAgICBFTkNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGludCwgY2xpY2tDb3VudCwgaW5wdXQuY2xpY2tDb3Vu
dCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIHNoaWZ0
S2V5LCBpbnB1dC5zaGlmdEtleSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIGJvb2wsIGN0cmxLZXksIGlucHV0LmN0cmxLZXkoKSk7CisgICAgRU5DT0RFX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBhbHRLZXksIGlucHV0LmFsdEtleSgpKTsKKyAg
ICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIG1ldGFLZXksIGlucHV0
Lm1ldGFLZXkoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQs
IHRpbWVzdGFtcCwgaW5wdXQudGltZXN0YW1wKCkpOwogCiAgICAgcmV0dXJuIGVuY29kZWRWYWx1
ZTsKIH0KQEAgLTI1Myw2ICszNjIsMTE1IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1N
b3VzZUV2ZW50Pjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVy
cm9yPjo6ZW5jb2RlVmFsdWUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgRW5j
b2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKwor
ICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcsIGRvbWFpbiwgZXJy
b3IuZG9tYWluKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBpbnQs
IGVycm9yQ29kZSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZ
KGVuY29kZWREYXRhLCBTdHJpbmcsIGZhaWxpbmdVUkwsIGVycm9yLmZhaWxpbmdVUkwoKSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgbG9jYWxpemVkRGVz
Y3JpcHRpb24sIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworCisgICAgcmV0dXJuIGVu
Y29kZWREYXRhOworfQorCitib29sIEVuY29kaW5nVHJhaXRzPFJlc291cmNlRXJyb3I+OjpkZWNv
ZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3Vy
Y2VFcnJvcj4mIGRlY29kZWRFcnJvcikKK3sKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZERhdGEsIFN0cmluZywgZG9tYWluKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZERhdGEsIGludCwgZXJyb3JDb2RlKTsKKyAgICBERUNPREVfU0NBTEFS
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgZmFpbGluZ1VSTCk7CisgICAgREVD
T0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcsIGxvY2FsaXplZERl
c2NyaXB0aW9uKTsKKworICAgIGRlY29kZWRFcnJvciA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3Vy
Y2VFcnJvcj4oZG9tYWluLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0
aW9uKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRz
PFJlc291cmNlTG9hZFRpbWluZz46OmVuY29kZVZhbHVlKFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1p
bmc+IHRpbWluZ0RhdGEpCit7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2Rl
ZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29k
ZWREYXRhLCBkb3VibGUsIHJlcXVlc3RUaW1lLCB0aW1pbmdEYXRhLT5yZXF1ZXN0VGltZSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIGludCwgcHJveHlTdGFydCwgdGlt
aW5nRGF0YS0+cHJveHlTdGFydCk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERh
dGEsIGludCwgcHJveHlFbmQsIHRpbWluZ0RhdGEtPnByb3h5RW5kKTsKKyAgICBFTkNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBkbnNTdGFydCwgdGltaW5nRGF0YS0+ZG5zU3Rh
cnQpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIGRuc0VuZCwg
dGltaW5nRGF0YS0+ZG5zRW5kKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0
YSwgaW50LCBjb25uZWN0U3RhcnQsIHRpbWluZ0RhdGEtPmNvbm5lY3RTdGFydCk7CisgICAgRU5D
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIGludCwgY29ubmVjdEVuZCwgdGltaW5nRGF0
YS0+Y29ubmVjdEVuZCk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIGlu
dCwgc2VuZFN0YXJ0LCB0aW1pbmdEYXRhLT5zZW5kU3RhcnQpOworICAgIEVOQ09ERV9UWVBFX1dJ
VEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIHNlbmRFbmQsIHRpbWluZ0RhdGEtPnNlbmRFbmQpOwor
ICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIHJlY2VpdmVIZWFkZXJz
RW5kLCB0aW1pbmdEYXRhLT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZERhdGEsIGludCwgc3NsU3RhcnQsIHRpbWluZ0RhdGEtPnNzbFN0YXJ0KTsK
KyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBzc2xFbmQsIHRpbWlu
Z0RhdGEtPnNzbEVuZCk7CisKKyAgICByZXR1cm4gZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5j
b2RpbmdUcmFpdHM8UmVzb3VyY2VMb2FkVGltaW5nPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVl
JiBlbmNvZGVkRGF0YSwgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4mIGRlY29kZWRUaW1pbmdz
KQoreworICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZ0RhdGEgPSBSZXNvdXJj
ZUxvYWRUaW1pbmc6OmNyZWF0ZSgpOworCisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZB
TFVFKGVuY29kZWREYXRhLCBkb3VibGUsIHJlcXVlc3RUaW1lLCB0aW1pbmdEYXRhLT5yZXF1ZXN0
VGltZSk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBp
bnQsIHByb3h5U3RhcnQsIHRpbWluZ0RhdGEtPnByb3h5U3RhcnQpOworICAgIERFQ09ERV9UWVBF
X1dJVEhfS0VZX1RPX0xWQUxVRShlbmNvZGVkRGF0YSwgaW50LCBwcm94eUVuZCwgdGltaW5nRGF0
YS0+cHJveHlFbmQpOworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShlbmNvZGVk
RGF0YSwgaW50LCBkbnNTdGFydCwgdGltaW5nRGF0YS0+ZG5zU3RhcnQpOworICAgIERFQ09ERV9U
WVBFX1dJVEhfS0VZX1RPX0xWQUxVRShlbmNvZGVkRGF0YSwgaW50LCBkbnNFbmQsIHRpbWluZ0Rh
dGEtPmRuc0VuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWRE
YXRhLCBpbnQsIGNvbm5lY3RTdGFydCwgdGltaW5nRGF0YS0+Y29ubmVjdFN0YXJ0KTsKKyAgICBE
RUNPREVfVFlQRV9XSVRIX0tFWV9UT19MVkFMVUUoZW5jb2RlZERhdGEsIGludCwgY29ubmVjdEVu
ZCwgdGltaW5nRGF0YS0+Y29ubmVjdEVuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9f
TFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIHNlbmRTdGFydCwgdGltaW5nRGF0YS0+c2VuZFN0YXJ0
KTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWV9UT19MVkFMVUUoZW5jb2RlZERhdGEsIGludCwg
c2VuZEVuZCwgdGltaW5nRGF0YS0+c2VuZEVuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlf
VE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIHJlY2VpdmVIZWFkZXJzRW5kLCB0aW1pbmdEYXRh
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVF
KGVuY29kZWREYXRhLCBpbnQsIHNzbFN0YXJ0LCB0aW1pbmdEYXRhLT5zc2xTdGFydCk7CisgICAg
REVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIHNzbEVuZCwg
dGltaW5nRGF0YS0+c3NsRW5kKTsKKworICAgIGRlY29kZWRUaW1pbmdzID0gdGltaW5nRGF0YS5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1Ry
YWl0czxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCit7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZh
bHVlOjpjcmVhdGVPYmplY3QoKTsKKworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRE
YXRhLCBVUkwsIHVybCwgcmVzcG9uc2UudXJsKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZ
KGVuY29kZWREYXRhLCBTdHJpbmcsIG1pbWVUeXBlLCByZXNwb25zZS5taW1lVHlwZSgpKTsKKyAg
ICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgbG9uZyBsb25nLCBleHBlY3RlZENv
bnRlbnRMZW5ndGgsIHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBFTkNP
REVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCB0ZXh0RW5jb2RpbmdOYW1lLCBy
ZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVu
Y29kZWREYXRhLCBTdHJpbmcsIHN1Z2dlc3RlZEZpbGVuYW1lLCByZXNwb25zZS5zdWdnZXN0ZWRG
aWxlbmFtZSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBo
dHRwU3RhdHVzQ29kZSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgRU5DT0RFX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgaHR0cFN0YXR1c1RleHQsIHJlc3BvbnNl
Lmh0dHBTdGF0dXNUZXh0KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRh
LCBIVFRQSGVhZGVyTWFwLCBodHRwSGVhZGVycywgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygp
KTsKKyAgICBFTkNPREVfT1BUSU9OQUxfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgUmVzb3Vy
Y2VMb2FkVGltaW5nLCBsb2FkVGltaW5nLCByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
ZGVlcENvcHkoKSwgcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOworCisgICAgcmV0dXJu
IGVuY29kZWREYXRhOworfQorCitib29sIEVuY29kaW5nVHJhaXRzPFJlc291cmNlUmVzcG9uc2U+
OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8
UmVzb3VyY2VSZXNwb25zZT4mIGRlY29kZWRSZXNwb25zZSkKK3sKKyAgICBERUNPREVfU0NBTEFS
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFVSTCwgdXJsKTsKKyAgICBERUNPREVfU0NBTEFS
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgbWltZVR5cGUpOworICAgIERFQ09E
RV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgbG9uZyBsb25nLCBleHBlY3RlZENv
bnRlbnRMZW5ndGgpOworICAgIERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0
YSwgU3RyaW5nLCB0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgc3VnZ2VzdGVkRmlsZW5hbWUpOworCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlID0gc3RkOjptYWtlX3VuaXF1
ZTxSZXNvdXJjZVJlc3BvbnNlPih1cmwsIG1pbWVUeXBlLCBleHBlY3RlZENvbnRlbnRMZW5ndGgs
IHRleHRFbmNvZGluZ05hbWUsIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKworICAgIERFQ09ERV9TQ0FM
QVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBodHRwU3RhdHVzQ29kZSk7CisgICAg
cmVzcG9uc2UtPnNldEhUVFBTdGF0dXNDb2RlKGh0dHBTdGF0dXNDb2RlKTsKKworICAgIERFQ09E
RV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCBodHRwU3RhdHVzVGV4
dCk7CisgICAgcmVzcG9uc2UtPnNldEhUVFBTdGF0dXNUZXh0KGh0dHBTdGF0dXNUZXh0KTsKKwor
ICAgIERFQ09ERV9PV05FRF9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBIVFRQSGVhZGVyTWFw
LCBodHRwSGVhZGVycyk7CisgICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZVBhaXIgOiAqaHR0
cEhlYWRlcnMpCisgICAgICAgIHJlc3BvbnNlLT5zZXRIVFRQSGVhZGVyRmllbGQoa2V5VmFsdWVQ
YWlyLmtleSwga2V5VmFsdWVQYWlyLnZhbHVlKTsKKworICAgIERFQ09ERV9PUFRJT05BTF9SRUZD
T1VOVEVEX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFJlc291cmNlTG9hZFRpbWluZywgbG9h
ZFRpbWluZyk7CisgICAgaWYgKGxvYWRUaW1pbmdXYXNEZWNvZGVkKQorICAgICAgICByZXNwb25z
ZS0+c2V0UmVzb3VyY2VMb2FkVGltaW5nKGxvYWRUaW1pbmcpOworCisgICAgZGVjb2RlZFJlc3Bv
bnNlID0gc3RkOjptb3ZlKHJlc3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogRW5jb2Rl
ZFZhbHVlIEVuY29kaW5nVHJhaXRzPFNlY3VyaXR5T3JpZ2luPjo6ZW5jb2RlVmFsdWUoUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBpbnB1dCkKIHsKICAgICByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVh
dGVTdHJpbmcoaW5wdXQtPnRvU3RyaW5nKCkpOwpAQCAtMjY0LDYgKzQ4MiwyMSBAQCBib29sIEVu
Y29kaW5nVHJhaXRzPFNlY3VyaXR5T3JpZ2luPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBl
bmNvZGVkVmFsdWUsIFJlZgogICAgIHJldHVybiB0cnVlOwogfQogCitFbmNvZGVkVmFsdWUgRW5j
b2RpbmdUcmFpdHM8U2hhcmVkQnVmZmVyPjo6ZW5jb2RlVmFsdWUoUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYnVmZmVyKQoreworICAgIHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZyhiYXNl
NjRFbmNvZGUoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7Cit9CisKK2Jvb2wgRW5j
b2RpbmdUcmFpdHM8U2hhcmVkQnVmZmVyPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNv
ZGVkQnVmZmVyLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgZGVjb2RlZEJ1ZmZlcikKK3sKKyAgICBW
ZWN0b3I8Y2hhciwgMD4gZGF0YTsKKyAgICBpZiAoIWJhc2U2NERlY29kZShlbmNvZGVkQnVmZmVy
LmNvbnZlcnRUbzxTdHJpbmc+KCksIGRhdGEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBkZWNvZGVkQnVmZmVyID0gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihkYXRhKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFVSTD46OmVuY29k
ZVZhbHVlKGNvbnN0IFVSTCYgaW5wdXQpCiB7CiAgICAgcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3Jl
YXRlU3RyaW5nKGlucHV0LnN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Nlcmlh
bGl6YXRpb25NZXRob2RzLmgKaW5kZXggN2FmYTIzMmI2MjZkYTBkYTUwNDQxODFhYmY1MmY5NTI3
ZDk3MDVlYi4uMjE2NmU3NTljM2IwNzRmZmM4NWZlNTRjNjFiMzAxZTQxYjVjNTU4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKQEAgLTM3LDIwICsz
NywzOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFt
ZTsKK2NsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OworY2xhc3MgUmVzb3VyY2VFcnJv
cjsKK2NsYXNzIFJlc291cmNlTG9hZFRpbWluZzsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBj
bGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFVSTDsKIAog
I2lmIFVTRShBUFBLSVQpCiBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogI2VuZGlmCisKK2ludCBm
cmFtZUluZGV4RnJvbURvY3VtZW50KGNvbnN0IERvY3VtZW50Kik7CitpbnQgZnJhbWVJbmRleEZy
b21GcmFtZShjb25zdCBGcmFtZSopOworRG9jdW1lbnQqIGRvY3VtZW50RnJvbUZyYW1lSW5kZXgo
UGFnZSosIGludCBmcmFtZUluZGV4KTsKK0ZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2Uq
LCBpbnQgZnJhbWVJbmRleCk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogLy8gVGVtcGxh
dGUgc3BlY2lhbGl6YXRpb25zIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2Ug
YXMgdGhlIHRlbXBsYXRlIGRlY2xhcmF0aW9uLgogbmFtZXNwYWNlIEpTQyB7CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OkhUVFBIZWFkZXJNYXA+IHsKKyAgICB0
eXBlZGVmIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0aWMg
RW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIHZh
bHVlKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SFRUUEhlYWRlck1hcD4mIHZhbHVlKTsKK307CisKICNpZiBVU0Uo
QVBQS0lUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiB7CiAgICAgdHlwZWRlZiBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgRGVjb2Rl
ZFR5cGU7CkBAIC04OCw2ICsxMDYsMjcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFp
dHM8V2ViQ29yZTo6VVJMPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZh
bHVlJiwgV2ViQ29yZTo6VVJMJiB2YWx1ZSk7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNv
ZGluZ1RyYWl0czxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiB7CisgICAgdHlwZWRlZiBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIERlY29kZWRUeXBlOworCisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBl
bmNvZGVWYWx1ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiB2YWx1ZSk7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+JiB2YWx1ZSk7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNv
ZGluZ1RyYWl0czxXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc+IHsKKyAgICB0eXBlZGVmIFJl
ZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc+IERlY29kZWRUeXBlOworCisgICAgc3Rh
dGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nPiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVl
JiwgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZz4mIHZhbHVlKTsKK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U+
IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgRGVjb2RlZFR5cGU7CisK
KyAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVk
VmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZT4mIHZhbHVl
KTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
IERlY29kZWRUeXBlOwogCkBAIC05NSw2ICsxMzQsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW5j
b2RpbmdUcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiB2YWx1ZSk7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IHsKKyAgICB0eXBlZGVmIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+IERlY29kZWRUeXBlOworCisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIHZh
bHVlKTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
RVBMQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24g
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KaW5kZXggZTI0ZmQ5YmE0ODgw
YzAyMzU2OTJlNzNhNjg1NDE5YTRjNjljNjE5ZS4uNWVkN2I5ODAwOWQ2ZmY5NzUzOWExNGRkNGEz
OGRmNzljMDQwMDI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0
cy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgpAQCAtNjMs
MTAgKzYzLDIyIEBACiAgICAgICAgICAgICAgICAgImhlYWRlciI6ICJwbGF0Zm9ybS9QbGF0Zm9y
bU1vdXNlRXZlbnQuaCIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAiUmVzb3VyY2VFcnJvciIsICJtb2RlIjogIk9XTkVEIiwKKyAgICAgICAg
ICAgICAgICAiaGVhZGVyIjogInBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvci5oIgorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJSZXNv
dXJjZVJlc3BvbnNlIiwgIm1vZGUiOiAiT1dORUQiLAorICAgICAgICAgICAgICAgICJoZWFkZXIi
OiAicGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlLmgiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIlNlY3VyaXR5T3JpZ2luIiwg
Im1vZGUiOiAiU0hBUkVEIiwKICAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBhZ2UvU2VjdXJp
dHlPcmlnaW4uaCIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiU2hhcmVkQnVmZmVyIiwgIm1vZGUiOiAiU0hBUkVEIiwKKyAgICAgICAgICAg
ICAgICAiaGVhZGVyIjogInBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJUeXBlIiwgIm1vZGUiOiAi
U0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDhfdCIsCiAgICAgICAgICAgICAgICAgImVuY2xvc2lu
Z19jbGFzcyI6ICJQbGF0Zm9ybUV2ZW50IiwKICAgICAgICAgICAgICAgICAiZmxhZ3MiOiBbIkVO
VU0iXSwKQEAgLTE1NSw2ICsxNjcsNTggQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVy
bCIsICJ0eXBlIjogIlVSTCIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlZmVycmVy
IiwgInR5cGUiOiAiU3RyaW5nIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogIlJlc291cmNlTG9hZGVyRGlkRmFpbCIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQSByZXNvdXJjZSBsb2FkZXIgZmFpbGVkIHRvIGxvYWQgaXRz
IHJlc291cmNlLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAg
ICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkZW50aWZpZXIi
LCAidHlwZSI6ICJ1bnNpZ25lZCBsb25nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZnJhbWVJbmRleCIsICJ0eXBlIjogImludCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVycm9yIiwgInR5cGUiOiAiUmVzb3VyY2VFcnJvciIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZUxvYWRlckRpZEZp
bmlzaExvYWRpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgcmVzb3VyY2UgbG9h
ZGVyIGZpbmlzaGVkIHJlY2VpdmluZyBhIHJlc291cmNlLiIsCisgICAgICAgICAgICAicXVldWUi
OiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlkZW50aWZpZXIiLCAidHlwZSI6ICJ1bnNpZ25lZCBsb25nIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJbmRleCIsICJ0eXBlIjogImludCIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZpbmlzaFRpbWUiLCAidHlwZSI6ICJkb3VibGUiIH0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAiUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2UiLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkEgcmVzb3VyY2UgbG9hZGVyIHJlY2VpdmVkIGFuIGluaXRpYWwgcmVzcG9uc2Uu
IiwKKyAgICAgICAgICAgICJxdWV1ZSI6ICJFVkVOVF9MT09QIiwKKyAgICAgICAgICAgICJtZW1i
ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRlbnRpZmllciIsICJ0eXBlIjog
InVuc2lnbmVkIGxvbmciIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUluZGV4
IiwgInR5cGUiOiAiaW50IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2Ui
LCAidHlwZSI6ICJSZXNvdXJjZVJlc3BvbnNlIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIlJlc291cmNlTG9hZGVyRGlkU2VuZERh
dGEiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgcmVzb3VyY2UgbG9hZGVyIHNlbnQg
c29tZSBkYXRhLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAg
ICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkZW50aWZpZXIi
LCAidHlwZSI6ICJ1bnNpZ25lZCBsb25nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZnJhbWVJbmRleCIsICJ0eXBlIjogImludCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImJ5dGVzU2VudCIsICJ0eXBlIjogInVuc2lnbmVkIGxvbmcgbG9uZyIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInRvdGFsQnl0ZXNUb0JlU2VudCIsICJ0eXBlIjogInVuc2lnbmVkIGxv
bmcgbG9uZyIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJSZXNvdXJjZUxvYWRlckRpZFJlY2VpdmVEYXRhIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJBIHJlc291cmNlIGxvYWRlciByZWNlaXZlZCBzb21lIGRhdGEuIiwK
KyAgICAgICAgICAgICJxdWV1ZSI6ICJFVkVOVF9MT09QIiwKKyAgICAgICAgICAgICJtZW1iZXJz
IjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRlbnRpZmllciIsICJ0eXBlIjogInVu
c2lnbmVkIGxvbmciIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUluZGV4Iiwg
InR5cGUiOiAiaW50IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnVmZmVyIiwgInR5
cGUiOiAiU2hhcmVkQnVmZmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5jb2Rl
ZExlbmd0aCIsICJ0eXBlIjogImludCIgfQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAg
XQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBhNWZjZjc0NGYwZGEwZWI3MDU4
NWNmOWQ3OGIzMTE1NDkzZGFhNTY5Li43ZWRlMGJjNzc0YzMzYjY3ZWFkMmZlNGY2NGQwMmYyMWM1
ZGI0ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNTIsNiArNTIsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisjaW5jbHVkZSA8cmVwbGF5
L0lucHV0Q3Vyc29yLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTAzLDYgKzEwNywxMiBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJj
ZUxvYWRlciwgQ2FjaAogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisg
ICAgaWYgKElucHV0Q3Vyc29yKiBjdXJzb3IgPSByZXNvdXJjZUxvYWRlci0+YWN0aXZlSW5wdXRD
dXJzb3IoKSkKKyAgICAgICAgaWYgKGN1cnNvci0+aXNSZXBsYXlpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyNlbmRpZgorCiAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxs
IGJlIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICVpIiwg
cmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHByaW9yaXR5KTsK
IAogICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgPSByZXNv
dXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05vdFNu
aWZmQ29udGVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228152</attachid>
            <date>2014-03-30 22:59:28 -0700</date>
            <delta_ts>2015-08-05 09:57:35 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129391-20140330225847.patch</filename>
            <type>text/plain</type>
            <size>53283</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZjZkZmViZDMwZGI1ZWRmZGRlOTc3YzQzMDY0Y2I0YmVhM2U4ZWFkLi5iZGI3NzA3ZjQxMWUyNDJh
NDFjZjczZjhmMzVmMDNmOTJkYjdkMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNC0wMy0yOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgUmVwbGF5OiBjYXB0dXJlIGFuZCByZXBsYXkgUmVzb3VyY2VMb2FkZXIgY2Fs
bGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjkzOTEKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGVuY29kaW5nIGFuZCBkZWNvZGluZyB1bnNpZ25lZCBsb25nIHZhbHVl
cywgd2hpY2ggaGF2ZQorICAgICAgICBhIGRpc3RpbmN0IHR5cGUgZnJvbSB1aW50MzJfdCBhbmQg
dWludDY0X3QuCisKKyAgICAgICAgKiByZXBsYXkvRW5jb2RlZFZhbHVlLmNwcDoKKyAgICAgICAg
KEpTQzo6RW5jb2RlZFZhbHVlOjpjb252ZXJ0VG88dWludDY0X3Q+KToKKyAgICAgICAgKEpTQzo6
bG9uZz4pOgorICAgICAgICAqIHJlcGxheS9FbmNvZGVkVmFsdWUuaDoKKwogMjAxNC0wMy0yOCAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgbWFuZHJlZWwgdGhyb3dz
IGEgY2hlY2tzdW0gZXJyb3Igb24gMzItYml0IHg4Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNDc3MjIzYTQ1
NDIxNGI5MmMzNmZjYjIyYWRjOTE1MTVmOGNiYTNlLi44MDVlMmE4Y2NiYTgwYzYwMTYyY2RhMjQ5
YWRiN2Y5NWVjNmEwMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMTQtMDMtMjkg
IEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIFJlcGxheTogY2Fw
dHVyZSBhbmQgcmVwbGF5IFJlc291cmNlTG9hZGVyIGNhbGxiYWNrcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MzkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgIE91ciBhcHByb2FjaCB0byBlbnN1cmlu
ZyBkZXRlcm1pbmlzdGljIHBhZ2UgbG9hZGluZyBpcyB0byBjYXB0dXJlIHJlc291cmNlIGxvYWRl
cgorICAgICAgICBjYWxsYmFja3MgZHVyaW5nIGNhcHR1cmluZywgYW5kIHRoZW4gbWFudWFsbHkg
aW52b2tlIGxvYWRlciBjYWxsYmFja3MgZHVyaW5nIHJlcGxheQorICAgICAgICBpbiBsaWV1IG9m
IHVzaW5nIHRoZSByZXNvdXJjZSBsb2FkZXIgc2NoZWR1bGVyLgorCisgICAgICAgIENhbGxiYWNr
cyBhcmUgdGFwcGVkIGluc2lkZSBTdWJyZXNvdXJjZUxvYWRlciBiZWZvcmUgZG9pbmcgbW9yZSB3
b3JrIGluc2lkZSBXZWJDb3JlLgorICAgICAgICBXaGVuIHJlcGxheWluZywgd2UgYWxsb3cgbG9h
ZGVycyB0byBiZSBpbml0aWFsaXplZCwgYnV0IG5ldmVyIGFjdHVhbGx5IHNjaGVkdWxlIHRoZW0u
CisKKyAgICAgICAgVG8gYWRkcmVzcyByZXNvdXJjZSBsb2FkZXJzIGRldGVybWluaXN0aWNhbGx5
LCB3ZSBzYXZlIHRoZSBvcmRpbmFsIG9mIHJlc291cmNlIGxvYWRlcnMtCisgICAgICAgIHRoYXQg
aXMsIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgbG9hZGVyIHdhcyBjcmVhdGVkIHdpdGggcmVzcGVj
dCB0byBvdGhlciBsb2FkZXJzIHdpdGhpbgorICAgICAgICB0aGUgc2FtZSBmcmFtZSB0cmVlIHJv
b3RlZCBieSB0aGUgbWFpbiBmcmFtZS4gVG8gbWFwIGJldHdlZW4gbG9hZGVycycgb3JkaW5hbHMg
YW5kIHVuaXF1ZQorICAgICAgICBpZGVudGlmaWVycywgdGhlIG1haW4gZnJhbWUncyBhY3RpdmUg
ZG9jdW1lbnQgbG9hZGVyIHJlY29yZHMgYSB2ZWN0b3Igb2YgaWRlbnRpZmllcnMgYXMKKyAgICAg
ICAgdGhleSBhcmUgdmVuZGVkIHRvIGxvYWRlcnMgd2l0aGluIHRoZSBmcmFtZSB0cmVlLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4gQmFzaWMgZnVuY3Rpb25hbGl0eSBpcyBjb3ZlcmVkIGJ5IGV4
aXN0aW5nIHJlcGxheSByZWZ0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6bG9hZGVyRm9ySWRlbnRpZmllcik6IEFkZGVkLiBUaGlzIG1ldGhvZCBpcyB1
c2VkIGR1cmluZworICAgICAgICBwbGF5YmFjayB0byBmaW5kIHRoZSBhcHByb3ByaWF0ZSByZXNv
dXJjZSBsb2FkZXIgdG8gZGlzcGF0Y2ggYSBjYWxsYmFjayB0by4KKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaDogQWRkIGEgbGlzdCBvZiB1c2VkSWRlbnRpZmllcnMgZm9yIG1hcHBp
bmcgbG9hZGVyIG9yZGluYWxzLgorCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVk
dWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNlcnZl
UGVuZGluZ1JlcXVlc3RzKTogSWYgcmVwbGF5aW5nLCBkb24ndCBhY3R1YWxseQorICAgICAgICBz
Y2hlZHVsZSB0aGUgcmVzb3VyY2UgbG9hZGVyLiBIb3dldmVyLCB3ZSBzdGlsbCB3YW50IHRvIGRl
cXVldWUgaXQgZnJvbSBwZW5kaW5nCisgICAgICAgIHJlcXVlc3RzIGFuZCBhbGxvdyBpdCB0byBj
b3VudCB0b3dhcmRzIHJlc291cmNlIGxvYWRpbmcgbWV0cmljcy4KKworICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
YWN0aXZlSW5wdXRDdXJzb3IpOiBBZGRlZC4gVGhpcyBtZXRob2QgZmlndXJlcyBvdXQgd2hpY2gK
KyAgICAgICAgaW5wdXQgY3Vyc29yIHNob3VsZCBiZSBjb25zaWRlcmVkICJhY3RpdmUiIGZvciB0
aGlzIHJlc291cmNlIGxvYWRlci4gSXQgd2lsbCB0cnkgdG8gdXNlCisgICAgICAgIHRoZSBpbnB1
dCBjdXJzb3IgZm9yIHRoZSBkb2N1bWVudCwgb3IgdGhlIHBhZ2UncyBjdXJzb3IgaWYgdGhlIHJl
c291cmNlIGlzIHBhcnQgb2YgYQorICAgICAgICBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkLgor
CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmNwcDogQWRkIGluc3RydW1lbnRhdGlvbiBob29rcyB0aGF0IGNyZWF0
ZSBpbnB1dHMgZm9yCisgICAgICAgIGVhY2ggcmVzb3VyY2UgbG9hZGVyIGNhbGxiYWNrIHdoZW4g
Y2FwdHVyaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkU2Vu
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGFPckJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlk
RmFpbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yQmFzZTo6b3duZWRDb3B5KTogQWRkZWQg
aGVscGVyIG1ldGhvZC4gSXQgZG9lcyBub3QgbmVlZCB0byBjb3B5CisgICAgICAgIHBsYXRmb3Jt
IGRhdGEgdW5sZXNzIGl0IChpbmRpcmVjdGx5KSBhZmZlY3RzIHRoZSB3ZWIgcGFnZSdzIGRldGVy
bWluaXN0aWMgZXhlY3V0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VF
cnJvckJhc2UuaDoKKworICAgICAgICAqIHJlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9k
cy5jcHA6IEFkZCBkaXNwYXRjaCBtZXRob2RzIGZvciB0aGUgbW9zdCBpbXBvcnRhbnQKKyAgICAg
ICAgcmVzb3VyY2UgbG9hZGVyIGNhbGxiYWNrcy4gTW9yZSBjb3VsZCBiZSBzdXBwb3J0ZWQsIGJ1
dCB0aGVzZSBjb3ZlciBtb3N0IGNhc2VzLgorICAgICAgICAoV2ViQ29yZTo6cmVzb3VyY2VMb2Fk
ZXJGb3JPcmRpbmFsKTogQWRkZWQgaGVscGVyIG1ldGhvZCB0byBkaWcgb3V0IGEgcmVzb3VyY2Ug
bG9hZGVyCisgICAgICAgIGZyb20gYSBmcmFtZSdzIGRvY3VtZW50IGxvYWRlciBnaXZlbiBhIHJl
c291cmNlIGxvYWRlciBvcmRpbmFsIGFuZCBmcmFtZSBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyRGlkRmFpbDo6ZGlzcGF0Y2gpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyRGlkRmluaXNoTG9hZGluZzo6ZGlzcGF0Y2gpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyRGlkUmVjZWl2ZURhdGE6OmRpc3BhdGNoKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlckRpZFJlY2VpdmVSZXNwb25z
ZTo6ZGlzcGF0Y2gpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyRGlk
U2VuZERhdGE6OmRpc3BhdGNoKTogQWRkZWQuCisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRp
b25NZXRob2RzLmNwcDogQWRkIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gc2VyaWFsaXplIGFuZCBk
ZXNlcmlhbGl6ZQorICAgICAgICBmcmFtZXMgYW5kIGRvY3VtZW50cy4gQWRkIG1hbnkgZW5jb2Rl
L2RlY29kZSBtZXRob2RzIGZvciByZXNvdXJjZSBsb2FkZXIgY2FsbGJhY2sgaW5wdXRzLgorICAg
ICAgICBSZWFycmFuZ2Ugc29tZSBvZiB0aGUgc2hvcnRlbmluZyBtYWNyb3Mgc28gdGhhdCBsZXNz
IGNvZGUgaXMgZHVwbGljYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lSW5kZXhGcm9tRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJbmRleEZyb21GcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpkb2N1bWVudEZyb21GcmFtZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OmZy
YW1lRnJvbUZyYW1lSW5kZXgpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxIVFRQSGVh
ZGVyTWFwPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxIVFRQ
SGVhZGVyTWFwPjo6ZGVjb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxO
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpF
bmNvZGluZ1RyYWl0czxLZXlwcmVzc0NvbW1hbmQ+OjplbmNvZGVWYWx1ZSk6CisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD46OmVuY29kZVZhbHVlKToK
KyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1Nb3VzZUV2ZW50Pjo6ZW5jb2Rl
VmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVycm9yPjo6ZW5j
b2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVycm9yPjo6
ZGVjb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUxvYWRU
aW1pbmc+OjplbmNvZGVWYWx1ZSk6CisgICAgICAgIChKU0M6OkVuY29kaW5nVHJhaXRzPFJlc291
cmNlTG9hZFRpbWluZz46OmRlY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFp
dHM8UmVzb3VyY2VSZXNwb25zZT46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2Rp
bmdUcmFpdHM8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6
RW5jb2RpbmdUcmFpdHM8U2hhcmVkQnVmZmVyPjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlND
OjpFbmNvZGluZ1RyYWl0czxTaGFyZWRCdWZmZXI+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgICog
cmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmg6CisgICAgICAgICogcmVwbGF5L1dlYklucHV0
cy5qc29uOgorCiAyMDE0LTAzLTI4ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vdmUgY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIGZyb20gUHJvZ3Jlc3NUcmFja2Vy
IHRvIERvY3VtZW50TG9hZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzE1MDE0ZGJiZDk1MTVmZmZmNGRiNmY5
NzdmYzJlNTY2YTQ2ODcyNC4uMDU4ZmYxNjhiZmZlZDU2NmMzYzk3MjgxYTZmNzllOTMxMmRhOTFh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAzLTI5ICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IGNhcHR1cmUgYW5kIHJlcGxh
eSBSZXNvdXJjZUxvYWRlciBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTM5MQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KKworICAgICAgICBEdXJpbmcgcGxheWJhY2ssIGRvbid0IHNjaGVkdWxlIHJlc291
cmNlIGxvYWRlcnMuIFRoaXMgcHJldmVudHMgdGhlIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGZy
b20gdGFraW5nIG92ZXIgYW5kIGZ1bGZpbGxpbmcgdGhlIGxvYWRzIG5vbmRldGVybWluaXN0aWNh
bGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2No
ZWR1bGVMb2FkKToKKwogMjAxNC0wMy0yOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFVuY2F1Z2h0IE5TRXhjZXB0aW9ucyBzaG91bGQgY3Jhc2ggdGhl
IHdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0Vu
Y29kZWRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1
ZS5jcHAKaW5kZXggNGM4MGJkMmU4NTM1YWU4MTA1NGJjMzE4YzVmMmZhNTM2ZjAyOTE0OC4uMDE5
MWQ0MTQ4ZWZiZjRkZmY5NjYzY2NkOTllNmFjNjE1MjVjM2NjMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmNwcApAQCAtMTU4LDYgKzE1OCwxNSBAQCB0
ZW1wbGF0ZTw+IHVpbnQ2NF90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPHVpbnQ2NF90PigpCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8PiB1bnNpZ25lZCBsb25nIEVuY29kZWRW
YWx1ZTo6Y29udmVydFRvPHVuc2lnbmVkIGxvbmc+KCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHJl
c3VsdDsKKyAgICBib29sIGNhc3RTdWNjZWVkZWQgPSBtX3ZhbHVlLT5hc051bWJlcigmcmVzdWx0
KTsKKyAgICBBU1NFUlRfVU5VU0VEKGNhc3RTdWNjZWVkZWQsIGNhc3RTdWNjZWVkZWQpOworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdGVtcGxhdGU8PiBTdHJpbmcgRW5jb2RlZFZhbHVlOjpj
b252ZXJ0VG88U3RyaW5nPigpCiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5oCmluZGV4IGZjNzRmMTM1M2UyMDY3MGZhZTg4
MDJjZDY0MDBjZmQ2ZWM3NDM2MGYuLmYxNDc3YWE1MzVhZWZiMzA5MmJjMDVmYjM1NDI4NmMxZmFm
ZmZiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZh
bHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaApA
QCAtOTIsMTMgKzkyLDEzIEBAIHRlbXBsYXRlPD4gSlNfRVhQT1JUX1BSSVZBVEUgaW50MzJfdCBF
bmNvZGVkVmFsdWU6OmNvbnZlcnRUbzxpbnQzMl90PigpOwogdGVtcGxhdGU8PiBKU19FWFBPUlRf
UFJJVkFURSBpbnQ2NF90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRvPGludDY0X3Q+KCk7CiB0ZW1w
bGF0ZTw+IEpTX0VYUE9SVF9QUklWQVRFIHVpbnQzMl90IEVuY29kZWRWYWx1ZTo6Y29udmVydFRv
PHVpbnQzMl90PigpOwogdGVtcGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSB1aW50NjRfdCBFbmNv
ZGVkVmFsdWU6OmNvbnZlcnRUbzx1aW50NjRfdD4oKTsKK3RlbXBsYXRlPD4gSlNfRVhQT1JUX1BS
SVZBVEUgdW5zaWduZWQgbG9uZyBFbmNvZGVkVmFsdWU6OmNvbnZlcnRUbzx1bnNpZ25lZCBsb25n
PigpOwogdGVtcGxhdGU8PiBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgRW5jb2RlZFZhbHVlOjpj
b252ZXJ0VG88U3RyaW5nPigpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IEVuY29k
aW5nVHJhaXRzIHsKICAgICB0eXBlZGVmIFQgRGVjb2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5j
b2RlZFZhbHVlIGVuY29kZVZhbHVlKERlY29kZWRUeXBlKTsKICAgICBzdGF0aWMgRW5jb2RlZFZh
bHVlIGVuY29kZVZhbHVlKGNvbnN0IERlY29kZWRUeXBlJik7CiAKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBEZWNvZGVkVHlwZSYpOwpAQCAtMTU2LDYgKzE1Niw3
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPGludDMyX3Q+IDogcHVibGljIFNj
YWxhckVuY29kaW5nVHJhaXRzPGludDMyX3Q+CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1Ry
YWl0czxpbnQ2NF90PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czxpbnQ2NF90PiB7IH07
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czx1aW50MzJfdD4gOiBwdWJsaWMgU2Nh
bGFyRW5jb2RpbmdUcmFpdHM8dWludDMyX3Q+IHsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEVuY29k
aW5nVHJhaXRzPHVpbnQ2NF90PiA6IHB1YmxpYyBTY2FsYXJFbmNvZGluZ1RyYWl0czx1aW50NjRf
dD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4g
OiBwdWJsaWMgU2NhbGFyRW5jb2RpbmdUcmFpdHM8dW5zaWduZWQgbG9uZz4geyB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxTdHJpbmc+IDogcHVibGljIFNjYWxhckVuY29k
aW5nVHJhaXRzPFN0cmluZz4gewogICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5jb2RlVmFsdWUo
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDlmMWYxZGMxOTlk
MGM5MTYxYzhhZTdmYjA2MTEyMjc0NjZkYmVlZS4uY2I0N2YwOWM0ZTJkYzdlZmY2M2I5M2I3NjAx
YTFmMjFhOGFlNjc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMyOTYsMyArMzI5Niw3IEBA
IF9fWk43V2ViQ29yZTlQYWdlR3JvdXAxOGNhcHRpb25QcmVmZXJlbmNlc0V2CiAjaWYgRU5BQkxF
KFZJRVdfTU9ERV9DU1NfTUVESUEpCiBfX1pON1dlYkNvcmU0UGFnZTExc2V0Vmlld01vZGVFTlMw
XzhWaWV3TW9kZUUKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCitfX1pOSzdXZWJD
b3JlMTRSZXNvdXJjZUxvYWRlcjE3YWN0aXZlSW5wdXRDdXJzb3JFdgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBlOGVjOTY0MjI1NmM0OGFhYjU3
ODNhMDcwNTBhZjBiZGQ4NTM2NzNkLi5mZGQ3YmM5MGYzZjQ2MmViYTg4Y2RmODhhMzVhMDk0Zjhk
NGRlMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTc1
LDYgKzc1LDEwIEBACiAjaW5jbHVkZSAiQ29udGVudEZpbHRlci5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoV0VCX1JFUExBWSkKKyNpbmNsdWRlIDxyZXBsYXkvSW5wdXRDdXJzb3IuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB2b2lkIGNhbmNlbEFsbChjb25zdCBS
ZXNvdXJjZUxvYWRlck1hcCYgbG9hZGVycykKQEAgLTEzMzQsNyArMTMzOCwxNCBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ1N1YnJlc291cmNlcygpCiB1bnNpZ25lZCBsb25nIERv
Y3VtZW50TG9hZGVyOjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkKIHsKICAgICBBU1NFUlQoZnJh
bWUoKSAmJiBmcmFtZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRl
cigpID09IHRoaXMpOwotICAgIHJldHVybiArK3NfdW5pcXVlSWRlbnRpZmllcjsKKworICAgIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciA9ICsrc191bmlxdWVJZGVudGlmaWVyOworI2lmIEVOQUJM
RShXRUJfUkVQTEFZKQorICAgIG1fdXNlZElkZW50aWZpZXJzLmFwcGVuZChpZGVudGlmaWVyKTsK
KyAgICBMT0coV2ViUmVwbGF5LCAiKERvY3VtZW50TG9hZGVyICVwKSBBcHBlbmRpbmcgcmVzb3Vy
Y2UgbG9hZCBpZGVudGlmaWVyICU0bHUgKG9yZGluYWw6ICU0bHUpIGZvciBtYWluIGZyYW1lICVz
IiwgdGhpcywgaWRlbnRpZmllciwgbV91c2VkSWRlbnRpZmllcnMuc2l6ZSgpIC0gMSwgdXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBpZGVudGlmaWVy
OwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJj
ZUxvYWRlciogbG9hZGVyKQpAQCAtMTYwNCw0ICsxNjE1LDMxIEBAIGJvb2wgRG9jdW1lbnRMb2Fk
ZXI6OmhhbmRsZUNvbnRlbnRGaWx0ZXJSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCitjb25zdCBWZWN0b3I8
dW5zaWduZWQgbG9uZz4mIERvY3VtZW50TG9hZGVyOjp1c2VkSWRlbnRpZmllcnMoKQoreworICAg
IEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCkgPT0gdGhpcyk7CisKKyAgICByZXR1cm4gbV91c2VkSWRlbnRpZmllcnM7
Cit9CisKK1Bhc3NSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IERvY3VtZW50TG9hZGVyOjpsb2FkZXJG
b3JJZGVudGlmaWVyKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZvdW5k
U3VicmVzb3VyY2VMb2FkZXIgPSBtX3N1YnJlc291cmNlTG9hZGVycy5maW5kKGlkZW50aWZpZXIp
OworICAgIGlmIChmb3VuZFN1YnJlc291cmNlTG9hZGVyICE9IG1fc3VicmVzb3VyY2VMb2FkZXJz
LmVuZCgpKQorICAgICAgICByZXR1cm4gZm91bmRTdWJyZXNvdXJjZUxvYWRlci0+dmFsdWU7CisK
KyAgICBhdXRvIGZvdW5kTXVsdGlwYXJ0TG9hZGVyID0gbV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxv
YWRlcnMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoZm91bmRNdWx0aXBhcnRMb2FkZXIgIT0g
bV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMuZW5kKCkpCisgICAgICAgIHJldHVybiBmb3Vu
ZE11bHRpcGFydExvYWRlci0+dmFsdWU7CisKKyAgICBhdXRvIGZvdW5kUGx1Z2luU3RyZWFtTG9h
ZGVyID0gbV9wbHVnSW5TdHJlYW1Mb2FkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGZv
dW5kUGx1Z2luU3RyZWFtTG9hZGVyICE9IG1fcGx1Z0luU3RyZWFtTG9hZGVycy5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIGZvdW5kUGx1Z2luU3RyZWFtTG9hZGVyLT52YWx1ZTsKKworICAgIEFTU0VS
VChpc0xvYWRpbmdNYWluUmVzb3VyY2UoKSAmJiBtYWluUmVzb3VyY2VMb2FkZXIoKS0+aWRlbnRp
ZmllcigpID09IGlkZW50aWZpZXIpOworICAgIHJldHVybiBtYWluUmVzb3VyY2VMb2FkZXIoKTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCAwYjE5YWRiMzQ1NWEw
NDdmYTY1YTk4MGExYzNkY2RmZjdjYzI3ZjQ4Li5iM2M0ZTM2NmI3NjcxM2YwOGE0N2YzMzIzYjdm
NGM1NGVlMmQzOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAt
MjM0LDYgKzIzNCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRkUGx1
Z0luU3RyZWFtTG9hZGVyKFJlc291cmNlTG9hZGVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlUGx1
Z0luU3RyZWFtTG9hZGVyKFJlc291cmNlTG9hZGVyKik7CiAKKyNpZiBFTkFCTEUoV0VCX1JFUExB
WSkKKyAgICAgICAgY29uc3QgVmVjdG9yPHVuc2lnbmVkIGxvbmc+JiB1c2VkSWRlbnRpZmllcnMo
KTsKKyAgICAgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRlcj4gbG9hZGVyRm9ySWRlbnRpZmll
cih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworI2VuZGlmCiAgICAgICAgIHZvaWQgc3VicmVz
b3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNlTG9hZGVyKik7CiAKICAg
ICAgICAgdm9pZCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGJvb2wgZGVmZXIpIHsgbV9k
ZWZlck1haW5SZXNvdXJjZURhdGFMb2FkID0gZGVmZXI7IH0KQEAgLTQyOCw2ICs0MzIsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8Q29udGVudEZpbHRlcj4gbV9jb250
ZW50RmlsdGVyOwogICAgICAgICBSZWZQdHI8Q29udGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVy
Rm9yQmxvY2tlZExvYWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgICAg
ICBWZWN0b3I8dW5zaWduZWQgbG9uZz4gbV91c2VkSWRlbnRpZmllcnM7CisjZW5kaWYKICAgICB9
OwogCiAgICAgaW5saW5lIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlY29yZE1lbW9yeUNhY2hlTG9h
ZEZvckZ1dHVyZUNsaWVudE5vdGlmaWNhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CmluZGV4IDk5NmE4MDFjMDZlMWU2ZGRlYjY3Yzc1ZmM5OTk3NTViOWNlNGM1MjMuLmFiOGFiMmUx
YjM4YjRkN2U1NTA0ZGE5MDdjYjM3OWI0MTIzYzczOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0yNzgsNiArMjc4LDExIEBAIHZv
aWQgUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyhIb3N0SW5mb3Jt
YXRpb24qIGhvc3QsIFJlc291cmNlCiAKICAgICAgICAgICAgIHJlcXVlc3RzUGVuZGluZy5yZW1v
dmVGaXJzdCgpOwogICAgICAgICAgICAgaG9zdC0+YWRkTG9hZEluUHJvZ3Jlc3MocmVzb3VyY2VM
b2FkZXIuZ2V0KCkpOworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgICAgICAgICAgSW5wdXRD
dXJzb3IqIGN1cnNvciA9IHJlc291cmNlTG9hZGVyLT5hY3RpdmVJbnB1dEN1cnNvcigpOworICAg
ICAgICAgICAgaWYgKGN1cnNvciAmJiBjdXJzb3ItPmlzUmVwbGF5aW5nKCkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICBp
ZiAoIWFwcGxpY2F0aW9uSXNXZWJQcm9jZXNzKCkpIHsKICAgICAgICAgICAgICAgICByZXNvdXJj
ZUxvYWRlci0+c3RhcnRMb2FkaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcAppbmRleCA3MGEwYTljMTIyMDYxOTBlZmQxZmYxM2JiMmJkM2NkZjgwMDY1NWRmLi4z
NjJlOGE1YzVhZmE5ZTk5NTk5OGQ5MDBiODBiM2IwYjJhZTc2OTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUxLDYgKzUxLDExIEBACiAjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCisjaWYgRU5BQkxFKFdFQl9S
RVBMQVkpCisjaW5jbHVkZSAiUmVwbGF5Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPHJlcGxheS9J
bnB1dEN1cnNvci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VM
b2FkZXI6OlJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25z
IG9wdGlvbnMpCkBAIC01ODYsNCArNTkxLDIyIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlY2Vp
dmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKICAgICBjYW5j
ZWwoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorSW5wdXRDdXJzb3IqIFJlc291cmNl
TG9hZGVyOjphY3RpdmVJbnB1dEN1cnNvcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIElucHV0Q3Vyc29yKiBkb2N1bWVudEN1cnNv
ciA9IG1fZnJhbWUtPmRvY3VtZW50KCkgPyAmbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5wdXRDdXJz
b3IoKSA6IG51bGxwdHI7CisgICAgSW5wdXRDdXJzb3IqIHBhZ2VDdXJzb3IgPSBtX2ZyYW1lLT5w
YWdlKCkgPyAmbV9mcmFtZS0+cGFnZSgpLT5yZXBsYXlDb250cm9sbGVyKCkuYWN0aXZlSW5wdXRD
dXJzb3IoKSA6IG51bGxwdHI7CisKKyAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdhdGluZyA9IG1f
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS0+bG9hZGVyKCkuc3RhdGUoKSA9PSBGcmFt
ZVN0YXRlUHJvdmlzaW9uYWw7CisgICAgLy8gVGhpcyBpcyB0cmlja3kuIER1cmluZyB0aGUgaW5p
dGlhbCBjYWxsIHRvIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UoKSwg
dGhlIENhY2hlZFJlc291cmNlCisgICAgLy8gZm9yIHRoZSBtYWluIHJlc291cmNlIGlzIHNjaGVk
dWxlZCBiZWZvcmUgbWFpblJlc291cmNlTG9hZGVyKCkgaXMgc2V0LCBidXQgYWZ0ZXIgaXNMb2Fk
aW5nTWFpblJlc291cmNlKCkgaXMgc2V0LgorICAgIFJlc291cmNlTG9hZGVyKiByZWdpc3RlcmVk
TWFpblJlc291cmNlTG9hZGVyID0gbV9mcmFtZS0+bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCk7CisgICAgYm9vbCBpc0xvYWRlckZvck1haW5SZXNv
dXJjZSA9IHJlZ2lzdGVyZWRNYWluUmVzb3VyY2VMb2FkZXIgPT0gdGhpcyB8fCAoIXJlZ2lzdGVy
ZWRNYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9mcmFtZS0+bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+aXNMb2FkaW5nTWFpblJlc291cmNlKCkpOworICAgIHJldHVybiAoaXNNYWluRnJh
bWVOYXZpZ2F0aW5nICYmIGlzTG9hZGVyRm9yTWFpblJlc291cmNlKSA/IHBhZ2VDdXJzb3IgOiBk
b2N1bWVudEN1cnNvcjsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5oCmluZGV4IDZlYjE2ZWZhNzYyZGUyNGQwMTkxYmRlMzkyMzY1NjI1NmVhYTM1YzUu
LmFiNjU4MDc5ZWYxNzU3ODE1MjY2ODhkODFmZWYyYTIzYTExNjMzYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC00Miw2ICs0MiwxMiBAQAogI2luY2x1ZGUgIlF1
aWNrTG9vay5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JFUExBWSkKK25hbWVzcGFjZSBK
U0MgeworY2xhc3MgSW5wdXRDdXJzb3I7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTE2Myw2ICsxNjksMTAgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UXVpY2tMb29rSGFuZGxlKFBhc3NPd25QdHI8UXVpY2tMb29r
SGFuZGxlPiBoYW5kbGUpIHsgbV9xdWlja0xvb2tIYW5kbGUgPSBoYW5kbGU7IH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgSlNDOjpJbnB1dEN1cnNvciogYWN0aXZlSW5w
dXRDdXJzb3IoKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VMb2Fk
ZXIoRnJhbWUqLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCBmMWZjZWFjYWExNmVkNDM0MzhhYzc0NDRk
NDFjNmFlNGUyMjk5NzExLi4wY2EyNjcxM2E0NmFhMjQyMGNkZjY0ZTJkNjIzYzE2ZGFjYTIxNWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4
LDYgKzQ4LDE0IEBACiAjaW5jbHVkZSA8UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmg+CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorI2luY2x1ZGUgIkNhcHR1cmluZ0lucHV0
Q3Vyc29yLmgiCisjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUmVwbGF5Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNlcmlhbGl6YXRpb25NZXRob2RzLmgiCisjaW5jbHVkZSAiV2Vi
UmVwbGF5SW5wdXRzLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBERUZJTkVf
REVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHN1YnJlc291cmNl
TG9hZGVyQ291bnRlciwgKCJTdWJyZXNvdXJjZUxvYWRlciIpKTsKQEAgLTE4Myw2ICsxOTEsMTMg
QEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25n
IGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZwogewogICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRp
YWxpemVkKTsKICAgICBSZWY8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3QoKnRoaXMpOworCisj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgSW5wdXRDdXJzb3IqIGN1cnNvciA9IGFjdGl2ZUlu
cHV0Q3Vyc29yKCk7CisgICAgaWYgKGN1cnNvciAmJiBjdXJzb3ItPmlzQ2FwdHVyaW5nKCkpCisg
ICAgICAgIGN1cnNvci0+YXBwZW5kSW5wdXQ8UmVzb3VyY2VMb2FkZXJEaWRTZW5kRGF0YT4ob3Jk
aW5hbEZvcklkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZShtX2ZyYW1lLmdldCgpKSwg
Ynl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworI2VuZGlmCisKICAgICBtX3Jlc291cmNl
LT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiB9CiAKQEAgLTE5
NSw2ICsyMTAsMTQgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIC8vIGFueXRoaW5nIGluY2x1
ZGluZyByZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFt
cGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWY8U3VicmVzb3VyY2VMb2FkZXI+IHByb3Rl
Y3QoKnRoaXMpOwogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgSW5wdXRDdXJzb3IqIGN1
cnNvciA9IGFjdGl2ZUlucHV0Q3Vyc29yKCk7CisgICAgaWYgKGN1cnNvciAmJiBjdXJzb3ItPmlz
Q2FwdHVyaW5nKCkpIHsKKyAgICAgICAgT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IG93bmVkUmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlOjphZG9wdChyZXNwb25zZS5jb3B5RGF0YSgpKTsKKyAg
ICAgICAgY3Vyc29yLT5hcHBlbmRJbnB1dDxSZXNvdXJjZUxvYWRlckRpZFJlY2VpdmVSZXNwb25z
ZT4ob3JkaW5hbEZvcklkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZShtX2ZyYW1lLmdl
dCgpKSwgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVzcG9uc2U+KG93bmVkUmVzcG9uc2UubGVh
a1B0cigpKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9yZXNvdXJjZS0+cmVzb3VyY2VU
b1JldmFsaWRhdGUoKSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9
PSAzMDQpIHsKICAgICAgICAgICAgIC8vIDMwNCBOb3QgbW9kaWZpZWQgLyBVc2UgbG9jYWwgY29w
eQpAQCAtMjY2LDcgKzI4OSwxNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIFBhcwogICAgIC8vIGFu
eXRoaW5nIGluY2x1ZGluZyByZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmpl
Y3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWY8U3VicmVzb3VyY2VM
b2FkZXI+IHByb3RlY3QoKnRoaXMpOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9
IHBycEJ1ZmZlcjsKLSAgICAKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIElucHV0Q3Vy
c29yKiBjdXJzb3IgPSBhY3RpdmVJbnB1dEN1cnNvcigpOworICAgIGlmIChjdXJzb3IgJiYgY3Vy
c29yLT5pc0NhcHR1cmluZygpKSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNlcmlh
bGl6ZWRCdWZmZXIgPSBidWZmZXI7CisgICAgICAgIGlmICghc2VyaWFsaXplZEJ1ZmZlcikKKyAg
ICAgICAgICAgIHNlcmlhbGl6ZWRCdWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpOworICAgICAgICBjdXJzb3ItPmFwcGVuZElucHV0PFJlc291cmNlTG9hZGVyRGlkUmVj
ZWl2ZURhdGE+KG9yZGluYWxGb3JJZGVudGlmaWVyKCksIGZyYW1lSW5kZXhGcm9tRnJhbWUobV9m
cmFtZS5nZXQoKSksIHNlcmlhbGl6ZWRCdWZmZXIsIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB9
CisjZW5kaWYKKwogICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGRh
dGEsIGxlbmd0aCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsK
IAogICAgIGlmICghbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewpAQCAtMzAwLDYgKzMzMywx
MiBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5p
c2hUaW1lKQogCiAgICAgUmVmPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAor
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIElucHV0Q3Vyc29yKiBjdXJzb3IgPSBhY3RpdmVJ
bnB1dEN1cnNvcigpOworICAgIGlmIChjdXJzb3IgJiYgY3Vyc29yLT5pc0NhcHR1cmluZygpKQor
ICAgICAgICBjdXJzb3ItPmFwcGVuZElucHV0PFJlc291cmNlTG9hZGVyRGlkRmluaXNoTG9hZGlu
Zz4ob3JkaW5hbEZvcklkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZShtX2ZyYW1lLmdl
dCgpKSwgZmluaXNoVGltZSk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAo
cmVzb3VyY2VEYXRhKCkpCiAgICAgICAgIHJlc291cmNlRGF0YSgpLT5zZXRTaG91bGRVc2VQdXJn
ZWFibGVNZW1vcnkodHJ1ZSk7CkBAIC0zMjgsNiArMzY3LDEzIEBAIHZvaWQgU3VicmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgTE9HKFJlc291
cmNlTG9hZGluZywgIkZhaWxlZCB0byBsb2FkICclcycuXG4iLCBtX3Jlc291cmNlLT51cmwoKS5z
dHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogCiAgICAgUmVmPFN1YnJlc291cmNlTG9hZGVyPiBw
cm90ZWN0KCp0aGlzKTsKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIElucHV0Q3Vyc29y
KiBjdXJzb3IgPSBhY3RpdmVJbnB1dEN1cnNvcigpOworICAgIGlmIChjdXJzb3IgJiYgY3Vyc29y
LT5pc0NhcHR1cmluZygpKQorICAgICAgICBjdXJzb3ItPmFwcGVuZElucHV0PFJlc291cmNlTG9h
ZGVyRGlkRmFpbD4ob3JkaW5hbEZvcklkZW50aWZpZXIoKSwgZnJhbWVJbmRleEZyb21GcmFtZSht
X2ZyYW1lLmdldCgpKSwgc3RkOjptb3ZlKGVycm9yLm93bmVkQ29weSgpKSk7CisjZW5kaWYKKwog
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVzb3VyY2Uo
bV9yZXNvdXJjZSk7CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGluZzsKICAgICBpZiAobV9yZXNvdXJj
ZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSkKQEAgLTQwNyw0ICs0NTMsMTUgQEAgdm9pZCBTdWJy
ZXNvdXJjZUxvYWRlcjo6cmVsZWFzZVJlc291cmNlcygpCiAgICAgUmVzb3VyY2VMb2FkZXI6OnJl
bGVhc2VSZXNvdXJjZXMoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUkVQTEFZKQordW5zaWduZWQg
bG9uZyBTdWJyZXNvdXJjZUxvYWRlcjo6b3JkaW5hbEZvcklkZW50aWZpZXIoKQoreworICAgIEFT
U0VSVChmcmFtZUxvYWRlcigpKTsKKyAgICBhdXRvJiB1c2VkSWRlbnRpZmllcnMgPSBmcmFtZUxv
YWRlcigpLT5mcmFtZSgpLm1haW5GcmFtZSgpLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPnVzZWRJZGVudGlmaWVycygpOworICAgIHVuc2lnbmVkIGxvbmcgb3JkaW5hbCA9IHVzZWRJ
ZGVudGlmaWVycy5yZXZlcnNlRmluZChpZGVudGlmaWVyKCkpOworICAgIEFTU0VSVChvcmRpbmFs
ICE9IFdURjo6bm90Rm91bmQpOworICAgIHJldHVybiBvcmRpbmFsOworfQorI2VuZGlmCisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggOTNjYzQxYzA4
OTU3YTU0MmU5MTg4NTQzYTEwMTdmNmUxYWU3ZDU4OC4uOTlhYzEzODcxZDg5ZjMwNmYxMWJiNDAy
MmVkOWVhMWRjNzkzZWFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmgKQEAgLTkwLDYgKzkwLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeURvbmUo
KTsKIAorI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIHVuc2lnbmVkIGxvbmcgb3JkaW5hbEZv
cklkZW50aWZpZXIoKTsKKyNlbmRpZgorCiAgICAgZW51bSBTdWJyZXNvdXJjZUxvYWRlclN0YXRl
IHsKICAgICAgICAgVW5pbml0aWFsaXplZCwKICAgICAgICAgSW5pdGlhbGl6ZWQsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3Bw
CmluZGV4IGMyZWRlOTliMDg4ZDE3N2YwNDMwZDcwNWM0MGJjZTI3NTQwYjlkZWQuLmNjNGIzYjM4
MzM1NDgxYTBjYWRlZGY3OTBhM2VhYTUzMGE2MzFlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCkBAIC00Nyw2ICs0
NywxNCBAQCBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3JCYXNlOjpjb3B5KCkgY29uc3QKICAg
ICByZXR1cm4gZXJyb3JDb3B5OwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VFcnJvcj4g
UmVzb3VyY2VFcnJvckJhc2U6Om93bmVkQ29weSgpIGNvbnN0Cit7CisgICAgYXV0byBlcnJvciA9
IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VFcnJvcj4oZG9tYWluKCksIGVycm9yQ29kZSgpLCBm
YWlsaW5nVVJMKCksIGxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworICAgIGVycm9yLT5zZXRJc0Nh
bmNlbGxhdGlvbihpc0NhbmNlbGxhdGlvbigpKTsKKyAgICBlcnJvci0+c2V0SXNUaW1lb3V0KGlz
VGltZW91dCgpKTsKKyAgICByZXR1cm4gc3RkOjptb3ZlKGVycm9yKTsKK30KKwogdm9pZCBSZXNv
dXJjZUVycm9yQmFzZTo6bGF6eUluaXQoKSBjb25zdAogewogICAgIGNvbnN0X2Nhc3Q8UmVzb3Vy
Y2VFcnJvcio+KHN0YXRpY19jYXN0PGNvbnN0IFJlc291cmNlRXJyb3IqPih0aGlzKSktPnBsYXRm
b3JtTGF6eUluaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuaAppbmRleCA1MDc5NGU0YTEyZjUyM2RhZWY2M2Q1MWJkNDNhOGYy
ZTE4NzM2MjEwLi5lNTc1OWEwMzg3ZDgwYmE4Yjc1MGI0MDE0Nzc1YzVkMTk1NGMxOWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFz
ZS5oCkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKIHB1YmxpYzoK
ICAgICAvLyBNYWtlcyBhIGRlZXAgY29weS4gVXNlZnVsIGZvciB3aGVuIHlvdSBuZWVkIHRvIHVz
ZSBhIFJlc291cmNlRXJyb3Igb24gYW5vdGhlciB0aHJlYWQuCiAgICAgUmVzb3VyY2VFcnJvciBj
b3B5KCkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlRXJyb3I+IG93bmVkQ29w
eSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX2lzTnVsbDsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRj
aE1ldGhvZHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hN
ZXRob2RzLmNwcAppbmRleCAxMDQ1ZTY1YmY4MDZjMmViZGI2ZjBhYzAyOTIzZmE2NjAxN2U2NzNh
Li4wYTE5NWYwMmU4NmMyZTg4M2MxZGIyNzY0NWM5ZmVkMDBhYmE4MmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgVW5pdmVyc2l0eSBv
ZiBXYXNoaW5ndG9uLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTQgVW5pdmVyc2l0eSBvZiBX
YXNoaW5ndG9uLgogICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI5LDE1ICsyOSwzMSBAQAogI2lmIEVOQUJM
RShXRUJfUkVQTEFZKQogCiAjaW5jbHVkZSAiQWxsUmVwbGF5SW5wdXRzLmgiCisjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJOYXZp
Z2F0aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlcGxheUNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJTZXJpYWxpemF0aW9uTWV0aG9kcy5oIgogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgIlVzZXJJbnB1dEJyaWRnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXJGb3JPcmRpbmFsKFBh
Z2UmIHBhZ2UsIHVuc2lnbmVkIGxvbmcgb3JkaW5hbCwgaW50IGZyYW1lSW5kZXgpCit7CisgICAg
RnJhbWUqIGZyYW1lID0gZnJhbWVGcm9tRnJhbWVJbmRleCgmcGFnZSwgZnJhbWVJbmRleCk7Cisg
ICAgQVNTRVJUKGZyYW1lKTsKKworICAgIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCBsb25nPiYgdXNl
ZElkZW50aWZpZXJzID0gZnJhbWUtPm1haW5GcmFtZSgpLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPnVzZWRJZGVudGlmaWVycygpOworICAgIEFTU0VSVChvcmRpbmFsIDwgdXNlZElk
ZW50aWZpZXJzLnNpemUoKSk7CisKKyAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9
IGZyYW1lLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5sb2FkZXJGb3JJZGVudGlm
aWVyKHVzZWRJZGVudGlmaWVycy5hdChvcmRpbmFsKSk7CisgICAgcmV0dXJuIGxvYWRlciA/IGxv
YWRlci5nZXQoKSA6IG51bGxwdHI7Cit9CisKIC8vIFNlbnRpbmVsIGlucHV0cy4KIHZvaWQgQmVn
aW5TZWdtZW50U2VudGluZWw6OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImKQogewpAQCAtNzcs
NiArOTMsNDIgQEAgdm9pZCBIYW5kbGVNb3VzZVJlbGVhc2U6OmRpc3BhdGNoKFJlcGxheUNvbnRy
b2xsZXImIGNvbnRyb2xsZXIpCiAgICAgY29udHJvbGxlci5wYWdlKCkudXNlcklucHV0QnJpZGdl
KCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQocGxhdGZvcm1FdmVudCgpLCBJbnB1dFNvdXJjZTo6
U3ludGhldGljKTsKIH0KIAorLy8gTmV0d29yayBpbnB1dHMuCit2b2lkIFJlc291cmNlTG9hZGVy
RGlkRmFpbDo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxlcikKK3sKKyAgICBp
ZiAoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IHJlc291cmNlTG9hZGVyRm9yT3JkaW5hbChjb250
cm9sbGVyLnBhZ2UoKSwgb3JkaW5hbCgpLCBmcmFtZUluZGV4KCkpKQorICAgICAgICBsb2FkZXIt
PmRpZEZhaWwobV9lcnJvci0+Y29weSgpKTsKKyAgICAvLyBGSVhNRTogc2lnbmFsIGVycm9yIGlm
IHRoZSBjYWxsYmFjayBjb3VsZG4ndCBiZSBmaXJlZC4KK30KKwordm9pZCBSZXNvdXJjZUxvYWRl
ckRpZEZpbmlzaExvYWRpbmc6OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIp
Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiBsb2FkZXIgPSByZXNvdXJjZUxvYWRlckZvck9y
ZGluYWwoY29udHJvbGxlci5wYWdlKCksIG9yZGluYWwoKSwgZnJhbWVJbmRleCgpKSkKKyAgICAg
ICAgbG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKG1fZmluaXNoVGltZSk7CisgICAgLy8gRklYTUU6
IHNpZ25hbCBlcnJvciBpZiB0aGUgY2FsbGJhY2sgY291bGRuJ3QgYmUgZmlyZWQuCit9CisKK3Zv
aWQgUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZlRGF0YTo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxl
ciYgY29udHJvbGxlcikKK3sKKyAgICBpZiAoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IHJlc291
cmNlTG9hZGVyRm9yT3JkaW5hbChjb250cm9sbGVyLnBhZ2UoKSwgb3JkaW5hbCgpLCBmcmFtZUlu
ZGV4KCkpKQorICAgICAgICBsb2FkZXItPmRpZFJlY2VpdmVEYXRhKGJ1ZmZlcigpLT5kYXRhKCks
IGJ1ZmZlcigpLT5zaXplKCksIGVuY29kZWRMZW5ndGgoKSwgRGF0YVBheWxvYWRCeXRlcyk7Cisg
ICAgLy8gRklYTUU6IHNpZ25hbCBlcnJvciBpZiB0aGUgY2FsbGJhY2sgY291bGRuJ3QgYmUgZmly
ZWQuCit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2U6OmRpc3BhdGNo
KFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIgPSByZXNvdXJjZUxvYWRlckZvck9yZGluYWwoY29udHJvbGxlci5wYWdlKCksIG9y
ZGluYWwoKSwgZnJhbWVJbmRleCgpKSkKKyAgICAgICAgbG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9u
c2UoKm1fcmVzcG9uc2UpOworICAgIC8vIEZJWE1FOiBzaWduYWwgZXJyb3IgaWYgdGhlIGNhbGxi
YWNrIGNvdWxkbid0IGJlIGZpcmVkLgorfQorCit2b2lkIFJlc291cmNlTG9hZGVyRGlkU2VuZERh
dGE6OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKFJl
c291cmNlTG9hZGVyKiBsb2FkZXIgPSByZXNvdXJjZUxvYWRlckZvck9yZGluYWwoY29udHJvbGxl
ci5wYWdlKCksIG9yZGluYWwoKSwgZnJhbWVJbmRleCgpKSkKKyAgICAgICAgbG9hZGVyLT5kaWRT
ZW5kRGF0YShtX2J5dGVzU2VudCwgbV90b3RhbEJ5dGVzVG9CZVNlbnQpOworICAgIC8vIEZJWE1F
OiBzaWduYWwgZXJyb3IgaWYgdGhlIGNhbGxiYWNrIGNvdWxkbid0IGJlIGZpcmVkLgorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCmluZGV4IDVj
YjllZjE2YTNkMDY3MzU5NzBhMjk2YWYzNDNjZjllNDc0OGRmNmYuLjViZjhhOGY3YjExYTc2OGU4
NzlmNTMwZmNiYTgyMjczZjk1ZmZmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Nl
cmlhbGl6YXRpb25NZXRob2RzLmNwcApAQCAtMzEsMjAgKzMxLDc3IEBACiAjaWYgRU5BQkxFKFdF
Ql9SRVBMQVkpCiAKICNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgor
I2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNp
bmNsdWRlICJSZXBsYXlJbnB1dFR5cGVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgor
I2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2ludCBmcmFtZUluZGV4RnJvbURvY3VtZW50KGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIEFTU0VSVChk
b2N1bWVudC0+ZnJhbWUoKSk7CisgICAgcmV0dXJuIGZyYW1lSW5kZXhGcm9tRnJhbWUoZG9jdW1l
bnQtPmZyYW1lKCkpOworfQorCitpbnQgZnJhbWVJbmRleEZyb21GcmFtZShjb25zdCBGcmFtZSog
dGFyZ2V0RnJhbWUpCit7CisgICAgQVNTRVJUKHRhcmdldEZyYW1lKTsKKworICAgIGludCBpbmRl
eCA9IDA7CisgICAgY29uc3QgRnJhbWUqIG1haW5GcmFtZSA9ICZ0YXJnZXRGcmFtZS0+dHJlZSgp
LnRvcCgpOworICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lOyBmcmFtZTsg
aW5kZXgrKywgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtYWluRnJhbWUpKQor
ICAgICAgICBpZiAoZnJhbWUgPT0gdGFyZ2V0RnJhbWUpCisgICAgICAgICAgICByZXR1cm4gaW5k
ZXg7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRG9j
dW1lbnQqIGRvY3VtZW50RnJvbUZyYW1lSW5kZXgoUGFnZSogcGFnZSwgaW50IGZyYW1lSW5kZXgp
Cit7CisgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVGcm9tRnJhbWVJbmRleChwYWdlLCBmcmFtZUlu
ZGV4KTsKKyAgICByZXR1cm4gZnJhbWUgPyBmcmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7Cit9
CisKK0ZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2UqIHBhZ2UsIGludCBmcmFtZUluZGV4
KQoreworICAgIEFTU0VSVChwYWdlKTsKKyAgICBBU1NFUlQoZnJhbWVJbmRleCA+PSAwKTsKKwor
ICAgIE1haW5GcmFtZSogbWFpbkZyYW1lID0gJnBhZ2UtPm1haW5GcmFtZSgpOworICAgIEZyYW1l
KiBmcmFtZSA9IG1haW5GcmFtZTsKKyAgICBpbnQgaWR4ID0gMDsKKyAgICBmb3IgKDsgaWR4IDwg
ZnJhbWVJbmRleCAmJiBmcmFtZTsgaWR4KyssIGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQobWFpbkZyYW1lKSkgeyB9CisgICAgcmV0dXJuIGZyYW1lOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK3VzaW5nIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXA7CiB1c2luZyBXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ7CiB1c2luZyBXZWJDb3JlOjpJbnRQb2ludDsKIHVzaW5nIFdl
YkNvcmU6Ok1vdXNlQnV0dG9uOwogdXNpbmcgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDsKIHVzaW5n
IFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIHVzaW5nIFdlYkNvcmU6OlBsYXRmb3Jt
TW91c2VFdmVudDsKK3VzaW5nIFdlYkNvcmU6OlJlc291cmNlRXJyb3I7Cit1c2luZyBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc7Cit1c2luZyBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOwog
dXNpbmcgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW47Cit1c2luZyBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI7CiB1c2luZyBXZWJDb3JlOjpVUkw7CiB1c2luZyBXZWJDb3JlOjppbnB1dFR5cGVzOwogCkBA
IC01NCwzMCArMTExLDgyIEBAIHVzaW5nIFdlYkNvcmU6Om5hbWU7IFwKIFdFQl9SRVBMQVlfSU5Q
VVRfTkFNRVNfRk9SX0VBQ0goSU1QT1JUX0ZST01fV0VCQ09SRV9OQU1FU1BBQ0UpCiAjdW5kZWYg
SU1QT1JUX0ZST01fV0VCQ09SRV9OQU1FU1BBQ0UKIAotI2RlZmluZSBFTkNPREVfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXksIF92YWx1ZSkgXAorI2RlZmlu
ZSBFTkNPREVfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX3ZhbHVl
KSBcCiAgICAgX2VuY29kZWRWYWx1ZS5wdXQ8X3R5cGU+KEFTQ0lJTGl0ZXJhbCgjX2tleSksIF92
YWx1ZSkKIAotI2RlZmluZSBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1
ZSwgX3R5cGUsIF9rZXkpIFwKLSAgICBfdHlwZSBfa2V5OyBcCi0gICAgaWYgKCFfZW5jb2RlZFZh
bHVlLmdldDxfdHlwZT4oQVNDSUlMaXRlcmFsKCNfa2V5KSwgX2tleSkpIFwKKyNkZWZpbmUgRU5D
T0RFX09QVElPTkFMX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXksIF92
YWx1ZSwgY29uZGl0aW9uKSBcCisgICAgaWYgKGNvbmRpdGlvbikgXAorICAgICAgICBFTkNPREVf
VFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX3ZhbHVlKQorCisjZGVm
aW5lIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2RlZFZhbHVlLCBfdHlwZSwg
X2tleSwgX2x2YWx1ZSkgXAorICAgIGlmICghX2VuY29kZWRWYWx1ZS5nZXQ8X3R5cGU+KEFTQ0lJ
TGl0ZXJhbCgjX2tleSksIF9sdmFsdWUpKSBcCiAgICAgICAgIHJldHVybiBmYWxzZQogCi0jZGVm
aW5lIEVOQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVlLCBf
dHlwZSwgX2tleSwgX3ZhbHVlLCBjb25kaXRpb24pIFwKLSAgICBpZiAoY29uZGl0aW9uKSBcCi0g
ICAgICAgIF9lbmNvZGVkVmFsdWUucHV0PF90eXBlPihBU0NJSUxpdGVyYWwoI19rZXkpLCBfdmFs
dWUpCisjZGVmaW5lIERFQ09ERV9PUFRJT05BTF9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5j
b2RlZFZhbHVlLCBfdHlwZSwgX2tleSwgX2x2YWx1ZSkgXAorICAgIGJvb2wgX2tleSAjIyBXYXNE
ZWNvZGVkID0gX2VuY29kZWRWYWx1ZS5nZXQ8X3R5cGU+KEFTQ0lJTGl0ZXJhbCgjX2tleSksIF9s
dmFsdWUpCisKKyNkZWZpbmUgREVDT0RFX1JFRkNPVU5URURfVFlQRV9XSVRIX0tFWShfZW5jb2Rl
ZFZhbHVlLCBfdHlwZSwgX2tleSkgXAorICAgIFJlZlB0cjxfdHlwZT4gX2tleTsgXAorICAgIERF
Q09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tleSwg
X2tleSkKKworI2RlZmluZSBERUNPREVfT1dORURfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVl
LCBfdHlwZSwgX2tleSkgXAorICAgIHN0ZDo6dW5pcXVlX3B0cjxfdHlwZT4gX2tleTsgXAorICAg
IERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2RlZFZhbHVlLCBfdHlwZSwgX2tl
eSwgX2tleSkKKworI2RlZmluZSBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRW
YWx1ZSwgX3R5cGUsIF9rZXkpIFwKKyAgICBfdHlwZSBfa2V5OyBcCisgICAgREVDT0RFX1RZUEVf
V0lUSF9LRVlfVE9fTFZBTFVFKF9lbmNvZGVkVmFsdWUsIF90eXBlLCBfa2V5LCBfa2V5KQogCiAj
ZGVmaW5lIERFQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tFWShfZW5jb2RlZFZhbHVl
LCBfdHlwZSwgX2tleSkgXAogICAgIF90eXBlIF9rZXk7IFwKLSAgICBib29sIF9rZXkgIyMgV2Fz
RGVjb2RlZCA9IF9lbmNvZGVkVmFsdWUuZ2V0PF90eXBlPihBU0NJSUxpdGVyYWwoI19rZXkpLCBf
a2V5KQorICAgIERFQ09ERV9PUFRJT05BTF9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2Rl
ZFZhbHVlLCBfdHlwZSwgX2tleSwgX2tleSkKKworI2RlZmluZSBERUNPREVfT1BUSU9OQUxfUkVG
Q09VTlRFRF9UWVBFX1dJVEhfS0VZKF9lbmNvZGVkVmFsdWUsIF90eXBlLCBfa2V5KSBcCisgICAg
UmVmUHRyPF90eXBlPiBfa2V5OyBcCisgICAgREVDT0RFX09QVElPTkFMX1RZUEVfV0lUSF9LRVlf
VE9fTFZBTFVFKF9lbmNvZGVkVmFsdWUsIF90eXBlLCBfa2V5LCBfa2V5KQogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEhUVFBIZWFkZXJNYXA+OjplbmNv
ZGVWYWx1ZShjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJNYXApCit7CisgICAgRW5jb2RlZFZh
bHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKyAgICBFbmNv
ZGVkVmFsdWUgZW5jb2RlZEtleXMgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZUFycmF5KCk7CisgICAg
RW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZXMgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZUFycmF5KCk7
CisKKyAgICBmb3IgKGF1dG8gaXQgPSBoZWFkZXJNYXAuYmVnaW4oKTsgaXQgIT0gaGVhZGVyTWFw
LmVuZCgpOyArK2l0KSB7CisgICAgICAgIGVuY29kZWRLZXlzLmFwcGVuZDxTdHJpbmc+KGl0LT5r
ZXkuc3RyaW5nKCkpOworICAgICAgICBlbmNvZGVkVmFsdWVzLmFwcGVuZDxTdHJpbmc+KGl0LT52
YWx1ZSk7CisgICAgfQorCisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIEVu
Y29kZWRWYWx1ZSwga2V5cywgZW5jb2RlZEtleXMpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZ
KGVuY29kZWREYXRhLCBFbmNvZGVkVmFsdWUsIHZhbHVlcywgZW5jb2RlZFZhbHVlcyk7CisKKyAg
ICByZXR1cm4gZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8SFRUUEhlYWRl
ck1hcD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZERhdGEsIHN0ZDo6dW5pcXVl
X3B0cjxIVFRQSGVhZGVyTWFwPiYgZGVjb2RlZFZhbHVlKQoreworICAgIHN0ZDo6dW5pcXVlX3B0
cjxIVFRQSGVhZGVyTWFwPiBkZWNvZGVkSGVhZGVyTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxIVFRQ
SGVhZGVyTWFwPigpOworCisgICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRE
YXRhLCBWZWN0b3I8U3RyaW5nPiwga2V5cyk7CisgICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJVEhf
S0VZKGVuY29kZWREYXRhLCBWZWN0b3I8U3RyaW5nPiwgdmFsdWVzKTsKKworICAgIGlmIChrZXlz
LnNpemUoKSAhPSB2YWx1ZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGRlY29kZWRI
ZWFkZXJNYXAtPmFkZChrZXlzW2ldLCB2YWx1ZXNbaV0pOworCisgICAgZGVjb2RlZFZhbHVlID0g
c3RkOjptb3ZlKGRlY29kZWRIZWFkZXJNYXApOworICAgIHJldHVybiB0cnVlOworfQorCiBFbmNv
ZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT46OmVuY29k
ZVZhbHVlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KQogewogICAgIEVu
Y29kZWRWYWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZU9iamVjdCgpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSA9IGlucHV0LnR5cGUoKTsKIAotICAgIEVOQ09E
RV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdHlwZSwgdHlwZS5z
dHJpbmcoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcs
IHR5cGUsIHR5cGUuc3RyaW5nKCkpOwogCiAjZGVmaW5lIEVOQ09ERV9JRl9UWVBFX1RBR19NQVRD
SEVTKG5hbWUpIFwKICAgICBpZiAodHlwZSA9PSBpbnB1dFR5cGVzKCkubmFtZSkgeyBcCkBAIC0x
MzQsOCArMjQzLDggQEAgRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPEtleXByZXNzQ29tbWFu
ZD46OmVuY29kZVZhbHVlKGNvbnN0IEtleXByZXNzQ29tbWFuZCYKIHsKICAgICBFbmNvZGVkVmFs
dWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKIAotICAgIEVO
Q09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgY29tbWFuZE5h
bWUsIGNvbW1hbmQuY29tbWFuZE5hbWUpOwotICAgIEVOQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgY29tbWFuZC50ZXh0LCAhY29t
bWFuZC50ZXh0LmlzRW1wdHkoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBTdHJpbmcsIGNvbW1hbmROYW1lLCBjb21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICBFTkNP
REVfT1BUSU9OQUxfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgY29t
bWFuZC50ZXh0LCAhY29tbWFuZC50ZXh0LmlzRW1wdHkoKSk7CiAKICAgICByZXR1cm4gZW5jb2Rl
ZFZhbHVlOwogfQpAQCAtMTY0LDIxICsyNzMsMjEgQEAgRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD46OmVuY29kZVZhbHVlKGNvbnN0IFBsYXRmb3JtS2UK
IHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVP
YmplY3QoKTsKIAotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUs
IGRvdWJsZSwgdGltZXN0YW1wLCBpbnB1dC50aW1lc3RhbXAoKSk7Ci0gICAgRU5DT0RFX1NDQUxB
Ul9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6VHlwZSwgdHlwZSwg
aW5wdXQudHlwZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMsIG1vZGlmaWVycywgc3RhdGljX2Nhc3Q8UGxh
dGZvcm1FdmVudDo6TW9kaWZpZXJzPihpbnB1dC5tb2RpZmllcnMoKSkpOwotICAgIEVOQ09ERV9T
Q0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgaW5wdXQudGV4
dCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJp
bmcsIHVubW9kaWZpZWRUZXh0LCBpbnB1dC51bm1vZGlmaWVkVGV4dCgpKTsKLSAgICBFTkNPREVf
U0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGtleUlkZW50aWZpZXIs
IGlucHV0LmtleUlkZW50aWZpZXIoKSk7Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZ
KGVuY29kZWRWYWx1ZSwgaW50LCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlucHV0LndpbmRvd3NW
aXJ0dWFsS2V5Q29kZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBpbnQsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnB1dC5uYXRpdmVWaXJ0dWFsS2V5
Q29kZSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBp
bnQsIG1hY0NoYXJDb2RlLCBpbnB1dC5tYWNDaGFyQ29kZSgpKTsKLSAgICBFTkNPREVfU0NBTEFS
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBhdXRvUmVwZWF0LCBpbnB1dC5pc0F1
dG9SZXBlYXQoKSk7Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgYm9vbCwga2V5cGFkLCBpbnB1dC5pc0tleXBhZCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBzeXN0ZW1LZXksIGlucHV0LmlzU3lzdGVt
S2V5KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgZG91YmxlLCB0
aW1lc3RhbXAsIGlucHV0LnRpbWVzdGFtcCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6OlR5cGUsIHR5cGUsIGlucHV0LnR5cGUoKSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2Rp
ZmllcnMsIG1vZGlmaWVycywgc3RhdGljX2Nhc3Q8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzPihp
bnB1dC5tb2RpZmllcnMoKSkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgU3RyaW5nLCB0ZXh0LCBpbnB1dC50ZXh0KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZ
KGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB1bm1vZGlmaWVkVGV4dCwgaW5wdXQudW5tb2RpZmllZFRl
eHQoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGtl
eUlkZW50aWZpZXIsIGlucHV0LmtleUlkZW50aWZpZXIoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW5wdXQud2lu
ZG93c1ZpcnR1YWxLZXlDb2RlKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRW
YWx1ZSwgaW50LCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW5wdXQubmF0aXZlVmlydHVhbEtleUNv
ZGUoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIG1hY0No
YXJDb2RlLCBpbnB1dC5tYWNDaGFyQ29kZSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIGJvb2wsIGF1dG9SZXBlYXQsIGlucHV0LmlzQXV0b1JlcGVhdCgpKTsKKyAg
ICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIGtleXBhZCwgaW5wdXQu
aXNLZXlwYWQoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29s
LCBzeXN0ZW1LZXksIGlucHV0LmlzU3lzdGVtS2V5KCkpOwogI2lmIFVTRShBUFBLSVQpCi0gICAg
RU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgYm9vbCwgaGFuZGxlZEJ5
SW5wdXRNZXRob2QsIGlucHV0LmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpOwotICAgIEVOQ09ERV9T
Q0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+
LCBjb21tYW5kcywgaW5wdXQuY29tbWFuZHMoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZFZhbHVlLCBib29sLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgaW5wdXQuaGFuZGxlZEJ5
SW5wdXRNZXRob2QoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBW
ZWN0b3I8S2V5cHJlc3NDb21tYW5kPiwgY29tbWFuZHMsIGlucHV0LmNvbW1hbmRzKCkpOwogI2Vu
ZGlmCiAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKIH0KQEAgLTIxNSwxOCArMzI0LDE4IEBAIEVu
Y29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybU1vdXNlRXZlbnQ+OjplbmNvZGVWYWx1
ZShjb25zdCBQbGF0Zm9ybU1vdXNlCiB7CiAgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZSA9
IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CiAKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHBvc2l0aW9uWCwgaW5wdXQucG9zaXRpb24oKS54
KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGludCwg
cG9zaXRpb25ZLCBpbnB1dC5wb3NpdGlvbigpLnkoKSk7Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBF
X1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50LCBnbG9iYWxQb3NpdGlvblgsIGlucHV0Lmdsb2Jh
bFBvc2l0aW9uKCkueCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBpbnQsIGdsb2JhbFBvc2l0aW9uWSwgaW5wdXQuZ2xvYmFsUG9zaXRpb24oKS55KCkp
OwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIE1vdXNlQnV0
dG9uLCBidXR0b24sIGlucHV0LmJ1dHRvbigpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpUeXBlLCB0eXBlLCBpbnB1dC50eXBl
KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGludCwg
Y2xpY2tDb3VudCwgaW5wdXQuY2xpY2tDb3VudCgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBzaGlmdEtleSwgaW5wdXQuc2hpZnRLZXkoKSk7
Ci0gICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgYm9vbCwgY3Ry
bEtleSwgaW5wdXQuY3RybEtleSgpKTsKLSAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZFZhbHVlLCBib29sLCBhbHRLZXksIGlucHV0LmFsdEtleSgpKTsKLSAgICBFTkNPREVf
U0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBtZXRhS2V5LCBpbnB1dC5t
ZXRhS2V5KCkpOwotICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUs
IGludCwgdGltZXN0YW1wLCBpbnB1dC50aW1lc3RhbXAoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHBvc2l0aW9uWCwgaW5wdXQucG9zaXRpb24oKS54KCkp
OworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50LCBwb3NpdGlvblks
IGlucHV0LnBvc2l0aW9uKCkueSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIGludCwgZ2xvYmFsUG9zaXRpb25YLCBpbnB1dC5nbG9iYWxQb3NpdGlvbigpLngoKSk7
CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIGdsb2JhbFBvc2l0
aW9uWSwgaW5wdXQuZ2xvYmFsUG9zaXRpb24oKS55KCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhf
S0VZKGVuY29kZWRWYWx1ZSwgTW91c2VCdXR0b24sIGJ1dHRvbiwgaW5wdXQuYnV0dG9uKCkpOwor
ICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6VHlw
ZSwgdHlwZSwgaW5wdXQudHlwZSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIGludCwgY2xpY2tDb3VudCwgaW5wdXQuY2xpY2tDb3VudCgpKTsKKyAgICBFTkNPREVf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIHNoaWZ0S2V5LCBpbnB1dC5zaGlmdEtl
eSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIGN0cmxL
ZXksIGlucHV0LmN0cmxLZXkoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBib29sLCBhbHRLZXksIGlucHV0LmFsdEtleSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRI
X0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIG1ldGFLZXksIGlucHV0Lm1ldGFLZXkoKSk7CisgICAg
RU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIHRpbWVzdGFtcCwgaW5wdXQu
dGltZXN0YW1wKCkpOwogCiAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKIH0KQEAgLTI1Myw2ICsz
NjIsMTE1IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1Nb3VzZUV2ZW50Pjo6ZGVjb2Rl
VmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlVmFsdWUo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRE
YXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKworICAgIEVOQ09ERV9UWVBFX1dJ
VEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcsIGRvbWFpbiwgZXJyb3IuZG9tYWluKCkpOworICAg
IEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIGVycm9yQ29kZSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJp
bmcsIGZhaWxpbmdVUkwsIGVycm9yLmZhaWxpbmdVUkwoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZERhdGEsIFN0cmluZywgbG9jYWxpemVkRGVzY3JpcHRpb24sIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkpOworCisgICAgcmV0dXJuIGVuY29kZWREYXRhOworfQorCiti
b29sIEVuY29kaW5nVHJhaXRzPFJlc291cmNlRXJyb3I+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFs
dWUmIGVuY29kZWREYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VFcnJvcj4mIGRlY29kZWRF
cnJvcikKK3sKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIFN0
cmluZywgZG9tYWluKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERh
dGEsIGludCwgZXJyb3JDb2RlKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5j
b2RlZERhdGEsIFN0cmluZywgZmFpbGluZ1VSTCk7CisgICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJ
VEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKKworICAg
IGRlY29kZWRFcnJvciA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VFcnJvcj4oZG9tYWluLCBl
cnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFJlc291cmNlTG9hZFRpbWlu
Zz46OmVuY29kZVZhbHVlKFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZ0RhdGEpCit7
CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmpl
Y3QoKTsKKworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBkb3VibGUsIHJl
cXVlc3RUaW1lLCB0aW1pbmdEYXRhLT5yZXF1ZXN0VGltZSk7CisgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZERhdGEsIGludCwgcHJveHlTdGFydCwgdGltaW5nRGF0YS0+cHJveHlTdGFy
dCk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIGludCwgcHJveHlFbmQs
IHRpbWluZ0RhdGEtPnByb3h5RW5kKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
RGF0YSwgaW50LCBkbnNTdGFydCwgdGltaW5nRGF0YS0+ZG5zU3RhcnQpOworICAgIEVOQ09ERV9U
WVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIGRuc0VuZCwgdGltaW5nRGF0YS0+ZG5zRW5k
KTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBjb25uZWN0U3Rh
cnQsIHRpbWluZ0RhdGEtPmNvbm5lY3RTdGFydCk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZERhdGEsIGludCwgY29ubmVjdEVuZCwgdGltaW5nRGF0YS0+Y29ubmVjdEVuZCk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEsIGludCwgc2VuZFN0YXJ0LCB0aW1p
bmdEYXRhLT5zZW5kU3RhcnQpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRh
LCBpbnQsIHNlbmRFbmQsIHRpbWluZ0RhdGEtPnNlbmRFbmQpOworICAgIEVOQ09ERV9UWVBFX1dJ
VEhfS0VZKGVuY29kZWREYXRhLCBpbnQsIHJlY2VpdmVIZWFkZXJzRW5kLCB0aW1pbmdEYXRhLT5y
ZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEs
IGludCwgc3NsU3RhcnQsIHRpbWluZ0RhdGEtPnNzbFN0YXJ0KTsKKyAgICBFTkNPREVfVFlQRV9X
SVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBzc2xFbmQsIHRpbWluZ0RhdGEtPnNzbEVuZCk7CisK
KyAgICByZXR1cm4gZW5jb2RlZERhdGE7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8UmVzb3Vy
Y2VMb2FkVGltaW5nPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkRGF0YSwgUmVm
UHRyPFJlc291cmNlTG9hZFRpbWluZz4mIGRlY29kZWRUaW1pbmdzKQoreworICAgIFJlZlB0cjxS
ZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZ0RhdGEgPSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0
ZSgpOworCisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBk
b3VibGUsIHJlcXVlc3RUaW1lLCB0aW1pbmdEYXRhLT5yZXF1ZXN0VGltZSk7CisgICAgREVDT0RF
X1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIHByb3h5U3RhcnQsIHRp
bWluZ0RhdGEtPnByb3h5U3RhcnQpOworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxV
RShlbmNvZGVkRGF0YSwgaW50LCBwcm94eUVuZCwgdGltaW5nRGF0YS0+cHJveHlFbmQpOworICAg
IERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShlbmNvZGVkRGF0YSwgaW50LCBkbnNTdGFy
dCwgdGltaW5nRGF0YS0+ZG5zU3RhcnQpOworICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xW
QUxVRShlbmNvZGVkRGF0YSwgaW50LCBkbnNFbmQsIHRpbWluZ0RhdGEtPmRuc0VuZCk7CisgICAg
REVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIGNvbm5lY3RT
dGFydCwgdGltaW5nRGF0YS0+Y29ubmVjdFN0YXJ0KTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tF
WV9UT19MVkFMVUUoZW5jb2RlZERhdGEsIGludCwgY29ubmVjdEVuZCwgdGltaW5nRGF0YS0+Y29u
bmVjdEVuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRh
LCBpbnQsIHNlbmRTdGFydCwgdGltaW5nRGF0YS0+c2VuZFN0YXJ0KTsKKyAgICBERUNPREVfVFlQ
RV9XSVRIX0tFWV9UT19MVkFMVUUoZW5jb2RlZERhdGEsIGludCwgc2VuZEVuZCwgdGltaW5nRGF0
YS0+c2VuZEVuZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWRE
YXRhLCBpbnQsIHJlY2VpdmVIZWFkZXJzRW5kLCB0aW1pbmdEYXRhLT5yZWNlaXZlSGVhZGVyc0Vu
ZCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQs
IHNzbFN0YXJ0LCB0aW1pbmdEYXRhLT5zc2xTdGFydCk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9L
RVlfVE9fTFZBTFVFKGVuY29kZWREYXRhLCBpbnQsIHNzbEVuZCwgdGltaW5nRGF0YS0+c3NsRW5k
KTsKKworICAgIGRlY29kZWRUaW1pbmdzID0gdGltaW5nRGF0YS5yZWxlYXNlKCk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxSZXNvdXJjZVJlc3Bv
bnNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7Cisg
ICAgRW5jb2RlZFZhbHVlIGVuY29kZWREYXRhID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3Qo
KTsKKworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBVUkwsIHVybCwgcmVz
cG9uc2UudXJsKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJp
bmcsIG1pbWVUeXBlLCByZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRI
X0tFWShlbmNvZGVkRGF0YSwgbG9uZyBsb25nLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIHJlc3Bv
bnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShl
bmNvZGVkRGF0YSwgU3RyaW5nLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXNwb25zZS50ZXh0RW5jb2Rp
bmdOYW1lKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBTdHJpbmcs
IHN1Z2dlc3RlZEZpbGVuYW1lLCByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpKTsKKyAgICBF
TkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgaW50LCBodHRwU3RhdHVzQ29kZSwgcmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZERhdGEsIFN0cmluZywgaHR0cFN0YXR1c1RleHQsIHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCkp
OworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBIVFRQSGVhZGVyTWFwLCBo
dHRwSGVhZGVycywgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpKTsKKyAgICBFTkNPREVfT1BU
SU9OQUxfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgUmVzb3VyY2VMb2FkVGltaW5nLCBsb2Fk
VGltaW5nLCByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZGVlcENvcHkoKSwgcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOworCisgICAgcmV0dXJuIGVuY29kZWREYXRhOworfQor
Citib29sIEVuY29kaW5nVHJhaXRzPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGVWYWx1ZShFbmNv
ZGVkVmFsdWUmIGVuY29kZWREYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VSZXNwb25zZT4m
IGRlY29kZWRSZXNwb25zZSkKK3sKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5j
b2RlZERhdGEsIFVSTCwgdXJsKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5j
b2RlZERhdGEsIFN0cmluZywgbWltZVR5cGUpOworICAgIERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRI
X0tFWShlbmNvZGVkRGF0YSwgbG9uZyBsb25nLCBleHBlY3RlZENvbnRlbnRMZW5ndGgpOworICAg
IERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCB0ZXh0RW5j
b2RpbmdOYW1lKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZERhdGEs
IFN0cmluZywgc3VnZ2VzdGVkRmlsZW5hbWUpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlc291
cmNlUmVzcG9uc2U+IHJlc3BvbnNlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZVJlc3BvbnNl
Pih1cmwsIG1pbWVUeXBlLCBleHBlY3RlZENvbnRlbnRMZW5ndGgsIHRleHRFbmNvZGluZ05hbWUs
IHN1Z2dlc3RlZEZpbGVuYW1lKTsKKworICAgIERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShl
bmNvZGVkRGF0YSwgaW50LCBodHRwU3RhdHVzQ29kZSk7CisgICAgcmVzcG9uc2UtPnNldEhUVFBT
dGF0dXNDb2RlKGh0dHBTdGF0dXNDb2RlKTsKKworICAgIERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRI
X0tFWShlbmNvZGVkRGF0YSwgU3RyaW5nLCBodHRwU3RhdHVzVGV4dCk7CisgICAgcmVzcG9uc2Ut
PnNldEhUVFBTdGF0dXNUZXh0KGh0dHBTdGF0dXNUZXh0KTsKKworICAgIERFQ09ERV9PV05FRF9U
WVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBIVFRQSGVhZGVyTWFwLCBodHRwSGVhZGVycyk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZVBhaXIgOiAqaHR0cEhlYWRlcnMpCisgICAgICAg
IHJlc3BvbnNlLT5zZXRIVFRQSGVhZGVyRmllbGQoa2V5VmFsdWVQYWlyLmtleSwga2V5VmFsdWVQ
YWlyLnZhbHVlKTsKKworICAgIERFQ09ERV9PUFRJT05BTF9SRUZDT1VOVEVEX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZERhdGEsIFJlc291cmNlTG9hZFRpbWluZywgbG9hZFRpbWluZyk7CisgICAgaWYg
KGxvYWRUaW1pbmdXYXNEZWNvZGVkKQorICAgICAgICByZXNwb25zZS0+c2V0UmVzb3VyY2VMb2Fk
VGltaW5nKGxvYWRUaW1pbmcpOworCisgICAgZGVjb2RlZFJlc3BvbnNlID0gc3RkOjptb3ZlKHJl
c3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPFNlY3VyaXR5T3JpZ2luPjo6ZW5jb2RlVmFsdWUoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBp
bnB1dCkKIHsKICAgICByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoaW5wdXQtPnRv
U3RyaW5nKCkpOwpAQCAtMjY0LDYgKzQ4MiwyMSBAQCBib29sIEVuY29kaW5nVHJhaXRzPFNlY3Vy
aXR5T3JpZ2luPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFJlZgog
ICAgIHJldHVybiB0cnVlOwogfQogCitFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8U2hhcmVk
QnVmZmVyPjo6ZW5jb2RlVmFsdWUoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQoreworICAg
IHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZyhiYXNlNjRFbmNvZGUoYnVmZmVyLT5k
YXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7Cit9CisKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8U2hhcmVk
QnVmZmVyPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkQnVmZmVyLCBSZWZQdHI8
U2hhcmVkQnVmZmVyPiYgZGVjb2RlZEJ1ZmZlcikKK3sKKyAgICBWZWN0b3I8Y2hhciwgMD4gZGF0
YTsKKyAgICBpZiAoIWJhc2U2NERlY29kZShlbmNvZGVkQnVmZmVyLmNvbnZlcnRUbzxTdHJpbmc+
KCksIGRhdGEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkZWNvZGVkQnVmZmVyID0g
U2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihkYXRhKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
RW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFVSTD46OmVuY29kZVZhbHVlKGNvbnN0IFVSTCYg
aW5wdXQpCiB7CiAgICAgcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3JlYXRlU3RyaW5nKGlucHV0LnN0
cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9u
TWV0aG9kcy5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgK
aW5kZXggN2FmYTIzMmI2MjZkYTBkYTUwNDQxODFhYmY1MmY5NTI3ZDk3MDVlYi4uMjE2NmU3NTlj
M2IwNzRmZmM4NWZlNTRjNjFiMzAxZTQxYjVjNTU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVw
bGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgKQEAgLTM3LDIwICszNywzOCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEhUVFBIZWFk
ZXJNYXA7CiBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1LZXlib2FyZEV2ZW50OwogY2xhc3Mg
UGxhdGZvcm1Nb3VzZUV2ZW50OworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNl
TG9hZFRpbWluZzsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFVSTDsKIAogI2lmIFVTRShBUFBLSVQpCiBz
dHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogI2VuZGlmCisKK2ludCBmcmFtZUluZGV4RnJvbURvY3Vt
ZW50KGNvbnN0IERvY3VtZW50Kik7CitpbnQgZnJhbWVJbmRleEZyb21GcmFtZShjb25zdCBGcmFt
ZSopOworRG9jdW1lbnQqIGRvY3VtZW50RnJvbUZyYW1lSW5kZXgoUGFnZSosIGludCBmcmFtZUlu
ZGV4KTsKK0ZyYW1lKiBmcmFtZUZyb21GcmFtZUluZGV4KFBhZ2UqLCBpbnQgZnJhbWVJbmRleCk7
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogLy8gVGVtcGxhdGUgc3BlY2lhbGl6YXRpb25z
IG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIHRlbXBsYXRlIGRl
Y2xhcmF0aW9uLgogbmFtZXNwYWNlIEpTQyB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5n
VHJhaXRzPFdlYkNvcmU6OkhUVFBIZWFkZXJNYXA+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXAgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29k
ZVZhbHVlKGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIHZhbHVlKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SFRUUEhlYWRlck1hcD4mIHZhbHVlKTsKK307CisKICNpZiBVU0UoQVBQS0lUKQogdGVtcGxhdGU8
PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7CiAgICAg
dHlwZWRlZiBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgRGVjb2RlZFR5cGU7CkBAIC04OCw2ICsx
MDYsMjcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6VVJMPiB7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgV2ViQ29yZTo6VVJM
JiB2YWx1ZSk7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yPiB7CisgICAgdHlwZWRlZiBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIERl
Y29kZWRUeXBlOworCisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFs
dWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
JiB2YWx1ZSk7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc+IHsKKyAgICB0eXBlZGVmIFJlZlB0cjxXZWJDb3JlOjpSZXNv
dXJjZUxvYWRUaW1pbmc+IERlY29kZWRUeXBlOworCisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBl
bmNvZGVWYWx1ZShSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nPiB2YWx1ZSk7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgUmVmUHRyPFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZz4mIHZhbHVlKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
Y29kaW5nVHJhaXRzPFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U+IHsKKyAgICB0eXBlZGVmIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0aWMgRW5jb2Rl
ZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHZhbHVl
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZT4mIHZhbHVlKTsKK307CisKIHRlbXBsYXRl
PD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB7CiAgICAg
dHlwZWRlZiBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IERlY29kZWRUeXBlOwogCkBA
IC05NSw2ICsxMzQsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVk
VmFsdWUmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiB2YWx1ZSk7CiB9OwogCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHsK
KyAgICB0eXBlZGVmIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IERlY29kZWRUeXBlOwor
CisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZh
bHVlJiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIHZhbHVlKTsKK307CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvV2ViSW5wdXRzLmpzb24KaW5kZXggZTI0ZmQ5YmE0ODgwYzAyMzU2OTJlNzNhNjg1NDE5
YTRjNjljNjE5ZS4uOWY4MjBiY2UyMzUyMzQ1ODJmYTNmYzY4YmUxODcyNTBlMjA2Yjc5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgpAQCAtNjMsMTAgKzYzLDIyIEBACiAgICAg
ICAgICAgICAgICAgImhlYWRlciI6ICJwbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiUmVz
b3VyY2VFcnJvciIsICJtb2RlIjogIk9XTkVEIiwKKyAgICAgICAgICAgICAgICAiaGVhZGVyIjog
InBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvci5oIgorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZVJlc3BvbnNlIiwgIm1v
ZGUiOiAiT1dORUQiLAorICAgICAgICAgICAgICAgICJoZWFkZXIiOiAicGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlc3BvbnNlLmgiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJuYW1lIjogIlNlY3VyaXR5T3JpZ2luIiwgIm1vZGUiOiAiU0hBUkVEIiwK
ICAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBhZ2UvU2VjdXJpdHlPcmlnaW4uaCIKICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2hhcmVk
QnVmZmVyIiwgIm1vZGUiOiAiU0hBUkVEIiwKKyAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAibmFtZSI6ICJUeXBlIiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2Ui
OiAidWludDhfdCIsCiAgICAgICAgICAgICAgICAgImVuY2xvc2luZ19jbGFzcyI6ICJQbGF0Zm9y
bUV2ZW50IiwKICAgICAgICAgICAgICAgICAiZmxhZ3MiOiBbIkVOVU0iXSwKQEAgLTE1NSw2ICsx
NjcsNTggQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogIlVSTCIg
fSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlZmVycmVyIiwgInR5cGUiOiAiU3RyaW5n
IiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogIlJlc291cmNlTG9hZGVyRGlkRmFpbCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQSByZXNvdXJjZSBsb2FkZXIgZmFpbGVkIHRvIGxvYWQgaXRzIHJlc291cmNlLiIsCisgICAg
ICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yZGluYWwiLCAidHlwZSI6ICJ1bnNpZ25lZCBs
b25nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJbmRleCIsICJ0eXBlIjog
ImludCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVycm9yIiwgInR5cGUiOiAiUmVz
b3VyY2VFcnJvciIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJSZXNvdXJjZUxvYWRlckRpZEZpbmlzaExvYWRpbmciLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkEgcmVzb3VyY2UgbG9hZGVyIGZpbmlzaGVkIHJlY2Vpdmlu
ZyBhIHJlc291cmNlLiIsCisgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAg
ICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yZGluYWwi
LCAidHlwZSI6ICJ1bnNpZ25lZCBsb25nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZnJhbWVJbmRleCIsICJ0eXBlIjogImludCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImZpbmlzaFRpbWUiLCAidHlwZSI6ICJkb3VibGUiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiUmVzb3VyY2VMb2FkZXJEaWRSZWNl
aXZlUmVzcG9uc2UiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgcmVzb3VyY2UgbG9h
ZGVyIHJlY2VpdmVkIGFuIGluaXRpYWwgcmVzcG9uc2UuIiwKKyAgICAgICAgICAgICJxdWV1ZSI6
ICJFVkVOVF9MT09QIiwKKyAgICAgICAgICAgICJtZW1iZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib3JkaW5hbCIsICJ0eXBlIjogInVuc2lnbmVkIGxvbmciIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUluZGV4IiwgInR5cGUiOiAiaW50IiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2UiLCAidHlwZSI6ICJSZXNvdXJjZVJlc3BvbnNl
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogIlJlc291cmNlTG9hZGVyRGlkU2VuZERhdGEiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkEgcmVzb3VyY2UgbG9hZGVyIHNlbnQgc29tZSBkYXRhLiIsCisgICAgICAgICAgICAi
cXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm9yZGluYWwiLCAidHlwZSI6ICJ1bnNpZ25lZCBsb25nIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJbmRleCIsICJ0eXBlIjogImludCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJ5dGVzU2VudCIsICJ0eXBlIjogInVuc2lnbmVk
IGxvbmcgbG9uZyIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFsQnl0ZXNUb0Jl
U2VudCIsICJ0eXBlIjogInVuc2lnbmVkIGxvbmcgbG9uZyIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJSZXNvdXJjZUxvYWRlckRp
ZFJlY2VpdmVEYXRhIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHJlc291cmNlIGxv
YWRlciByZWNlaXZlZCBzb21lIGRhdGEuIiwKKyAgICAgICAgICAgICJxdWV1ZSI6ICJFVkVOVF9M
T09QIiwKKyAgICAgICAgICAgICJtZW1iZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAib3JkaW5hbCIsICJ0eXBlIjogInVuc2lnbmVkIGxvbmciIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJmcmFtZUluZGV4IiwgInR5cGUiOiAiaW50IiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYnVmZmVyIiwgInR5cGUiOiAiU2hhcmVkQnVmZmVyIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZW5jb2RlZExlbmd0aCIsICJ0eXBlIjogImludCIgfQorICAgICAg
ICAgICAgXQogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApp
bmRleCBhNWZjZjc0NGYwZGEwZWI3MDU4NWNmOWQ3OGIzMTE1NDkzZGFhNTY5Li4zNmE0MDk2NDlh
YjhjN2E0ZDhmNWFiNzk1NWNlOTA1MjBjZTM4NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcApAQCAtNTIsNiArNTIsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9h
ZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgRU5BQkxFKFdFQl9S
RVBMQVkpCisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CisjZW5kaWYKKwogI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTAz
LDYgKzEwNywxMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2Fk
KFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAogICAgIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCisgICAgaWYgKElucHV0Q3Vyc29yKiBjdXJzb3IgPSByZXNv
dXJjZUxvYWRlci0+YWN0aXZlSW5wdXRDdXJzb3IoKSkgeworICAgICAgICBpZiAoY3Vyc29yLT5p
c1JlcGxheWluZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAg
TE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB3aXRoIHRoZSBO
ZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICVpIiwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIHByaW9yaXR5KTsKIAogICAgIENvbnRlbnRTbmlmZmluZ1Bv
bGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZD
b250ZW50KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>