<?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>140675</bug_id>
          
          <creation_ts>2015-01-20 05:57:56 -0800</creation_ts>
          <short_desc>Remove non-Windows cruft from WebKit/win/Plugins</short_desc>
          <delta_ts>2015-01-20 09:34:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1062712</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-20 05:57:56 -0800</bug_when>
    <thetext>Remove non-Windows cruft from WebKit/win/Plugins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062713</commentid>
    <comment_count>1</comment_count>
      <attachid>244986</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-20 05:58:06 -0800</bug_when>
    <thetext>Created attachment 244986
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062715</commentid>
    <comment_count>2</comment_count>
      <attachid>244987</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-20 06:30:11 -0800</bug_when>
    <thetext>Created attachment 244987
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062716</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-20 06:31:46 -0800</bug_when>
    <thetext>the idea comes from bug140133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062777</commentid>
    <comment_count>4</comment_count>
      <attachid>244987</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 09:34:13 -0800</bug_when>
    <thetext>Comment on attachment 244987
proposed patch

Clearing flags on attachment: 244987

Committed r178719: &lt;http://trac.webkit.org/changeset/178719&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062778</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 09:34:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244986</attachid>
            <date>2015-01-20 05:58:06 -0800</date>
            <delta_ts>2015-01-20 06:30:05 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-140675-20150120150003.patch</filename>
            <type>text/plain</type>
            <size>33598</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggN2FlZDAzMmY4
ZjhiMjA2ZmNhMTE0MWUxZGQ3MGM2MWYxMGFkZTM2ZC4uMWMwOGU3NGJiYWIzZDczZWRiYzYzOGNj
NzljYzllZTdmMjViNjhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE1
LTAxLTIwICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmVtb3ZlIG5vbi1XaW5kb3dzIGNydWZ0IGZyb20gV2ViS2l0L3dpbi9QbHVnaW5zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA2NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2lu
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQ
bHVnaW5EaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6aXNQ
cmVmZXJyZWRQbHVnaW5EaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJh
c2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmllcyk6CisgICAgICAgICogUGx1Z2lucy9QbHVn
aW5EZWJ1Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUp
OgorICAgICAgICAoV2ViQ29yZTo6cHJldHR5TmFtZUZvck5QUFZhcmlhYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6OnByZXR0eU5hbWVGb3JEcmF3aW5nTW9kZWwpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6cHJldHR5TmFtZUZvckV2ZW50TW9kZWwpOiBEZWxldGVkLgorICAgICAgICAqIFBs
dWdpbnMvUGx1Z2luRGVidWcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblBhY2thZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6Y29tcGFyZUZpbGVWZXJzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmRldGVybWluZVF1aXJrcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjpkZXRlcm1pbmVNb2R1bGVWZXJz
aW9uRnJvbURlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0RnJhbWVSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAg
ICAgICogUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwbGF0Zm9ybVBsdWdpbldpZGdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCk6IERlbGV0ZWQuCisgICAgICAgICogUGx1
Z2lucy9QbHVnaW5WaWV3V2luLmNwcDoKKyAgICAgICAgKHdpbmRvd0hhbmRsZUZvclBhZ2VDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aG9va2VkQmVnaW5QYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpob29rZWRFbmRQYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpob29rKToKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyUGx1Z2luVmlldyk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnNldE5QV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNuYXBzaG90KToKKyAg
ICAgICAgKiBQbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9JbnZhbGlkYXRlUmVjdCk6
CisKIDIwMTUtMDEtMTUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgRU5BQkxFKFNRTF9EQVRBQkFTRSkgZ3VhcmRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCmluZGV4IGZiYTJjZWUyZGE3MmNhZjE0
Yjc1Y2YzNmZhYWQxNGI3NWU1NzQ4NTYuLjBlZTAxM2Q4NDMzYWM5MzhkZWU1MDdhNjljZGMxZjA3
ZWQ2NTY3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2Uu
Y3BwCkBAIC0zNzUsNyArMzc1LDcgQEAgYm9vbCBQbHVnaW5EYXRhYmFzZTo6YWRkRGlzYWJsZWRQ
bHVnaW5GaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiAgICAgcmV0dXJuIG1fZGlzYWJsZWRQ
bHVnaW5GaWxlcy5hZGQoZmlsZU5hbWUpLmlzTmV3RW50cnk7CiB9CiAKLSNpZiAoIU9TKFdJTkRP
V1MpIHx8ICFFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkpCisjaWYgIUVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogLy8gRm9yIFNhZmFyaS9XaW4gdGhlIGZvbGxvd2luZyB0aHJlZSBtZXRo
b2RzIGFyZSBpbXBsZW1lbnRlZAogLy8gaW4gUGx1Z2luRGF0YWJhc2VXaW4uY3BwLCBidXQgaWYg
d2UgY2FuIHVzZSBXZWJDb3JlIGNvbnN0cnVjdHMKIC8vIGZvciB0aGUgbG9naWMgd2Ugc2hvdWxk
IHBlcmhhcHMgbW92ZSBpdCBoZXJlIHVuZGVyIFhQX1dJTj8KQEAgLTM4NCw1MyArMzg0LDkgQEAg
VmVjdG9yPFN0cmluZz4gUGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5EaXJlY3Rvcmllcygp
CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gcGF0aHM7CiAKLSAgICAvLyBBZGQgcGF0aHMgc3BlY2lm
aWMgdG8gZWFjaCBwbGF0Zm9ybQotI2lmIGRlZmluZWQoWFBfVU5JWCkKLSAgICBTdHJpbmcgdXNl
clBsdWdpblBhdGggPSBob21lRGlyZWN0b3J5UGF0aCgpOwotICAgIHVzZXJQbHVnaW5QYXRoLmFw
cGVuZChTdHJpbmcoIi8ubW96aWxsYS9wbHVnaW5zIikpOwotICAgIHBhdGhzLmFwcGVuZCh1c2Vy
UGx1Z2luUGF0aCk7Ci0KLSAgICB1c2VyUGx1Z2luUGF0aCA9IGhvbWVEaXJlY3RvcnlQYXRoKCk7
Ci0gICAgdXNlclBsdWdpblBhdGguYXBwZW5kKFN0cmluZygiLy5uZXRzY2FwZS9wbHVnaW5zIikp
OwotICAgIHBhdGhzLmFwcGVuZCh1c2VyUGx1Z2luUGF0aCk7Ci0KLSAgICBwYXRocy5hcHBlbmQo
Ii91c3IvbGliL2Jyb3dzZXIvcGx1Z2lucyIpOwotICAgIHBhdGhzLmFwcGVuZCgiL3Vzci9sb2Nh
bC9saWIvbW96aWxsYS9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYi9maXJl
Zm94L3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi91c3IvbGliNjQvYnJvd3Nlci1wbHVn
aW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYi9icm93c2VyLXBsdWdpbnMiKTsKLSAg
ICBwYXRocy5hcHBlbmQoIi91c3IvbGliL21vemlsbGEvcGx1Z2lucyIpOwotICAgIHBhdGhzLmFw
cGVuZCgiL3Vzci9sb2NhbC9uZXRzY2FwZS9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIv
b3B0L21vemlsbGEvcGx1Z2lucyIpOwotICAgIHBhdGhzLmFwcGVuZCgiL29wdC9tb3ppbGxhL2xp
Yi9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvb3B0L25ldHNjYXBlL3BsdWdpbnMiKTsK
LSAgICBwYXRocy5hcHBlbmQoIi9vcHQvbmV0c2NhcGUvY29tbXVuaWNhdG9yL3BsdWdpbnMiKTsK
LSAgICBwYXRocy5hcHBlbmQoIi91c3IvbGliL25ldHNjYXBlL3BsdWdpbnMiKTsKLSAgICBwYXRo
cy5hcHBlbmQoIi91c3IvbGliL25ldHNjYXBlL3BsdWdpbnMtbGliYzUiKTsKLSAgICBwYXRocy5h
cHBlbmQoIi91c3IvbGliL25ldHNjYXBlL3BsdWdpbnMtbGliYzYiKTsKLSAgICBwYXRocy5hcHBl
bmQoIi91c3IvbGliNjQvbmV0c2NhcGUvcGx1Z2lucyIpOwotICAgIHBhdGhzLmFwcGVuZCgiL3Vz
ci9saWI2NC9tb3ppbGxhL3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi91c3IvbGliL25z
YnJvd3Nlci9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYjY0L25zYnJvd3Nl
ci9wbHVnaW5zIik7Ci0KLSAgICBTdHJpbmcgbW96SG9tZShnZXRlbnYoIk1PWklMTEFfSE9NRSIp
KTsKLSAgICBtb3pIb21lLmFwcGVuZCgiL3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQobW96
SG9tZSk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBtb3pQYXRoczsKLSAgICBTdHJpbmcgbW96UGF0
aChnZXRlbnYoIk1PWl9QTFVHSU5fUEFUSCIpKTsKLSAgICBtb3pQYXRoLnNwbGl0KFVDaGFyKCc6
JyksIC8qIGFsbG93RW1wdHlFbnRyaWVzICovIGZhbHNlLCBtb3pQYXRocyk7Ci0gICAgcGF0aHMu
YXBwZW5kVmVjdG9yKG1velBhdGhzKTsKLSNlbGlmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgIFN0
cmluZyB1c2VyUGx1Z2luUGF0aCA9IGhvbWVEaXJlY3RvcnlQYXRoKCk7Ci0gICAgdXNlclBsdWdp
blBhdGguYXBwZW5kKFN0cmluZygiL0xpYnJhcnkvSW50ZXJuZXQgUGx1Zy1JbnMiKSk7Ci0gICAg
cGF0aHMuYXBwZW5kKHVzZXJQbHVnaW5QYXRoKTsKLSAgICBwYXRocy5hcHBlbmQoIi9MaWJyYXJ5
L0ludGVybmV0IFBsdWctSW5zIik7Ci0jZWxpZiBkZWZpbmVkKFhQX1dJTikKICAgICBTdHJpbmcg
dXNlclBsdWdpblBhdGggPSBob21lRGlyZWN0b3J5UGF0aCgpOwogICAgIHVzZXJQbHVnaW5QYXRo
LmFwcGVuZChTdHJpbmcoIlxcQXBwbGljYXRpb24gRGF0YVxcTW96aWxsYVxccGx1Z2lucyIpKTsK
ICAgICBwYXRocy5hcHBlbmQodXNlclBsdWdpblBhdGgpOwotI2VuZGlmCiAKICAgICByZXR1cm4g
cGF0aHM7CiB9CkBAIC00MzksMTMgKzM5NSw3IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6OmlzUHJl
ZmVycmVkUGx1Z2luRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBTdHJpbmcg
cHJlZmVycmVkUGF0aCA9IGhvbWVEaXJlY3RvcnlQYXRoKCk7CiAKLSNpZiBkZWZpbmVkKFhQX1VO
SVgpCi0gICAgcHJlZmVycmVkUGF0aC5hcHBlbmQoU3RyaW5nKCIvLm1vemlsbGEvcGx1Z2lucyIp
KTsKLSNlbGlmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgIHByZWZlcnJlZFBhdGguYXBwZW5kKFN0
cmluZygiL0xpYnJhcnkvSW50ZXJuZXQgUGx1Zy1JbnMiKSk7Ci0jZWxpZiBkZWZpbmVkKFhQX1dJ
TikKICAgICBwcmVmZXJyZWRQYXRoLmFwcGVuZChTdHJpbmcoIlxcQXBwbGljYXRpb24gRGF0YVxc
TW96aWxsYVxccGx1Z2lucyIpKTsKLSNlbmRpZgogCiAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIG5v
cm1hbGl6ZSB0aGUgcGF0aCBiZWZvcmUgZG9pbmcgYSBjb21wYXJpc29uLgogICAgIHJldHVybiBw
YXRoID09IHByZWZlcnJlZFBhdGg7CkBAIC00NTYsMTEgKzQwNiw3IEBAIHZvaWQgUGx1Z2luRGF0
YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3RvcmllcyhIYXNoU2V0PFN0cmluZz4mIHBhdGhz
KSBjb25zdAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIGNhc2UgaW5zZW5zaXRpdmUg
c2V0LgogICAgIEhhc2hTZXQ8U3RyaW5nPiB1bmlxdWVGaWxlbmFtZXM7CiAKLSNpZiBkZWZpbmVk
KFhQX1VOSVgpCi0gICAgU3RyaW5nIGZpbGVOYW1lRmlsdGVyKCIqLnNvIik7Ci0jZWxzZQogICAg
IFN0cmluZyBmaWxlTmFtZUZpbHRlcigiIik7Ci0jZW5kaWYKIAogICAgIFZlY3RvcjxTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBkaXJzRW5kID0gbV9wbHVnaW5EaXJlY3Rvcmllcy5lbmQoKTsKICAg
ICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBkSXQgPSBtX3BsdWdpbkRpcmVj
dG9yaWVzLmJlZ2luKCk7IGRJdCAhPSBkaXJzRW5kOyArK2RJdCkgewpAQCAtNDc1LDcgKzQyMSw3
IEBAIHZvaWQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3RvcmllcyhIYXNo
U2V0PFN0cmluZz4mIHBhdGhzKSBjb25zdAogICAgIH0KIH0KIAotI2VuZGlmIC8vICFPUyhXSU5E
T1dTKQorI2VuZGlmIC8vICFFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vUGx1
Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKaW5kZXggNjZkMjNhZTY3MTM4YWNhYmM2NWI0ZTMwMGNmMmNl
MTc5ODE0MDUzNi4uNGU3ZTk3OGJlY2Q2YTExMDQzNzllMzYzMjdhY2ZlNGMzNTllMDdmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKQEAgLTUxLDM3ICs1MSwx
MSBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXJyb3JTdHJpbmdzW10gPSB7CiAgICAgIlVu
a25vd24gZXJyb3IgY29kZSIKIH07CiAKLSNpZmRlZiBYUF9NQUNPU1gKLXN0YXRpYyBjb25zdCBj
aGFyKiBjb25zdCBkcmF3aW5nTW9kZWxzW10gPSB7Ci0gICAgIk5QRHJhd2luZ01vZGVsUXVpY2tE
cmF3IiwKLSAgICAiTlBEcmF3aW5nTW9kZWxDb3JlR3JhcGhpY3MiLAotICAgICJOUERyYXdpbmdN
b2RlbE9wZW5HTCIsCi0gICAgIk5QRHJhd2luZ01vZGVsQ29yZUFuaW1hdGlvbiIKLX07Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiBjb25zdCBldmVudE1vZGVsc1tdID0gewotICAgICJOUEV2ZW50TW9k
ZWxDYXJib24iLAotICAgICJOUEV2ZW50TW9kZWxDb2NvYSIKLX07Ci0jZW5kaWYgLy9YUF9NQUNP
U1gKLQogY29uc3QgY2hhciogcHJldHR5TmFtZUZvck5QRXJyb3IoTlBFcnJvciBlcnJvcikKIHsK
ICAgICByZXR1cm4gZXJyb3JTdHJpbmdzW2Vycm9yXTsKIH0KIAotI2lmZGVmIFhQX01BQ09TWAot
Y29uc3QgY2hhciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBkcmF3
aW5nTW9kZWwpCi17Ci0gICAgcmV0dXJuIGRyYXdpbmdNb2RlbHNbZHJhd2luZ01vZGVsXTsKLX0K
LQotY29uc3QgY2hhciogcHJldHR5TmFtZUZvckV2ZW50TW9kZWwoTlBFdmVudE1vZGVsIGV2ZW50
TW9kZWwpCi17Ci0gICAgcmV0dXJuIGV2ZW50TW9kZWxzW2V2ZW50TW9kZWxdOwotfQotI2VuZGlm
IC8vWFBfTUFDT1NYCi0KIENTdHJpbmcgcHJldHR5TmFtZUZvck5QTlZhcmlhYmxlKE5QTlZhcmlh
YmxlIHZhcmlhYmxlKQogewogICAgIHN3aXRjaCAodmFyaWFibGUpIHsKQEAgLTEwMywyNSArNzcs
MTEgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUoTlBOVmFyaWFibGUgdmFyaWFi
bGUpCiAgICAgY2FzZSBOUE5WU3VwcG9ydHNXaW5kb3dsZXNzOiByZXR1cm4gIk5QTlZTdXBwb3J0
c1dpbmRvd2xlc3MiOwogICAgIGNhc2UgTlBOVnByaXZhdGVNb2RlQm9vbDogcmV0dXJuICJOUE5W
cHJpdmF0ZU1vZGVCb29sIjsKIAotI2lmZGVmIFhQX01BQ09TWAotICAgIGNhc2UgTlBOVnBsdWdp
bkRyYXdpbmdNb2RlbDogcmV0dXJuICJOUE5WcGx1Z2luRHJhd2luZ01vZGVsIjsKLSNpZm5kZWYg
TlBfTk9fUVVJQ0tEUkFXCi0gICAgY2FzZSBOUE5Wc3VwcG9ydHNRdWlja0RyYXdCb29sOiByZXR1
cm4gIk5QTlZzdXBwb3J0c1F1aWNrRHJhd0Jvb2wiOwotI2VuZGlmCi0gICAgY2FzZSBOUE5Wc3Vw
cG9ydHNDb3JlR3JhcGhpY3NCb29sOiByZXR1cm4gIk5QTlZzdXBwb3J0c0NvcmVHcmFwaGljc0Jv
b2wiOwotICAgIGNhc2UgTlBOVnN1cHBvcnRzT3BlbkdMQm9vbDogcmV0dXJuICJOUE5Wc3VwcG9y
dHNPcGVuR0xCb29sIjsKLSAgICBjYXNlIE5QTlZzdXBwb3J0c0NvcmVBbmltYXRpb25Cb29sOiBy
ZXR1cm4gIk5QTlZzdXBwb3J0c0NvcmVBbmltYXRpb25Cb29sIjsKLSNpZm5kZWYgTlBfTk9fQ0FS
Qk9OCi0gICAgY2FzZSBOUE5Wc3VwcG9ydHNDYXJib25Cb29sOiByZXR1cm4gIk5QTlZzdXBwb3J0
c0NhcmJvbkJvb2wiOwotI2VuZGlmCi0gICAgY2FzZSBOUE5Wc3VwcG9ydHNDb2NvYUJvb2w6IHJl
dHVybiAiTlBOVnN1cHBvcnRzQ29jb2FCb29sIjsKLSNlbmRpZgotCiAgICAgZGVmYXVsdDogcmV0
dXJuICJVbmtub3duIHZhcmlhYmxlIjsKICAgICB9CiB9CiAKLUNTdHJpbmcgcHJldHR5TmFtZUZv
ck5QUFZhcmlhYmxlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKK0NTdHJpbmcg
cHJldHR5TmFtZUZvck5QUFZhcmlhYmxlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKikKIHsK
ICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CiAgICAgY2FzZSBOUFBWcGx1Z2luTmFtZVN0cmluZzog
cmV0dXJuICJOUFBWcGx1Z2luTmFtZVN0cmluZyI7CkBAIC0xNDYsMjIgKzEwNiw2IEBAIENTdHJp
bmcgcHJldHR5TmFtZUZvck5QUFZhcmlhYmxlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSkKICAgICBjYXNlIE5QUFZwbHVnaW5XYW50c0FsbE5ldHdvcmtTdHJlYW1zOiByZXR1cm4g
Ik5QUFZwbHVnaW5XYW50c0FsbE5ldHdvcmtTdHJlYW1zIjsKICAgICBjYXNlIE5QUFZwbHVnaW5D
YW5jZWxTcmNTdHJlYW06IHJldHVybiAiTlBQVnBsdWdpbkNhbmNlbFNyY1N0cmVhbSI7CiAKLSNp
ZmRlZiBYUF9NQUNPU1gKLSAgICBjYXNlIE5QUFZwbHVnaW5EcmF3aW5nTW9kZWw6IHsKLSAgICAg
ICAgU3RyaW5nIHJlc3VsdCgiTlBQVnBsdWdpbkRyYXdpbmdNb2RlbCwgIik7Ci0gICAgICAgIHJl
c3VsdC5hcHBlbmQocHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCh1aW50
cHRyX3QodmFsdWUpKSkpOwotICAgICAgICByZXR1cm4gcmVzdWx0LmxhdGluMSgpOwotICAgIH0K
LSAgICBjYXNlIE5QUFZwbHVnaW5FdmVudE1vZGVsOiB7Ci0gICAgICAgIFN0cmluZyByZXN1bHQo
Ik5QUFZwbHVnaW5FdmVudE1vZGVsLCAiKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChwcmV0dHlO
YW1lRm9yRXZlbnRNb2RlbChOUEV2ZW50TW9kZWwodWludHB0cl90KHZhbHVlKSkpKTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdC5sYXRpbjEoKTsKLSAgICB9Ci0gICAgY2FzZSBOUFBWcGx1Z2luQ29y
ZUFuaW1hdGlvbkxheWVyOiByZXR1cm4gIk5QUFZwbHVnaW5Db3JlQW5pbWF0aW9uTGF5ZXIiOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotI2VuZGlmCi0KICAgICBkZWZhdWx0OiBy
ZXR1cm4gIlVua25vd24gdmFyaWFibGUiOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luRGVidWcuaAppbmRleCA2Njc0ODVlOTA5MjhhMDVmY2JkYTgyOTQwYTczOTY3MDk4
NzFkYjYxLi44YzRmY2I3NGVkZDU4ZWE0OGQxYzk4MDhmY2VlYjZlZjU1MWJjNjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbkRlYnVnLmgKKysrIGIvU291cmNl
L1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCkBAIC00MywxMSArNDMsNiBAQCBDU3Ry
aW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3Ry
aW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUpOwogCi0jaWZkZWYgWFBfTUFDT1NYCi1jb25zdCBjaGFyKiBwcmV0dHlOYW1l
Rm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsIGRyYXdpbmdNb2RlbCk7Ci1jb25zdCBjaGFy
KiBwcmV0dHlOYW1lRm9yRXZlbnRNb2RlbChOUEV2ZW50TW9kZWwgZXZlbnRNb2RlbCk7Ci0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggN2U4Nzdj
MDE5NzI5ZTgyNWY2Zjc2MjBlNmY1ZjU3ODI5NzRkMDYzOS4uZGIxYWJiNjYxYzg0NDAyZDE0OWNj
Y2QyMGE5MjdmY2ZiOGJkMDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lu
cy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
blBhY2thZ2UuY3BwCkBAIC0xODUsOTQgKzE4NSw2IEBAIFBhc3NSZWZQdHI8UGx1Z2luUGFja2Fn
ZT4gUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZUZyb21DYWNoZShjb25zdCBTdHJpbmcmIHBh
CiB9CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoWFBfVU5JWCkKLXZvaWQgUGx1Z2luUGFja2FnZTo6
ZGV0ZXJtaW5lUXVpcmtzKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCi17Ci0gICAgaWYgKE1JTUVU
eXBlUmVnaXN0cnk6OmlzSmF2YUFwcGxldE1JTUVUeXBlKG1pbWVUeXBlKSkgewotICAgICAgICAv
LyBCZWNhdXNlIGEgc2luZ2xlIHByb2Nlc3MgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZSBWTXMsIGFu
ZCB3ZSBjYW5ub3QgcmVsaWFibHkgdW5sb2FkIGEKLSAgICAgICAgLy8gSmF2YSBWTSwgd2UgY2Fu
bm90IHVubG9hZCB0aGUgSmF2YSBwbHVnaW4sIG9yIHdlJ2xsIGxvc2UgcmVmZXJlbmNlIHRvIG91
ciBvbmx5IFZNCi0gICAgICAgIG1fcXVpcmtzLmFkZChQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVn
aW4pOwotCi0gICAgICAgIC8vIFNldHRpbmcgdGhlIHdpbmRvdyByZWdpb24gdG8gYW4gZW1wdHkg
cmVnaW9uIGNhdXNlcyBiYWQgc2Nyb2xsaW5nIHJlcGFpbnQgcHJvYmxlbXMKLSAgICAgICAgLy8g
d2l0aCB0aGUgSmF2YSBwbHVnLWluLgotICAgICAgICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtE
b250Q2xpcFRvWmVyb1JlY3RXaGVuU2Nyb2xsaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmIChtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giKSB7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBQbGF0Zm9ybU1vZHVsZVZlcnNpb24gZmxhc2hUZW5WZXJz
aW9uKDB4MGEwMDAwMDApOwotCi0gICAgICAgIGlmIChjb21wYXJlRmlsZVZlcnNpb24oZmxhc2hU
ZW5WZXJzaW9uKSA+PSAwKSB7Ci0gICAgICAgICAgICAvLyBGbGFzaCAxMC4wIGIyMTggZG9lc24n
dCBsaWtlIGhhdmluZyBhIE5VTEwgd2luZG93IGhhbmRsZQotICAgICAgICAgICAgbV9xdWlya3Mu
YWRkKFBsdWdpblF1aXJrRG9udFNldE51bGxXaW5kb3dIYW5kbGVPbkRlc3Ryb3kpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgLy8gRmxhc2ggOSBhbmQgb2xkZXIgcmVxdWVzdHMgd2lu
ZG93bGVzcyBwbHVnaW5zIGlmIHdlIHJldHVybiBhIG1vemlsbGEgdXNlciBhZ2VudAotICAgICAg
ICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrV2FudHNNb3ppbGxhVXNlckFnZW50KTsKLSAg
ICAgICAgfQotCi0jaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgLy8gNjQtYml0IEZsYXNoIGZyZWV6
ZXMgaWYgcmlnaHQtY2xpY2sgaXMgc2VudCBpbiB3aW5kb3dsZXNzIG1vZGUKLSAgICAgICAgbV9x
dWlya3MuYWRkKFBsdWdpblF1aXJrSWdub3JlUmlnaHRDbGlja0luV2luZG93bGVzc01vZGUpOwot
I2VuZGlmCi0KLSAgICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrUmVxdWlyZXNEZWZhdWx0
U2NyZWVuRGVwdGgpOwotICAgICAgICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtUaHJvdHRsZUlu
dmFsaWRhdGUpOwotICAgICAgICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtUaHJvdHRsZVdNVXNl
clBsdXNPbmVNZXNzYWdlcyk7Ci0gICAgICAgIG1fcXVpcmtzLmFkZChQbHVnaW5RdWlya0ZsYXNo
VVJMTm90aWZ5QnVnKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQotI2lmICFPUyhXSU5ET1dTKQotdm9p
ZCBQbHVnaW5QYWNrYWdlOjpkZXRlcm1pbmVNb2R1bGVWZXJzaW9uRnJvbURlc2NyaXB0aW9uKCkK
LXsKLSAgICAvLyBJdCdzIGEgYml0IGxhbWUgdG8gZGV0ZWN0IHRoZSBwbHVnaW4gdmVyc2lvbiBi
eSBwYXJzaW5nIGl0Ci0gICAgLy8gZnJvbSB0aGUgcGx1Z2luIGRlc2NyaXB0aW9uIHN0cmluZywg
YnV0IGl0IGRvZXNuJ3Qgc2VlbSB0aGF0Ci0gICAgLy8gdmVyc2lvbiBpbmZvcm1hdGlvbiBpcyBh
dmFpbGFibGUgaW4gYW55IHN0YW5kYXJkaXplZCB3YXkgYXQKLSAgICAvLyB0aGUgbW9kdWxlIGxl
dmVsLCBsaWtlIGluIFdpbmRvd3MKLQotICAgIGlmIChtX2Rlc2NyaXB0aW9uLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fZGVzY3JpcHRpb24uc3RhcnRzV2l0aCgiU2hv
Y2t3YXZlIEZsYXNoIikgJiYgbV9kZXNjcmlwdGlvbi5sZW5ndGgoKSA+PSAxOSkgewotICAgICAg
ICAvLyBUaGUgZmxhc2ggdmVyc2lvbiBhcyBhIFBsYXRmb3JtTW9kdWxlVmVyc2lvbiBkaWZmZXJz
IG9uIFVuaXggZnJvbSBXaW5kb3dzCi0gICAgICAgIC8vIHNpbmNlIHRoZSByZXZpc2lvbiBjYW4g
YmUgbGFyZ2VyIHRoYW4gYSA4IGJpdHMsIHNvIHdlIGFsbG93IGl0IDE2IGhlcmUgYW5kCi0gICAg
ICAgIC8vIHB1c2ggdGhlIG1ham9yL21pbm9yIHVwIDggYml0cy4gVGh1cyBvbiBVbml4LCBGbGFz
aCdzIHZlcnNpb24gbWF5IGJlCi0gICAgICAgIC8vIDB4MGEwMDAwMDAgaW5zdGVhZCBvZiAweDAw
MGEwMDAwLgotCi0gICAgICAgIFZlY3RvcjxTdHJpbmc+IHZlcnNpb25QYXJ0czsKLSAgICAgICAg
bV9kZXNjcmlwdGlvbi5zdWJzdHJpbmcoMTYpLnNwbGl0KCcgJywgLyphbGxvd0VtcHR5RW50cmll
cyA9Ki8gZmFsc2UsIHZlcnNpb25QYXJ0cyk7Ci0gICAgICAgIGlmICh2ZXJzaW9uUGFydHMuaXNF
bXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh2ZXJzaW9uUGFydHMu
c2l6ZSgpID49IDEpIHsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1ham9yTWlub3JQYXJ0
czsKLSAgICAgICAgICAgIHZlcnNpb25QYXJ0c1swXS5zcGxpdCgnLicsIG1ham9yTWlub3JQYXJ0
cyk7Ci0gICAgICAgICAgICBpZiAobWFqb3JNaW5vclBhcnRzLnNpemUoKSA+PSAxKSB7Ci0gICAg
ICAgICAgICAgICAgYm9vbCBjb252ZXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB1bnNp
Z25lZCBtYWpvciA9IG1ham9yTWlub3JQYXJ0c1swXS50b1VJbnQoJmNvbnZlcnRlZCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKGNvbnZlcnRlZCkKLSAgICAgICAgICAgICAgICAgICAgbV9tb2R1bGVW
ZXJzaW9uID0gKG1ham9yICYgMHhmZikgPDwgMjQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAobWFqb3JNaW5vclBhcnRzLnNpemUoKSA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgYm9v
bCBjb252ZXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBtaW5vciA9IG1h
am9yTWlub3JQYXJ0c1sxXS50b1VJbnQoJmNvbnZlcnRlZCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGNvbnZlcnRlZCkKLSAgICAgICAgICAgICAgICAgICAgbV9tb2R1bGVWZXJzaW9uIHw9IChtaW5v
ciAmIDB4ZmYpIDw8IDE2OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KHZlcnNpb25QYXJ0cy5zaXplKCkgPj0gMikgewotICAgICAgICAgICAgU3RyaW5nIHJldmlzaW9u
ID0gdmVyc2lvblBhcnRzWzFdOwotICAgICAgICAgICAgaWYgKHJldmlzaW9uLmxlbmd0aCgpID4g
MSAmJiAocmV2aXNpb25bMF0gPT0gJ3InIHx8IHJldmlzaW9uWzBdID09ICdiJykpIHsKLSAgICAg
ICAgICAgICAgICByZXZpc2lvbi5yZW1vdmUoMCwgMSk7Ci0gICAgICAgICAgICAgICAgbV9tb2R1
bGVWZXJzaW9uIHw9IHJldmlzaW9uLnRvSW50KCkgJiAweGZmZmY7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogc3RhdGljIHZvaWQgZ2V0TGlzdEZyb21WYXJpYW50QXJncyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1bnNpZ25lZCBhcmdDb3VudCwgSlNDOjpCaW5k
aW5nczo6Um9vdE9iamVjdCogcm9vdE9iamVjdCwgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYg
YUxpc3QpCiB7CkBAIC00NDYsMTUgKzM1OCwxMCBAQCBpbnQgUGx1Z2luUGFja2FnZTo6Y29tcGFy
ZUZpbGVWZXJzaW9uKGNvbnN0IFBsYXRmb3JtTW9kdWxlVmVyc2lvbiYgY29tcGFyZVZlcnNpbwog
ICAgIC8vIHJldHVybiAtMSwgMCwgb3IgMSBpZiBwbHVnLWluIHZlcnNpb24gaXMgbGVzcyB0aGFu
LCBlcXVhbCB0bywgb3IgZ3JlYXRlciB0aGFuCiAgICAgLy8gdGhlIHBhc3NlZCB2ZXJzaW9uCiAK
LSNpZiBPUyhXSU5ET1dTKQogICAgIGlmIChtX21vZHVsZVZlcnNpb24ubW9zdFNpZyAhPSBjb21w
YXJlVmVyc2lvbi5tb3N0U2lnKQogICAgICAgICByZXR1cm4gbV9tb2R1bGVWZXJzaW9uLm1vc3RT
aWcgPiBjb21wYXJlVmVyc2lvbi5tb3N0U2lnID8gMSA6IC0xOwogICAgIGlmIChtX21vZHVsZVZl
cnNpb24ubGVhc3RTaWcgIT0gY29tcGFyZVZlcnNpb24ubGVhc3RTaWcpCiAgICAgICAgIHJldHVy
biBtX21vZHVsZVZlcnNpb24ubGVhc3RTaWcgPiBjb21wYXJlVmVyc2lvbi5sZWFzdFNpZyA/IDEg
OiAtMTsKLSNlbHNlICAgIAotICAgIGlmIChtX21vZHVsZVZlcnNpb24gIT0gY29tcGFyZVZlcnNp
b24pCi0gICAgICAgIHJldHVybiBtX21vZHVsZVZlcnNpb24gPiBjb21wYXJlVmVyc2lvbiA/IDEg
OiAtMTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAppbmRleCBiMGYwNDA4ODIzZTAzMzMzZWE5YTQ5ZGE5MmEyOGJlZDM0
N2ViNjRkLi41ODQzODU3YjMyMzhjNTEzZWJmNTY3YmI3YzE3NjVmMDYxYTExNWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTc1LDcgKzc1LDcgQEAKICNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCi0jaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaW5jbHVkZSAiUGx1Z2luTWVzc2FnZVRocm90
dGxlcldpbi5oIgogI2VuZGlmCiAKQEAgLTE0MiwxNCArMTQyLDggQEAgdm9pZCBQbHVnaW5WaWV3
OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIHVwZGF0ZVBsdWdpbldp
ZGdldCgpOwogCi0jaWYgT1MoV0lORE9XUykKICAgICAvLyBPbiBXaW5kb3dzIGFsd2F5cyBjYWxs
IHBsdWdpbiB0byBjaGFuZ2UgZ2VvbWV0cnkuCiAgICAgc2V0TlBXaW5kb3dSZWN0KHJlY3QpOwot
I2VsaWYgZGVmaW5lZChYUF9VTklYKQotICAgIC8vIE9uIFVuaXgsIG11bHRpcGxlIGNhbGxzIHRv
IHNldE5QV2luZG93KCkgaW4gd2luZG93ZWQgbW9kZSBjYXVzZXMgRmxhc2ggdG8gY3Jhc2gKLSAg
ICBpZiAobV9tb2RlID09IE5QX0ZVTEwgfHwgIW1faXNXaW5kb3dlZCkKLSAgICAgICAgc2V0TlBX
aW5kb3dSZWN0KHJlY3QpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6ZnJhbWVSZWN0
c0NoYW5nZWQoKQpAQCAtMTc0LDE4ICsxNjgsOCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2
ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgaGFuZGxlTW91c2VFdmVudChzdGF0aWNfY2FzdDxN
b3VzZUV2ZW50Kj4oZXZlbnQpKTsKICAgICBlbHNlIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50
KCkpCiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVu
dCo+KGV2ZW50KSk7Ci0jaWYgZGVmaW5lZChYUF9NQUNPU1gpCi0gICAgZWxzZSBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkud2hlZWxFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQpCi0gICAgICAgIGhhbmRsZVdoZWVsRXZlbnQoc3Rh
dGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7Ci0jZW5kaWYKICAgICBlbHNlIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50KQogICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsgLy8gV2UgZG9uJ3Qga25vdyBpZiB0aGUgcGx1Zy1pbiBo
YXMgaGFuZGxlZCBtb3VzZWRvd24gZXZlbnQgYnkgZGlzcGxheWluZyBhIGNvbnRleHQgbWVudSwg
c28gd2UgbmV2ZXIgd2FudCBXZWJLaXQgdG8gc2hvdyBhIGRlZmF1bHQgb25lLgotI2lmIGRlZmlu
ZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgZWxzZSBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCkKLSAgICAgICAgaGFu
ZGxlRm9jdXNPdXRFdmVudCgpOwotICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmZvY3VzaW5FdmVudCkKLSAgICAgICAgaGFuZGxlRm9jdXNJbkV2ZW50KCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKQEAgLTMzNyw3ICszMjEsNiBAQCB2b2lk
IFBsdWdpblZpZXc6OnN0b3AoKQogICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFs
bExvY2tzKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CiAKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLSNpZiBkZWZpbmVkKFhQX1dJTikgJiYgIVBMQVRGT1JNKEdUSykKICAg
ICAvLyBVbnN1YmNsYXNzIHRoZSB3aW5kb3cKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAg
ICAgIFdORFBST0MgY3VycmVudFduZFByb2MgPSAoV05EUFJPQylHZXRXaW5kb3dMb25nUHRyKHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCksIEdXTFBfV05EUFJPQyk7CkBAIC0zNDUsMTAgKzMyOCw4IEBA
IHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIGlmIChjdXJyZW50V25kUHJvYyA9PSBQ
bHVnaW5WaWV3V25kUHJvYykKICAgICAgICAgICAgIFNldFdpbmRvd0xvbmdQdHIocGxhdGZvcm1Q
bHVnaW5XaWRnZXQoKSwgR1dMUF9XTkRQUk9DLCAoTE9OR19QVFIpbV9wbHVnaW5XbmRQcm9jKTsK
ICAgICB9Ci0jZW5kaWYgLy8gIWRlZmluZWQoWFBfV0lOKSB8fCBQTEFURk9STShHVEspCiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKLSNpZiAhZGVmaW5lZChYUF9NQUNP
U1gpCiAgICAgLy8gQ2xlYXIgdGhlIHdpbmRvdwogICAgIG1fbnBXaW5kb3cud2luZG93ID0gMDsK
IApAQCAtMzYwLDEzICszNDEsNiBAQCB2b2lkIFBsdWdpblZpZXc6OnN0b3AoKQogICAgICAgICBQ
bHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKICAgICB9CiAKLSNpZmRlZiBYUF9V
TklYCi0gICAgZGVsZXRlIHN0YXRpY19jYXN0PE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QqPiht
X25wV2luZG93LndzX2luZm8pOwotICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7Ci0jZW5kaWYK
LQotI2VuZGlmIC8vICFkZWZpbmVkKFhQX01BQ09TWCkKLQogICAgIFBsdWdpbk1haW5UaHJlYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlcigpLnVucmVnaXN0ZXJQbHVnaW4obV9pbnN0YW5jZSk7CiAKICAg
ICBOUFNhdmVkRGF0YSogc2F2ZWREYXRhID0gMDsKQEAgLTYyMiw0MSArNTk2LDYgQEAgTlBFcnJv
ciBQbHVnaW5WaWV3OjpzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUp
CiAgICAgY2FzZSBOUFBWcGx1Z2luVHJhbnNwYXJlbnRCb29sOgogICAgICAgICBtX2lzVHJhbnNw
YXJlbnQgPSB2YWx1ZTsKICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwotI2lmIGRlZmlu
ZWQoWFBfTUFDT1NYKQotICAgIGNhc2UgTlBQVnBsdWdpbkRyYXdpbmdNb2RlbDogewotICAgICAg
ICAvLyBDYW4gb25seSBzZXQgZHJhd2luZyBtb2RlbCBpbnNpZGUgTlBQX05ldygpCi0gICAgICAg
IGlmICh0aGlzICE9IGN1cnJlbnRQbHVnaW5WaWV3KCkpCi0gICAgICAgICAgIHJldHVybiBOUEVS
Ul9HRU5FUklDX0VSUk9SOwotCi0gICAgICAgIE5QRHJhd2luZ01vZGVsIG5ld0RyYXdpbmdNb2Rl
bCA9IE5QRHJhd2luZ01vZGVsKHVpbnRwdHJfdCh2YWx1ZSkpOwotICAgICAgICBzd2l0Y2ggKG5l
d0RyYXdpbmdNb2RlbCkgewotICAgICAgICBjYXNlIE5QRHJhd2luZ01vZGVsQ29yZUdyYXBoaWNz
OgotICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwotICAgICAgICBjYXNlIE5QRHJh
d2luZ01vZGVsQ29yZUFuaW1hdGlvbjoKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIExP
RyhQbHVnaW5zLCAiUGx1Z2luIGFza2VkIGZvciB1bnN1cHBvcnRlZCBkcmF3aW5nIG1vZGVsOiAl
cyIsCi0gICAgICAgICAgICAgICAgICAgIHByZXR0eU5hbWVGb3JEcmF3aW5nTW9kZWwobmV3RHJh
d2luZ01vZGVsKSk7Ci0gICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGNhc2UgTlBQVnBsdWdpbkV2ZW50TW9kZWw6IHsKLSAgICAg
ICAgLy8gQ2FuIG9ubHkgc2V0IGV2ZW50IG1vZGVsIGluc2lkZSBOUFBfTmV3KCkKLSAgICAgICAg
aWYgKHRoaXMgIT0gY3VycmVudFBsdWdpblZpZXcoKSkKLSAgICAgICAgICAgcmV0dXJuIE5QRVJS
X0dFTkVSSUNfRVJST1I7Ci0KLSAgICAgICAgTlBFdmVudE1vZGVsIG5ld0V2ZW50TW9kZWwgPSBO
UEV2ZW50TW9kZWwodWludHB0cl90KHZhbHVlKSk7Ci0gICAgICAgIHN3aXRjaCAobmV3RXZlbnRN
b2RlbCkgewotICAgICAgICBjYXNlIE5QRXZlbnRNb2RlbENvY29hOgotICAgICAgICAgICAgcmV0
dXJuIE5QRVJSX05PX0VSUk9SOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKFBs
dWdpbnMsICJQbHVnaW4gYXNrZWQgZm9yIHVuc3VwcG9ydGVkIGV2ZW50IG1vZGVsOiAlcyIsCi0g
ICAgICAgICAgICAgICAgICAgIHByZXR0eU5hbWVGb3JFdmVudE1vZGVsKG5ld0V2ZW50TW9kZWwp
KTsKLSAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwotICAgICAgICB9Ci0g
ICAgfQotI2VuZGlmIC8vIGRlZmluZWQoWFBfTUFDT1NYKQotCiAgICAgZGVmYXVsdDoKICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7
CkBAIC04MDUsNDAgKzc0NCwxNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJl
bnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwgbV9w
YXJhbVZhbHVlcygwKQogICAgICwgbV9taW1lVHlwZShtaW1lVHlwZSkKICAgICAsIG1faW5zdGFu
Y2UoMCkKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICAsIG1faXNXaW5kb3dlZChmYWxzZSkK
LSAgICAsIG1fdXBkYXRlZENvY29hVGV4dElucHV0UmVxdWVzdGVkKGZhbHNlKQotICAgICwgbV9r
ZXlEb3duU2VudChmYWxzZSkKLSAgICAsIG1fZGlzcmVnYXJkS2V5VXBDb3VudGVyKDApCi0jZWxz
ZQogICAgICwgbV9pc1dpbmRvd2VkKHRydWUpCi0jZW5kaWYKICAgICAsIG1faXNUcmFuc3BhcmVu
dChmYWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9pc1dhaXRp
bmdUb1N0YXJ0KGZhbHNlKQotI2lmIGRlZmluZWQoWFBfVU5JWCkKLSAgICAsIG1fbmVlZHNYRW1i
ZWQoZmFsc2UpCi0jZW5kaWYKLSNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1fcGx1Z2lu
V25kUHJvYygwKQogICAgICwgbV9sYXN0TWVzc2FnZSgwKQogICAgICwgbV9pc0NhbGxpbmdQbHVn
aW5XbmRQcm9jKGZhbHNlKQogICAgICwgbV93bVByaW50SERDKDApCiAgICAgLCBtX2hhdmVVcGRh
dGVkUGx1Z2luV2lkZ2V0KGZhbHNlKQogI2VuZGlmCi0jaWYgUExBVEZPUk0oRUZMKQotICAgICwg
bV93aW5kb3coMCkKLSNlbmRpZgotI2lmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgICwgbV9jb250
ZXh0UmVmKDApCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UodHJ1ZSkKLSAg
ICAsIG1fZHJhd2FibGUoMCkKLSAgICAsIG1fdmlzdWFsKDApCi0gICAgLCBtX2NvbG9ybWFwKDAp
Ci0gICAgLCBtX3BsdWdpbkRpc3BsYXkoMCkKLSNlbmRpZgogICAgICwgbV9sb2FkTWFudWFsbHko
bG9hZE1hbnVhbGx5KQogICAgICwgbV9tYW51YWxTdHJlYW0oMCkKICAgICAsIG1faXNKYXZhU2Ny
aXB0UGF1c2VkKGZhbHNlKQpAQCAtODU4LDkgKzc3NCw2IEBAIFBsdWdpblZpZXc6OlBsdWdpblZp
ZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdl
KiBwCiAgICAgc2V0UGFyYW1ldGVycyhwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAKICAgICBt
ZW1zZXQoJm1fbnBXaW5kb3csIDAsIHNpemVvZihtX25wV2luZG93KSk7Ci0jaWYgZGVmaW5lZChY
UF9NQUNPU1gpCi0gICAgbWVtc2V0KCZtX25wQ2dDb250ZXh0LCAwLCBzaXplb2YobV9ucENnQ29u
dGV4dCkpOwotI2VuZGlmCiAKICAgICByZXNpemUoc2l6ZSk7CiB9CkBAIC0xMjEyLDMzICsxMTI1
LDExIEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRNaXNzaW5nUGx1Z2luSWNvbihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmCiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBN
b3ppbGxhVXNlckFnZW50ID0gIk1vemlsbGEvNS4wICgiCi0jaWYgZGVmaW5lZChYUF9NQUNPU1gp
Ci0gICAgICAgICJNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYOyIKLSNlbGlmIGRlZmluZWQo
WFBfV0lOKQogICAgICAgICAiV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7IgotI2VsaWYgZGVm
aW5lZChYUF9VTklYKQotLy8gVGhlIEd0ayBwb3J0IHVzZXMgWDExIHBsdWdpbnMgaW4gTWFjLgot
I2lmIE9TKERBUldJTikgJiYgUExBVEZPUk0oR1RLKQotICAgICJYMTE7IFU7IEludGVsIE1hYyBP
UyBYOyIKLSNlbHNlCi0gICAgIlgxMTsgVTsgTGludXggaTY4NjsiCi0jZW5kaWYKLSNlbmRpZgog
ICAgICAgICAiIGVuLVVTOyBydjoxLjguMSkgR2Vja28vMjAwNjEwMTAgRmlyZWZveC8yLjAiOwog
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgQ2hyb21lVXNlckFnZW50ID0gIk1vemlsbGEvNS4w
ICgiCi0jaWYgZGVmaW5lZChYUF9NQUNPU1gpCi0gICAgIk1hY2ludG9zaDsgVTsgSW50ZWwgTWFj
IE9TIFg7IgotI2VsaWYgZGVmaW5lZChYUF9XSU4pCiAgICAgIldpbmRvd3M7IFU7IFdpbmRvd3Mg
TlQgNS4xOyIKLSNlbGlmIGRlZmluZWQoWFBfVU5JWCkKLSAgICAvLyBUaGUgR3RrIHBvcnQgdXNl
cyBYMTEgcGx1Z2lucyBpbiBNYWMuCi0jaWYgT1MoREFSV0lOKSAmJiBQTEFURk9STShHVEspCi0g
ICAgIlgxMTsgVTsgSW50ZWwgTWFjIE9TIFg7IgotI2Vsc2UKLSAgICAiWDExOyBVOyBMaW51eCBp
Njg2OyIKLSNlbmRpZgotI2VuZGlmCiAgICAgIiBBcHBsZVdlYktpdC81MzQuMzQgKEtIVE1MLCBs
aWtlIEdlY2tvKSBDaHJvbWUvMTkuMC4xMDU1LjEgU2FmYXJpLzUzNC4zNCI7CiAKIGNvbnN0IGNo
YXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCmluZGV4IGU4NmJiOWQyODExNGFkZDg2OTRkNWNkMTE3YTAzZDY2MGRkZmMwMzQuLmM2
ZmMzOTI4YWM3NjJjNDYyZGM4ZmVjMjUzNTM0OWY3NGY3OWMyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC00NywyMCArNDcsNyBAQAogI2luY2x1ZGUgIm5wcnVu
dGltZV9pbnRlcm5hbC5oIgogI2VuZGlmCiAKLSNpZiBPUyhXSU5ET1dTKSAmJiBQTEFURk9STShH
VEspCi10eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7Ci10eXBlZGVmIEhXTkQgUGxhdGZvcm1Q
bHVnaW5XaWRnZXQ7Ci0jZWxzZQogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBsdWdp
bldpZGdldDsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgc3RydWN0IF9HdGtT
b2NrZXQgR3RrU29ja2V0OwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShYMTEpCi10eXBlZGVmIHVu
c2lnbmVkIGxvbmcgV2luZG93OwotdHlwZWRlZiBzdHJ1Y3QgX1hEaXNwbGF5IERpc3BsYXk7Ci0j
ZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTc2
LDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEtleWJvYXJkRXZlbnQ7
CiAgICAgY2xhc3MgTW91c2VFdmVudDsKICAgICBjbGFzcyBVUkw7Ci0jaWYgT1MoV0lORE9XUykg
JiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgY2xhc3MgUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbjsKICNlbmRpZgogICAg
IGNsYXNzIFBsdWdpblBhY2thZ2U7CkBAIC0yMTUsMTEgKzIwMiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWltZVR5cGU7IH0KICAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Vy
bDsgfQogCi0jaWYgZGVmaW5lZChYUF9NQUNPU1gpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQotICAgICAgICBib29sIHBvcFVwQ29udGV4dE1lbnUoTlBNZW51Kik7Ci0jZW5kaWYKLQot
I2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBQ
bHVnaW5WaWV3V25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CiAgICAgICAgIExS
RVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBB
UkFNIGxQYXJhbSk7CiAgICAgICAgIFdORFBST0MgcGx1Z2luV25kUHJvYygpIGNvbnN0IHsgcmV0
dXJuIG1fcGx1Z2luV25kUHJvYzsgfQpAQCAtMjY3LDcgKzI1MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFydCgpOwogCi0jaWYgT1Mo
V0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIHZvaWQgcGFpbnRXaW5kb3dlZFBsdWdpbkludG9Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgc3RhdGljIEhE
QyBXSU5BUEkgaG9va2VkQmVnaW5QYWludChIV05ELCBQQUlOVFNUUlVDVCopOwogICAgICAgICBz
dGF0aWMgQk9PTCBXSU5BUEkgaG9va2VkRW5kUGFpbnQoSFdORCwgY29uc3QgUEFJTlRTVFJVQ1Qq
KTsKQEAgLTMwMiwzMCArMjg1LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAgICAgYm9vbCBkaXNwYXRjaE5QRXZlbnQoTlBFdmVu
dCYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChYUF9NQUNPU1gpICYmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQotICAgICAgICBpbnQxNl90IGRpc3BhdGNoTlBDb2NvYUV2ZW50KE5QQ29jb2FF
dmVudCYpOwotICAgICAgICBib29sIG1fdXBkYXRlZENvY29hVGV4dElucHV0UmVxdWVzdGVkOwot
ICAgICAgICBib29sIG1fa2V5RG93blNlbnQ7Ci0gICAgICAgIHVpbnQxNl90IG1fZGlzcmVnYXJk
S2V5VXBDb3VudGVyOwotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICAgICAg
dm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqKTsKLSNlbmRpZgogICAgICAgICB2b2lk
IHVwZGF0ZVBsdWdpbldpZGdldCgpOwogICAgICAgICB2b2lkIHBhaW50TWlzc2luZ1BsdWdpbklj
b24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwogCiAgICAgICAgIHZvaWQgaGFu
ZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50Kik7CiAgICAgICAgIHZvaWQgaGFuZGxlTW91
c2VFdmVudChNb3VzZUV2ZW50Kik7Ci0jaWYgZGVmaW5lZChYUF9VTklYKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKLSAgICAgICAgdm9pZCBoYW5kbGVGb2N1c0luRXZlbnQoKTsKLSAg
ICAgICAgdm9pZCBoYW5kbGVGb2N1c091dEV2ZW50KCk7Ci0jZW5kaWYKIAotI2lmIE9TKFdJTkRP
V1MpCiAgICAgICAgIHZvaWQgcGFpbnRJbnRvVHJhbnNmb3JtZWRDb250ZXh0KEhEQyk7CiAgICAg
ICAgIFBhc3NSZWZQdHI8SW1hZ2U+IHNuYXBzaG90KCk7Ci0jZW5kaWYKIAogICAgICAgICBpbnQg
bV9tb2RlOwogICAgICAgICBpbnQgbV9wYXJhbUNvdW50OwpAQCAtMzUyLDExICszMjAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9oYXZlSW5pdGlhbGl6ZWQ7CiAgICAg
ICAgIGJvb2wgbV9pc1dhaXRpbmdUb1N0YXJ0OwogCi0jaWYgZGVmaW5lZChYUF9VTklYKQotICAg
ICAgICBib29sIG1fbmVlZHNYRW1iZWQ7Ci0jZW5kaWYKLQotI2lmIE9TKFdJTkRPV1MpICYmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgICAgICBPd25QdHI8UGx1Z2luTWVzc2FnZVRocm90dGxlcldpbj4gbV9tZXNzYWdlVGhy
b3R0bGVyOwogICAgICAgICBXTkRQUk9DIG1fcGx1Z2luV25kUHJvYzsKICAgICAgICAgdW5zaWdu
ZWQgbV9sYXN0TWVzc2FnZTsKQEAgLTM2NSw0OCArMzI5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBtX2hhdmVVcGRhdGVkUGx1Z2luV2lkZ2V0OwogI2VuZGlmCiAKLSNp
ZiAoUExBVEZPUk0oR1RLKSAmJiBPUyhXSU5ET1dTKSkgfHwgUExBVEZPUk0oRUZMKQotICAgICAg
ICAvLyBPbiBNYWMgT1NYIGFuZCBRdC9XaW5kb3dzIHRoZSBwbHVnaW4gZG9lcyBub3QgaGF2ZSBp
dHMgb3duIG5hdGl2ZSB3aWRnZXQsCi0gICAgICAgIC8vIGJ1dCBpcyB1c2luZyB0aGUgY29udGFp
bmluZyB3aW5kb3cgYXMgaXRzIHJlZmVyZW5jZSBmb3IgcG9zaXRpb25pbmcvcGFpbnRpbmcuCi0g
ICAgICAgIFBsYXRmb3JtUGx1Z2luV2lkZ2V0IG1fd2luZG93OwotcHVibGljOgotICAgICAgICBQ
bGF0Zm9ybVBsdWdpbldpZGdldCBwbGF0Zm9ybVBsdWdpbldpZGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fd2luZG93OyB9Ci0gICAgICAgIHZvaWQgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoUGxhdGZv
cm1QbHVnaW5XaWRnZXQgd2lkZ2V0KSB7IG1fd2luZG93ID0gd2lkZ2V0OyB9Ci0jZWxzZQogcHVi
bGljOgogICAgICAgICB2b2lkIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0KFBsYXRmb3JtUGx1Z2lu
V2lkZ2V0IHdpZGdldCkgeyBzZXRQbGF0Zm9ybVdpZGdldCh3aWRnZXQpOyB9CiAgICAgICAgIFBs
YXRmb3JtUGx1Z2luV2lkZ2V0IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkgY29uc3QgeyByZXR1cm4g
cGxhdGZvcm1XaWRnZXQoKTsgfQotI2VuZGlmCiAKIHByaXZhdGU6Ci0KLSNpZiBkZWZpbmVkKFhQ
X1VOSVgpIHx8IFBMQVRGT1JNKEdUSykKLSAgICAgICAgdm9pZCBzZXROUFdpbmRvd0lmTmVlZGVk
KCk7Ci0jZWxpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICAgICAgTlBfQ0dDb250ZXh0IG1fbnBD
Z0NvbnRleHQ7Ci0gICAgICAgIENHQ29udGV4dFJlZiBtX2NvbnRleHRSZWY7Ci0KLSAgICAgICAg
dm9pZCBzZXROUFdpbmRvd0lmTmVlZGVkKCk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoWFBfVU5J
WCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgICAgIGJvb2wgbV9oYXNQZW5k
aW5nR2VvbWV0cnlDaGFuZ2U7Ci0gICAgICAgIFBpeG1hcCBtX2RyYXdhYmxlOwotICAgICAgICBW
aXN1YWwqIG1fdmlzdWFsOwotICAgICAgICBDb2xvcm1hcCBtX2NvbG9ybWFwOwotICAgICAgICBE
aXNwbGF5KiBtX3BsdWdpbkRpc3BsYXk7Ci0KLSAgICAgICAgdm9pZCBpbml0WEV2ZW50KFhFdmVu
dCogZXZlbnQpOwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIHN0YXRpYyBn
Ym9vbGVhbiBwbHVnUmVtb3ZlZENhbGxiYWNrKEd0a1NvY2tldCosIFBsdWdpblZpZXcqKTsKLSAg
ICAgICAgc3RhdGljIHZvaWQgcGx1Z0FkZGVkQ2FsbGJhY2soR3RrU29ja2V0KiwgUGx1Z2luVmll
dyopOwotICAgICAgICB2b2lkIHVwZGF0ZVdpZGdldEFsbG9jYXRpb25BbmRDbGlwKCk7Ci0gICAg
ICAgIGJvb2wgbV9wbHVnQWRkZWQ7Ci0gICAgICAgIEludFJlY3QgbV9kZWxheWVkQWxsb2NhdGlv
bjsKLSNlbmRpZgotCiAgICAgICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIGNsaXAgcmVj
dCB0byBhcHBseSB0byBhIHdpbmRvd2VkIHBsdWctaW4KICAgICAgICAgSW50UmVjdCBtX3dpbmRv
d1JlY3Q7IC8vIE91ciB3aW5kb3cgcmVjdC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vUGx1Z2lucy9QbHVnaW5WaWV3V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luVmlld1dpbi5jcHAKaW5kZXggZDE5MTExNTY3OWEyMThiNTY1MzE5YTZmZjlmYTIwZDZh
ZTRkZTcyYy4uNjk0NWYyMjE2OTBiNWFlMzgyMzk1NjNhZDdmODA1NTVhNzI1ZGE3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXdXaW4uY3BwCkBAIC03OCwyMiArNzgs
OSBAQAogI2luY2x1ZGUgPGNhaXJvLXdpbjMyLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdU
SykKLSNpbmNsdWRlIDxnZGsvZ2Rrd2luMzIuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jZW5k
aWYKLQogc3RhdGljIGlubGluZSBIV05EIHdpbmRvd0hhbmRsZUZvclBhZ2VDbGllbnQoUGxhdGZv
cm1QYWdlQ2xpZW50IGNsaWVudCkKIHsKLSNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKCFjbGll
bnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChHZGtXaW5kb3cqIHdpbmRvdyA9IGd0a193
aWRnZXRfZ2V0X3dpbmRvdyhjbGllbnQpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFdO
RD4oR0RLX1dJTkRPV19IV05EKHdpbmRvdykpOwotICAgIHJldHVybiAwOwotI2Vsc2UKICAgICBy
ZXR1cm4gY2xpZW50OwotI2VuZGlmCiB9CiAKIHVzaW5nIEpTQzo6RXhlY1N0YXRlOwpAQCAtMTI0
LDcgKzExMSw3IEBAIHN0YXRpYyBCWVRFKiBlbmRQYWludDsKIHR5cGVkZWYgSERDIChXSU5BUEkg
KlB0ckJlZ2luUGFpbnQpKEhXTkQsIFBBSU5UU1RSVUNUKik7CiB0eXBlZGVmIEJPT0wgKFdJTkFQ
SSAqUHRyRW5kUGFpbnQpKEhXTkQsIGNvbnN0IFBBSU5UU1RSVUNUKik7CiAKLSNpZiBPUyhXSU5E
T1dTKSAmJiBDUFUoWDg2XzY0KSAmJiBDT01QSUxFUihNU1ZDKQorI2lmIENQVShYODZfNjQpCiBl
eHRlcm4gIkMiIEhEQyBfX3N0ZGNhbGwgX0hCZWdpblBhaW50KEhXTkQgaFduZCwgTFBQQUlOVFNU
UlVDVCBscFBhaW50KTsKIGV4dGVybiAiQyIgQk9PTCBfX3N0ZGNhbGwgX0hFbmRQYWludChIV05E
IGhXbmQsIGNvbnN0IFBBSU5UU1RSVUNUKiBscFBhaW50KTsKICNlbmRpZgpAQCAtMTQxLDE3ICsx
MjgsNyBAQCBIREMgV0lOQVBJIFBsdWdpblZpZXc6Omhvb2tlZEJlZ2luUGFpbnQoSFdORCBoV25k
LCBQQUlOVFNUUlVDVCogbHBQYWludCkKICAgICAgICAgcmV0dXJuIHBsdWdpblZpZXctPm1fd21Q
cmludEhEQzsKICAgICB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0gICAgSERDIHJlc3VsdDsKLSAg
ICBhc20gKCJwdXNoICAgICUyXG4iCi0gICAgICAgICAicHVzaCAgICAlM1xuIgotICAgICAgICAg
ImNhbGwgICAgKiU0XG4iCi0gICAgICAgICA6ICI9YSIgKHJlc3VsdCkKLSAgICAgICAgIDogImEi
IChiZWdpblBhaW50U3lzQ2FsbCksICJnIiAobHBQYWludCksICJnIiAoaFduZCksICJtIiAoYmVn
aW5QYWludCkKLSAgICAgICAgIDogIm1lbW9yeSIKLSAgICAgICAgKTsKLSAgICByZXR1cm4gcmVz
dWx0OwotI2VsaWYgZGVmaW5lZChfTV9JWDg2KQorI2lmIGRlZmluZWQoX01fSVg4NikKICAgICAv
LyBDYWxsIHRocm91Z2ggdG8gdGhlIG9yaWdpbmFsIEJlZ2luUGFpbnQuCiAgICAgX19hc20gICBt
b3YgICAgIGVheCwgYmVnaW5QYWludFN5c0NhbGwKICAgICBfX2FzbSAgIHB1c2ggICAgbHBQYWlu
dApAQCAtMTcxLDE2ICsxNDgsNyBAQCBCT09MIFdJTkFQSSBQbHVnaW5WaWV3Ojpob29rZWRFbmRQ
YWludChIV05EIGhXbmQsIGNvbnN0IFBBSU5UU1RSVUNUKiBscFBhaW50KQogICAgICAgICByZXR1
cm4gVFJVRTsKICAgICB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0gICAgQk9PTCByZXN1bHQ7Ci0g
ICAgYXNtICgicHVzaCAgICUyXG4iCi0gICAgICAgICAicHVzaCAgICUzXG4iCi0gICAgICAgICAi
Y2FsbCAgIColNFxuIgotICAgICAgICAgOiAiPWEiIChyZXN1bHQpCi0gICAgICAgICA6ICJhIiAo
ZW5kUGFpbnRTeXNDYWxsKSwgImciIChscFBhaW50KSwgImciIChoV25kKSwgIm0iIChlbmRQYWlu
dCkKLSAgICAgICAgKTsKLSAgICByZXR1cm4gcmVzdWx0OwotI2VsaWYgZGVmaW5lZCAoX01fSVg4
NikKKyNpZiBkZWZpbmVkIChfTV9JWDg2KQogICAgIC8vIENhbGwgdGhyb3VnaCB0byB0aGUgb3Jp
Z2luYWwgRW5kUGFpbnQuCiAgICAgX19hc20gICBtb3YgICAgIGVheCwgZW5kUGFpbnRTeXNDYWxs
CiAgICAgX19hc20gICBwdXNoICAgIGxwUGFpbnQKQEAgLTIwMCw3ICsxNjgsNyBAQCBzdGF0aWMg
dm9pZCBob29rKGNvbnN0IGNoYXIqIG1vZHVsZSwgY29uc3QgY2hhciogcHJvYywgdW5zaWduZWQm
IHN5c0NhbGxJRCwgQllURQogCiAgICAgcFByb2MgPSByZWludGVycHJldF9jYXN0PEJZVEUqPihy
ZWludGVycHJldF9jYXN0PHB0cmRpZmZfdD4oR2V0UHJvY0FkZHJlc3MoaE1vZCwgcHJvYykpKTsK
IAotI2lmIENPTVBJTEVSKEdDQykgfHwgZGVmaW5lZChfTV9JWDg2KQorI2lmIGRlZmluZWQoX01f
SVg4NikKICAgICBpZiAocFByb2NbMF0gIT0gMHhCOCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0y
NzEsMTAgKzIzOSw2IEBAIHN0YXRpYyBib29sIHJlZ2lzdGVyUGx1Z2luVmlldygpCiAKICAgICBo
YXZlUmVnaXN0ZXJlZFdpbmRvd0NsYXNzID0gdHJ1ZTsKIAotI2lmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJDb3JlOjpzZXRJbnN0YW5jZUhhbmRsZSgoSElOU1RBTkNFKShHZXRNb2R1bGVIYW5kbGUo
MCkpKTsKLSNlbmRpZgotCiAgICAgQVNTRVJUKFdlYkNvcmU6Omluc3RhbmNlSGFuZGxlKCkpOwog
CiAgICAgV05EQ0xBU1NFWCB3Y2V4OwpAQCAtNTk0LDIxICs1NTgsMTEgQEAgdm9pZCBQbHVnaW5W
aWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3Qp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBJbiB0aGUgR1RLIGFuZCBRdCBwb3J0
cyB3ZSBkcmF3IGluIGFuIG9mZnNjcmVlbiBidWZmZXIgYW5kIGRvbid0IHdhbnQgdG8gdXNlIHRo
ZSB3aW5kb3cKLSAgICAvLyBjb29yZGluYXRlcy4KLSNpZiBQTEFURk9STShHVEspCi0gICAgSW50
UmVjdCByZWN0SW5XaW5kb3cocmVjdCk7Ci0gICAgcmVjdEluV2luZG93LmludGVyc2VjdChmcmFt
ZVJlY3QoKSk7Ci0jZWxzZQogICAgIEludFJlY3QgcmVjdEluV2luZG93ID0gZG93bmNhc3Q8RnJh
bWVWaWV3PigqcGFyZW50KCkpLmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOwotI2VuZGlm
CiAgICAgTG9jYWxXaW5kb3dzQ29udGV4dCB3aW5kb3dzQ29udGV4dChjb250ZXh0LCByZWN0SW5X
aW5kb3csIG1faXNUcmFuc3BhcmVudCk7CiAKICAgICAvLyBPbiBTYWZhcmkvV2luZG93cyB3aXRo
b3V0IHRyYW5zcGFyZW5jeSBsYXllcnMgdGhlIEdyYXBoaWNzQ29udGV4dCByZXR1cm5zIHRoZSBI
REMKICAgICAvLyBvZiB0aGUgd2luZG93IGFuZCB0aGUgcGx1Z2luIGV4cGVjdHMgdGhhdCB0aGUg
cGFzc2VkIGluIERDIGhhcyB3aW5kb3cgY29vcmRpbmF0ZXMuCi0gICAgLy8gSW4gdGhlIEdUSyBh
bmQgUXQgcG9ydHMgd2UgYWx3YXlzIGRyYXcgaW4gYW4gb2Zmc2NyZWVuIGJ1ZmZlciBhbmQgdGhl
cmVmb3JlIG5lZWQKLSAgICAvLyB0byBwcmVzZXJ2ZSB0aGUgdHJhbnNsYXRpb24gc2V0IGluIGdl
dFdpbmRvd3NDb250ZXh0LgotI2lmICFQTEFURk9STShHVEspCiAgICAgaWYgKCFjb250ZXh0LT5p
c0luVHJhbnNwYXJlbmN5TGF5ZXIoKSkgewogICAgICAgICBYRk9STSB0cmFuc2Zvcm07CiAgICAg
ICAgIEdldFdvcmxkVHJhbnNmb3JtKHdpbmRvd3NDb250ZXh0LmhkYygpLCAmdHJhbnNmb3JtKTsK
QEAgLTYxNiw3ICs1NzAsNiBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgdHJhbnNmb3JtLmVEeSA9
IDA7CiAgICAgICAgIFNldFdvcmxkVHJhbnNmb3JtKHdpbmRvd3NDb250ZXh0LmhkYygpLCAmdHJh
bnNmb3JtKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHBhaW50SW50b1RyYW5zZm9ybWVkQ29udGV4
dCh3aW5kb3dzQ29udGV4dC5oZGMoKSk7CiB9CkBAIC03MTQsMTMgKzY2NywxMSBAQCB2b2lkIFBs
dWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGRp
c3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7CiAKLSNpZiAhUExBVEZPUk0oR1RLKQogICAgIC8vIEN1cnJlbnRseSwgV2lkZ2V0OjpzZXRD
dXJzb3IgaXMgYWx3YXlzIGNhbGxlZCBhZnRlciB0aGlzIGZ1bmN0aW9uIGluIEV2ZW50SGFuZGxl
ci5jcHAKICAgICAvLyBhbmQgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0aGF0IHdlIHNldCBpZ25vcmVO
ZXh0U2V0Q3Vyc29yIHRvIHRydWUgaGVyZSB0byBwcmV2ZW50IHRoYXQuCiAgICAgaWdub3JlTmV4
dFNldEN1cnNvciA9IHRydWU7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5w
YWdlKCkpCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNldExhc3RTZXRDdXJzb3JU
b0N1cnJlbnRDdXJzb3IoKTsKLSNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVu
dChTY3JvbGxWaWV3KiBwYXJlbnQpCkBAIC03NjIsMTMgKzcxMyw3IEBAIHZvaWQgUGx1Z2luVmll
dzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgaWYgKCFtX2lzU3Rh
cnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gSW4gdGhlIEdUSyBwb3J0IHdlIGRyYXcg
aW4gYW4gb2Zmc2NyZWVuIGJ1ZmZlciBhbmQgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIHdpbmRvdwot
ICAgIC8vIGNvb3JkaW5hdGVzLgotIyBpZiBQTEFURk9STShHVEspCi0gICAgSW50UG9pbnQgcCA9
IHJlY3QubG9jYXRpb24oKTsKLSMgZWxzZQogICAgIEludFBvaW50IHAgPSBkb3duY2FzdDxGcmFt
ZVZpZXc+KCpwYXJlbnQoKSkuY29udGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOwotIyBl
bmRpZgogICAgIG1fbnBXaW5kb3cueCA9IHAueCgpOwogICAgIG1fbnBXaW5kb3cueSA9IHAueSgp
OwogCkBAIC05MzMsMTUgKzg3OCwxMSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQo
KQogICAgICAgICBIV05EIHdpbmRvdyA9IDo6Q3JlYXRlV2luZG93RXgoMCwga1dlYlBsdWdpblZp
ZXdkb3dDbGFzc05hbWUsIDAsIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgMCwgMCwgMCwgcGFyZW50V2luZG93SGFuZGxlLCAwLCBXZWJDb3JlOjppbnN0
YW5jZUhhbmRsZSgpLCAwKTsKIAotI2lmIE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKEdUSykKLSAg
ICAgICAgbV93aW5kb3cgPSB3aW5kb3c7Ci0jZWxzZQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdl
dCh3aW5kb3cpOwotI2VuZGlmCiAKICAgICAgICAgLy8gQ2FsbGluZyBTZXRXaW5kb3dMb25nUHRy
QSBoZXJlIG1ha2VzIHRoZSB3aW5kb3cgcHJvYyBBU0NJSSwgd2hpY2ggaXMgcmVxdWlyZWQgYnkg
YXQgbGVhc3QKICAgICAgICAgLy8gdGhlIFNob2Nrd2F2ZSBEaXJlY3RvciBwbHVnLWluLgotI2lm
IE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgOjpT
ZXRXaW5kb3dMb25nUHRyQShwbGF0Zm9ybVBsdWdpbldpZGdldCgpLCBHV0xQX1dORFBST0MsIChM
T05HX1BUUilEZWZXaW5kb3dQcm9jQSk7CiAjZWxzZQogICAgICAgICA6OlNldFdpbmRvd0xvbmdQ
dHJBKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksIEdXTF9XTkRQUk9DLCAoTE9ORylEZWZXaW5kb3dQ
cm9jQSk7CkBAIC05NzQsNyArOTE1LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ry
b3koKQogCiBQYXNzUmVmUHRyPEltYWdlPiBQbHVnaW5WaWV3OjpzbmFwc2hvdCgpCiB7Ci0jaWYg
IVBMQVRGT1JNKEdUSykgJiYgIVVTRShXSU5HREkpCisjaWYgIVVTRShXSU5HREkpCiAgICAgYXV0
byBoZGMgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUNvbXBhdGlibGVEQygwKSk7CiAKICAgICBp
ZiAoIW1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lu
cy9ucGFwaS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL25wYXBpLmNwcAppbmRleCA2
ZGQ5MGE1MmI3YTFlN2M5NmU4ZGY0ZDg5OWJjZjgwMTk0OGVmZmQwLi4zYzQ4Yjc3ZWJhMzdlNjc3
MzQxYTQ0YzRlMzhiOTY1YzllZGY3MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9Q
bHVnaW5zL25wYXBpLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL25wYXBpLmNw
cApAQCAtMTIyLDEyICsxMjIsNiBAQCB2b2lkIE5QTl9TdGF0dXMoTlBQIGluc3RhbmNlLCBjb25z
dCBjaGFyKiBtZXNzYWdlKQogdm9pZCBOUE5fSW52YWxpZGF0ZVJlY3QoTlBQIGluc3RhbmNlLCBO
UFJlY3QqIGludmFsaWRSZWN0KQogewogICAgIFBsdWdpblZpZXcqIHZpZXcgPSBwbHVnaW5WaWV3
Rm9ySW5zdGFuY2UoaW5zdGFuY2UpOwotI2lmIGRlZmluZWQoWFBfVU5JWCkKLSAgICAvLyBOU1Bs
dWdpbldyYXBwZXIsIGEgcGx1Z2luIHdyYXBwZXIgYmluYXJ5IHRoYXQgYWxsb3dzIHJ1bm5pbmcg
MzItYml0IHBsdWdpbnMKLSAgICAvLyBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcyB0eXBpY2FsbHkg
dXNlZCBpbiBYMTEsIHdpbGwgc29tZXRpbWVzIGdpdmUgdXMgYSBudWxsIE5QUCBoZXJlLgotICAg
IGlmICghdmlldykKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgdmlldy0+aW52YWxpZGF0
ZVJlY3QoaW52YWxpZFJlY3QpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244987</attachid>
            <date>2015-01-20 06:30:11 -0800</date>
            <delta_ts>2015-01-20 09:34:13 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>bug-140675-20150120153208.patch</filename>
            <type>text/plain</type>
            <size>36048</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDllYWRlNzZjM2U4ZGVlZWJmMTI0ZWFk
ZGNkM2UzNDBjYWM0OTUxYzcuLjdmYWZkMTczYTgxY2Y1ODVlYjM0MmViNTRjYTRhNWZhYzZkMTY2
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDEtMjAgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgbm9uLVdpbmRvd3MgY3J1ZnQgZnJv
bSBXZWJLaXQvd2luL1BsdWdpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MDY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTUtMDEtMTYgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWFrUHRyIGZ1
bmN0aW9ucyBjcmFzaCB3aGVuIGNyZWF0ZWQgd2l0aCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggOWM1ZDUyYWE0OWJmNGY1Zjc3Yzk0OWU5ZmM2YzIzN2U3M2UwNWY0YS4u
YTcxMDllOTQ2Y2VmODhhNDkwZmRhMGUxYTU5ODljMGU4ZjQ3ZWEwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAxLTIwICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5vbi1XaW5kb3dzIGNydWZ0IGZyb20gV2Vi
S2l0L3dpbi9QbHVnaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDA2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5EaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5EYXRhYmFzZTo6aXNQcmVmZXJyZWRQbHVnaW5EaXJlY3RvcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmllcyk6
CisgICAgICAgICogUGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmV0dHlOYW1lRm9yTlBOVmFyaWFibGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJldHR5TmFtZUZv
ck5QUFZhcmlhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JEcmF3aW5nTW9k
ZWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJldHR5TmFtZUZvckV2ZW50TW9kZWwp
OiBEZWxldGVkLgorICAgICAgICAqIFBsdWdpbnMvUGx1Z2luRGVidWcuaDoKKyAgICAgICAgKiBQ
bHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2Fn
ZTo6Y29tcGFyZUZpbGVWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6
OmRldGVybWluZVF1aXJrcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNr
YWdlOjpkZXRlcm1pbmVNb2R1bGVWZXJzaW9uRnJvbURlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6Omhhc2gpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6ZXF1YWwpOiBEZWxldGVkLgorICAgICAgICAqIFBsdWdp
bnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRGcmFt
ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5W
aWV3KToKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtUGx1Z2luV2lkZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBQbHVnaW5zL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAgICAod2luZG93SGFuZGxl
Rm9yUGFnZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpob29rZWRCZWdp
blBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6Omhvb2tlZEVuZFBhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6Omhvb2spOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJQbHVn
aW5WaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c25h
cHNob3QpOgorICAgICAgICAqIFBsdWdpbnMvbnBhcGkuY3BwOgorICAgICAgICAoTlBOX0ludmFs
aWRhdGVSZWN0KToKKwogMjAxNS0wMS0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2luXSBQZXJpb2RpYyBmYWlsdXJlIGluIER1bXBSZW5kZXJUcmVl
IHJlbGF0ZWQgdG8gV2ViQWN0aW9uUHJvcGVydHlCYWc6OlJlYWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5l
cy5oCmluZGV4IDRiMDVhNDBjNThmZTQ2Yjc4MTUxMjJhM2M2ZGY3M2ExODk1YjE2N2YuLjk4YjI3
MWNmN2Y4MWZkMjdkMzc1MzFjODY1NWVkOTEzMjZiNTdkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmlu
ZXMuaApAQCAtMjg4LDIyICsyODgsMTAgQEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBXZSB3aWxsIGFs
c28gbmVlZCB0byB1cGRhdGUgdGhlIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGZpbGUKIAogLyog
LS0tLS0tLS0tIEVGTCBwb3J0IChVbml4KSAtLS0tLS0tLS0gKi8KICNpZiBQTEFURk9STShFRkwp
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0gpCi0jZGVm
aW5lIEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCAxCi0jZW5kaWYKLQogI2VuZGlm
IC8qIFBMQVRGT1JNKEVGTCkgKi8KIAogLyogLS0tLS0tLS0tIEd0ayBwb3J0IChVbml4LCBXaW5k
b3dzLCBNYWMpIC0tLS0tLS0tLSAqLwogI2lmIFBMQVRGT1JNKEdUSykKLQotI2lmIE9TKFVOSVgp
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIKQotI2RlZmlu
ZSBFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0ggMQotI2VuZGlmCi0jZW5kaWYKLQog
I2VuZGlmIC8qIFBMQVRGT1JNKEdUSykgKi8KIAogLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZv
ciBXZWJDb3JlICovCkBAIC02MTMsMTAgKzYwMSw2IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gV2Ug
d2lsbCBhbHNvIG5lZWQgdG8gdXBkYXRlIHRoZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBmaWxl
CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJ
TVBMRV9IQVNIKQotI2RlZmluZSBFTkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0ggMAot
I2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQogI2RlZmluZSBFTkFC
TEVfUE9JTlRFUl9MT0NLIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
UGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1Bs
dWdpbkRhdGFiYXNlLmNwcAppbmRleCBmYmEyY2VlMmRhNzJjYWYxNGI3NWNmMzZmYWFkMTRiNzVl
NTc0ODU2Li4wZWUwMTNkODQzM2FjOTM4ZGVlNTA3YTY5Y2RjMWYwN2VkNjU2N2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApAQCAtMzc1LDcgKzM3
NSw3IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6OmFkZERpc2FibGVkUGx1Z2luRmlsZShjb25zdCBT
dHJpbmcmIGZpbGVOYW1lKQogICAgIHJldHVybiBtX2Rpc2FibGVkUGx1Z2luRmlsZXMuYWRkKGZp
bGVOYW1lKS5pc05ld0VudHJ5OwogfQogCi0jaWYgKCFPUyhXSU5ET1dTKSB8fCAhRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpKQorI2lmICFFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIC8v
IEZvciBTYWZhcmkvV2luIHRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcyBhcmUgaW1wbGVtZW50
ZWQKIC8vIGluIFBsdWdpbkRhdGFiYXNlV2luLmNwcCwgYnV0IGlmIHdlIGNhbiB1c2UgV2ViQ29y
ZSBjb25zdHJ1Y3RzCiAvLyBmb3IgdGhlIGxvZ2ljIHdlIHNob3VsZCBwZXJoYXBzIG1vdmUgaXQg
aGVyZSB1bmRlciBYUF9XSU4/CkBAIC0zODQsNTMgKzM4NCw5IEBAIFZlY3RvcjxTdHJpbmc+IFBs
dWdpbkRhdGFiYXNlOjpkZWZhdWx0UGx1Z2luRGlyZWN0b3JpZXMoKQogewogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwogCi0gICAgLy8gQWRkIHBhdGhzIHNwZWNpZmljIHRvIGVhY2ggcGxhdGZv
cm0KLSNpZiBkZWZpbmVkKFhQX1VOSVgpCi0gICAgU3RyaW5nIHVzZXJQbHVnaW5QYXRoID0gaG9t
ZURpcmVjdG9yeVBhdGgoKTsKLSAgICB1c2VyUGx1Z2luUGF0aC5hcHBlbmQoU3RyaW5nKCIvLm1v
emlsbGEvcGx1Z2lucyIpKTsKLSAgICBwYXRocy5hcHBlbmQodXNlclBsdWdpblBhdGgpOwotCi0g
ICAgdXNlclBsdWdpblBhdGggPSBob21lRGlyZWN0b3J5UGF0aCgpOwotICAgIHVzZXJQbHVnaW5Q
YXRoLmFwcGVuZChTdHJpbmcoIi8ubmV0c2NhcGUvcGx1Z2lucyIpKTsKLSAgICBwYXRocy5hcHBl
bmQodXNlclBsdWdpblBhdGgpOwotCi0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYi9icm93c2Vy
L3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi91c3IvbG9jYWwvbGliL21vemlsbGEvcGx1
Z2lucyIpOwotICAgIHBhdGhzLmFwcGVuZCgiL3Vzci9saWIvZmlyZWZveC9wbHVnaW5zIik7Ci0g
ICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYjY0L2Jyb3dzZXItcGx1Z2lucyIpOwotICAgIHBhdGhz
LmFwcGVuZCgiL3Vzci9saWIvYnJvd3Nlci1wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIv
dXNyL2xpYi9tb3ppbGxhL3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi91c3IvbG9jYWwv
bmV0c2NhcGUvcGx1Z2lucyIpOwotICAgIHBhdGhzLmFwcGVuZCgiL29wdC9tb3ppbGxhL3BsdWdp
bnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi9vcHQvbW96aWxsYS9saWIvcGx1Z2lucyIpOwotICAg
IHBhdGhzLmFwcGVuZCgiL29wdC9uZXRzY2FwZS9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5k
KCIvb3B0L25ldHNjYXBlL2NvbW11bmljYXRvci9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5k
KCIvdXNyL2xpYi9uZXRzY2FwZS9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xp
Yi9uZXRzY2FwZS9wbHVnaW5zLWxpYmM1Iik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYi9u
ZXRzY2FwZS9wbHVnaW5zLWxpYmM2Iik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYjY0L25l
dHNjYXBlL3BsdWdpbnMiKTsKLSAgICBwYXRocy5hcHBlbmQoIi91c3IvbGliNjQvbW96aWxsYS9w
bHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKCIvdXNyL2xpYi9uc2Jyb3dzZXIvcGx1Z2lucyIp
OwotICAgIHBhdGhzLmFwcGVuZCgiL3Vzci9saWI2NC9uc2Jyb3dzZXIvcGx1Z2lucyIpOwotCi0g
ICAgU3RyaW5nIG1vekhvbWUoZ2V0ZW52KCJNT1pJTExBX0hPTUUiKSk7Ci0gICAgbW96SG9tZS5h
cHBlbmQoIi9wbHVnaW5zIik7Ci0gICAgcGF0aHMuYXBwZW5kKG1vekhvbWUpOwotCi0gICAgVmVj
dG9yPFN0cmluZz4gbW96UGF0aHM7Ci0gICAgU3RyaW5nIG1velBhdGgoZ2V0ZW52KCJNT1pfUExV
R0lOX1BBVEgiKSk7Ci0gICAgbW96UGF0aC5zcGxpdChVQ2hhcignOicpLCAvKiBhbGxvd0VtcHR5
RW50cmllcyAqLyBmYWxzZSwgbW96UGF0aHMpOwotICAgIHBhdGhzLmFwcGVuZFZlY3Rvcihtb3pQ
YXRocyk7Ci0jZWxpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICBTdHJpbmcgdXNlclBsdWdpblBh
dGggPSBob21lRGlyZWN0b3J5UGF0aCgpOwotICAgIHVzZXJQbHVnaW5QYXRoLmFwcGVuZChTdHJp
bmcoIi9MaWJyYXJ5L0ludGVybmV0IFBsdWctSW5zIikpOwotICAgIHBhdGhzLmFwcGVuZCh1c2Vy
UGx1Z2luUGF0aCk7Ci0gICAgcGF0aHMuYXBwZW5kKCIvTGlicmFyeS9JbnRlcm5ldCBQbHVnLUlu
cyIpOwotI2VsaWYgZGVmaW5lZChYUF9XSU4pCiAgICAgU3RyaW5nIHVzZXJQbHVnaW5QYXRoID0g
aG9tZURpcmVjdG9yeVBhdGgoKTsKICAgICB1c2VyUGx1Z2luUGF0aC5hcHBlbmQoU3RyaW5nKCJc
XEFwcGxpY2F0aW9uIERhdGFcXE1vemlsbGFcXHBsdWdpbnMiKSk7CiAgICAgcGF0aHMuYXBwZW5k
KHVzZXJQbHVnaW5QYXRoKTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHBhdGhzOwogfQpAQCAtNDM5
LDEzICszOTUsNyBAQCBib29sIFBsdWdpbkRhdGFiYXNlOjppc1ByZWZlcnJlZFBsdWdpbkRpcmVj
dG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgU3RyaW5nIHByZWZlcnJlZFBhdGggPSBo
b21lRGlyZWN0b3J5UGF0aCgpOwogCi0jaWYgZGVmaW5lZChYUF9VTklYKQotICAgIHByZWZlcnJl
ZFBhdGguYXBwZW5kKFN0cmluZygiLy5tb3ppbGxhL3BsdWdpbnMiKSk7Ci0jZWxpZiBkZWZpbmVk
KFhQX01BQ09TWCkKLSAgICBwcmVmZXJyZWRQYXRoLmFwcGVuZChTdHJpbmcoIi9MaWJyYXJ5L0lu
dGVybmV0IFBsdWctSW5zIikpOwotI2VsaWYgZGVmaW5lZChYUF9XSU4pCiAgICAgcHJlZmVycmVk
UGF0aC5hcHBlbmQoU3RyaW5nKCJcXEFwcGxpY2F0aW9uIERhdGFcXE1vemlsbGFcXHBsdWdpbnMi
KSk7Ci0jZW5kaWYKIAogICAgIC8vIFRPRE86IFdlIHNob3VsZCBub3JtYWxpemUgdGhlIHBhdGgg
YmVmb3JlIGRvaW5nIGEgY29tcGFyaXNvbi4KICAgICByZXR1cm4gcGF0aCA9PSBwcmVmZXJyZWRQ
YXRoOwpAQCAtNDU2LDExICs0MDYsNyBAQCB2b2lkIFBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5Q
YXRoc0luRGlyZWN0b3JpZXMoSGFzaFNldDxTdHJpbmc+JiBwYXRocykgY29uc3QKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgYSBjYXNlIGluc2Vuc2l0aXZlIHNldC4KICAgICBIYXNoU2V0
PFN0cmluZz4gdW5pcXVlRmlsZW5hbWVzOwogCi0jaWYgZGVmaW5lZChYUF9VTklYKQotICAgIFN0
cmluZyBmaWxlTmFtZUZpbHRlcigiKi5zbyIpOwotI2Vsc2UKICAgICBTdHJpbmcgZmlsZU5hbWVG
aWx0ZXIoIiIpOwotI2VuZGlmCiAKICAgICBWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Ig
ZGlyc0VuZCA9IG1fcGx1Z2luRGlyZWN0b3JpZXMuZW5kKCk7CiAgICAgZm9yIChWZWN0b3I8U3Ry
aW5nPjo6Y29uc3RfaXRlcmF0b3IgZEl0ID0gbV9wbHVnaW5EaXJlY3Rvcmllcy5iZWdpbigpOyBk
SXQgIT0gZGlyc0VuZDsgKytkSXQpIHsKQEAgLTQ3NSw3ICs0MjEsNyBAQCB2b2lkIFBsdWdpbkRh
dGFiYXNlOjpnZXRQbHVnaW5QYXRoc0luRGlyZWN0b3JpZXMoSGFzaFNldDxTdHJpbmc+JiBwYXRo
cykgY29uc3QKICAgICB9CiB9CiAKLSNlbmRpZiAvLyAhT1MoV0lORE9XUykKKyNlbmRpZiAvLyAh
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X01FVEFEQVRBX0NBQ0hFKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpbkRlYnVnLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGVidWcu
Y3BwCmluZGV4IDY2ZDIzYWU2NzEzOGFjYWJjNjViNGUzMDBjZjJjZTE3OTgxNDA1MzYuLjRlN2U5
NzhiZWNkNmExMTA0Mzc5ZTM2MzI3YWNmZTRjMzU5ZTA3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCkBAIC01MSwzNyArNTEsMTEgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IGVycm9yU3RyaW5nc1tdID0gewogICAgICJVbmtub3duIGVycm9yIGNvZGUi
CiB9OwogCi0jaWZkZWYgWFBfTUFDT1NYCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHJhd2lu
Z01vZGVsc1tdID0gewotICAgICJOUERyYXdpbmdNb2RlbFF1aWNrRHJhdyIsCi0gICAgIk5QRHJh
d2luZ01vZGVsQ29yZUdyYXBoaWNzIiwKLSAgICAiTlBEcmF3aW5nTW9kZWxPcGVuR0wiLAotICAg
ICJOUERyYXdpbmdNb2RlbENvcmVBbmltYXRpb24iCi19OwotCi1zdGF0aWMgY29uc3QgY2hhciog
Y29uc3QgZXZlbnRNb2RlbHNbXSA9IHsKLSAgICAiTlBFdmVudE1vZGVsQ2FyYm9uIiwKLSAgICAi
TlBFdmVudE1vZGVsQ29jb2EiCi19OwotI2VuZGlmIC8vWFBfTUFDT1NYCi0KIGNvbnN0IGNoYXIq
IHByZXR0eU5hbWVGb3JOUEVycm9yKE5QRXJyb3IgZXJyb3IpCiB7CiAgICAgcmV0dXJuIGVycm9y
U3RyaW5nc1tlcnJvcl07CiB9CiAKLSNpZmRlZiBYUF9NQUNPU1gKLWNvbnN0IGNoYXIqIHByZXR0
eU5hbWVGb3JEcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwgZHJhd2luZ01vZGVsKQotewotICAg
IHJldHVybiBkcmF3aW5nTW9kZWxzW2RyYXdpbmdNb2RlbF07Ci19Ci0KLWNvbnN0IGNoYXIqIHBy
ZXR0eU5hbWVGb3JFdmVudE1vZGVsKE5QRXZlbnRNb2RlbCBldmVudE1vZGVsKQotewotICAgIHJl
dHVybiBldmVudE1vZGVsc1tldmVudE1vZGVsXTsKLX0KLSNlbmRpZiAvL1hQX01BQ09TWAotCiBD
U3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShOUE5WYXJpYWJsZSB2YXJpYWJsZSkKIHsK
ICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CkBAIC0xMDMsMjUgKzc3LDExIEBAIENTdHJpbmcgcHJl
dHR5TmFtZUZvck5QTlZhcmlhYmxlKE5QTlZhcmlhYmxlIHZhcmlhYmxlKQogICAgIGNhc2UgTlBO
VlN1cHBvcnRzV2luZG93bGVzczogcmV0dXJuICJOUE5WU3VwcG9ydHNXaW5kb3dsZXNzIjsKICAg
ICBjYXNlIE5QTlZwcml2YXRlTW9kZUJvb2w6IHJldHVybiAiTlBOVnByaXZhdGVNb2RlQm9vbCI7
CiAKLSNpZmRlZiBYUF9NQUNPU1gKLSAgICBjYXNlIE5QTlZwbHVnaW5EcmF3aW5nTW9kZWw6IHJl
dHVybiAiTlBOVnBsdWdpbkRyYXdpbmdNb2RlbCI7Ci0jaWZuZGVmIE5QX05PX1FVSUNLRFJBVwot
ICAgIGNhc2UgTlBOVnN1cHBvcnRzUXVpY2tEcmF3Qm9vbDogcmV0dXJuICJOUE5Wc3VwcG9ydHNR
dWlja0RyYXdCb29sIjsKLSNlbmRpZgotICAgIGNhc2UgTlBOVnN1cHBvcnRzQ29yZUdyYXBoaWNz
Qm9vbDogcmV0dXJuICJOUE5Wc3VwcG9ydHNDb3JlR3JhcGhpY3NCb29sIjsKLSAgICBjYXNlIE5Q
TlZzdXBwb3J0c09wZW5HTEJvb2w6IHJldHVybiAiTlBOVnN1cHBvcnRzT3BlbkdMQm9vbCI7Ci0g
ICAgY2FzZSBOUE5Wc3VwcG9ydHNDb3JlQW5pbWF0aW9uQm9vbDogcmV0dXJuICJOUE5Wc3VwcG9y
dHNDb3JlQW5pbWF0aW9uQm9vbCI7Ci0jaWZuZGVmIE5QX05PX0NBUkJPTgotICAgIGNhc2UgTlBO
VnN1cHBvcnRzQ2FyYm9uQm9vbDogcmV0dXJuICJOUE5Wc3VwcG9ydHNDYXJib25Cb29sIjsKLSNl
bmRpZgotICAgIGNhc2UgTlBOVnN1cHBvcnRzQ29jb2FCb29sOiByZXR1cm4gIk5QTlZzdXBwb3J0
c0NvY29hQm9vbCI7Ci0jZW5kaWYKLQogICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biB2YXJp
YWJsZSI7CiAgICAgfQogfQogCi1DU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBW
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBW
YXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCopCiB7CiAgICAgc3dpdGNoICh2YXJp
YWJsZSkgewogICAgIGNhc2UgTlBQVnBsdWdpbk5hbWVTdHJpbmc6IHJldHVybiAiTlBQVnBsdWdp
bk5hbWVTdHJpbmciOwpAQCAtMTQ2LDIyICsxMDYsNiBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JO
UFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgY2FzZSBO
UFBWcGx1Z2luV2FudHNBbGxOZXR3b3JrU3RyZWFtczogcmV0dXJuICJOUFBWcGx1Z2luV2FudHNB
bGxOZXR3b3JrU3RyZWFtcyI7CiAgICAgY2FzZSBOUFBWcGx1Z2luQ2FuY2VsU3JjU3RyZWFtOiBy
ZXR1cm4gIk5QUFZwbHVnaW5DYW5jZWxTcmNTdHJlYW0iOwogCi0jaWZkZWYgWFBfTUFDT1NYCi0g
ICAgY2FzZSBOUFBWcGx1Z2luRHJhd2luZ01vZGVsOiB7Ci0gICAgICAgIFN0cmluZyByZXN1bHQo
Ik5QUFZwbHVnaW5EcmF3aW5nTW9kZWwsICIpOwotICAgICAgICByZXN1bHQuYXBwZW5kKHByZXR0
eU5hbWVGb3JEcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwodWludHB0cl90KHZhbHVlKSkpKTsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdC5sYXRpbjEoKTsKLSAgICB9Ci0gICAgY2FzZSBOUFBWcGx1
Z2luRXZlbnRNb2RlbDogewotICAgICAgICBTdHJpbmcgcmVzdWx0KCJOUFBWcGx1Z2luRXZlbnRN
b2RlbCwgIik7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQocHJldHR5TmFtZUZvckV2ZW50TW9kZWwo
TlBFdmVudE1vZGVsKHVpbnRwdHJfdCh2YWx1ZSkpKSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQu
bGF0aW4xKCk7Ci0gICAgfQotICAgIGNhc2UgTlBQVnBsdWdpbkNvcmVBbmltYXRpb25MYXllcjog
cmV0dXJuICJOUFBWcGx1Z2luQ29yZUFuaW1hdGlvbkxheWVyIjsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKHZhbHVlKTsKLSNlbmRpZgotCiAgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZh
cmlhYmxlIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpbkRlYnVnLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbkRlYnVnLmgK
aW5kZXggNjY3NDg1ZTkwOTI4YTA1ZmNiZGE4Mjk0MGE3Mzk2NzA5ODcxZGI2MS4uOGM0ZmNiNzRl
ZGQ1OGVhNDhkMWM5ODA4ZmNlZWI2ZWY1NTFiYzY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vUGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luRGVidWcuaApAQCAtNDMsMTEgKzQzLDYgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9y
TlBOVmFyaWFibGUoTlBOVmFyaWFibGUgdmFyaWFibGUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9y
TlBQVmFyaWFibGUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKIENTdHJpbmcg
cHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlKTsKIAot
I2lmZGVmIFhQX01BQ09TWAotY29uc3QgY2hhciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChO
UERyYXdpbmdNb2RlbCBkcmF3aW5nTW9kZWwpOwotY29uc3QgY2hhciogcHJldHR5TmFtZUZvckV2
ZW50TW9kZWwoTlBFdmVudE1vZGVsIGV2ZW50TW9kZWwpOwotI2VuZGlmCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IDdlODc3YzAxOTcyOWU4MjVmNmY3NjIw
ZTZmNWY1NzgyOTc0ZDA2MzkuLjc4N2VkZGE4N2QxNWQ5NjlmZDgyNDA1ZTZhYWY0YmZjOTY4MzNi
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAt
MTg1LDk0ICsxODUsNiBAQCBQYXNzUmVmUHRyPFBsdWdpblBhY2thZ2U+IFBsdWdpblBhY2thZ2U6
OmNyZWF0ZVBhY2thZ2VGcm9tQ2FjaGUoY29uc3QgU3RyaW5nJiBwYQogfQogI2VuZGlmCiAKLSNp
ZiBkZWZpbmVkKFhQX1VOSVgpCi12b2lkIFBsdWdpblBhY2thZ2U6OmRldGVybWluZVF1aXJrcyhj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQotewotICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc0ph
dmFBcHBsZXRNSU1FVHlwZShtaW1lVHlwZSkpIHsKLSAgICAgICAgLy8gQmVjYXVzZSBhIHNpbmds
ZSBwcm9jZXNzIGNhbm5vdCBjcmVhdGUgbXVsdGlwbGUgVk1zLCBhbmQgd2UgY2Fubm90IHJlbGlh
Ymx5IHVubG9hZCBhCi0gICAgICAgIC8vIEphdmEgVk0sIHdlIGNhbm5vdCB1bmxvYWQgdGhlIEph
dmEgcGx1Z2luLCBvciB3ZSdsbCBsb3NlIHJlZmVyZW5jZSB0byBvdXIgb25seSBWTQotICAgICAg
ICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtEb250VW5sb2FkUGx1Z2luKTsKLQotICAgICAgICAv
LyBTZXR0aW5nIHRoZSB3aW5kb3cgcmVnaW9uIHRvIGFuIGVtcHR5IHJlZ2lvbiBjYXVzZXMgYmFk
IHNjcm9sbGluZyByZXBhaW50IHByb2JsZW1zCi0gICAgICAgIC8vIHdpdGggdGhlIEphdmEgcGx1
Zy1pbi4KLSAgICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrRG9udENsaXBUb1plcm9SZWN0
V2hlblNjcm9sbGluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobWltZVR5
cGUgPT0gImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIikgewotICAgICAgICBzdGF0aWMg
Y29uc3QgUGxhdGZvcm1Nb2R1bGVWZXJzaW9uIGZsYXNoVGVuVmVyc2lvbigweDBhMDAwMDAwKTsK
LQotICAgICAgICBpZiAoY29tcGFyZUZpbGVWZXJzaW9uKGZsYXNoVGVuVmVyc2lvbikgPj0gMCkg
ewotICAgICAgICAgICAgLy8gRmxhc2ggMTAuMCBiMjE4IGRvZXNuJ3QgbGlrZSBoYXZpbmcgYSBO
VUxMIHdpbmRvdyBoYW5kbGUKLSAgICAgICAgICAgIG1fcXVpcmtzLmFkZChQbHVnaW5RdWlya0Rv
bnRTZXROdWxsV2luZG93SGFuZGxlT25EZXN0cm95KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEZsYXNoIDkgYW5kIG9sZGVyIHJlcXVlc3RzIHdpbmRvd2xlc3MgcGx1Z2lucyBp
ZiB3ZSByZXR1cm4gYSBtb3ppbGxhIHVzZXIgYWdlbnQKLSAgICAgICAgICAgIG1fcXVpcmtzLmFk
ZChQbHVnaW5RdWlya1dhbnRzTW96aWxsYVVzZXJBZ2VudCk7Ci0gICAgICAgIH0KLQotI2lmIENQ
VShYODZfNjQpCi0gICAgICAgIC8vIDY0LWJpdCBGbGFzaCBmcmVlemVzIGlmIHJpZ2h0LWNsaWNr
IGlzIHNlbnQgaW4gd2luZG93bGVzcyBtb2RlCi0gICAgICAgIG1fcXVpcmtzLmFkZChQbHVnaW5R
dWlya0lnbm9yZVJpZ2h0Q2xpY2tJbldpbmRvd2xlc3NNb2RlKTsKLSNlbmRpZgotCi0gICAgICAg
IG1fcXVpcmtzLmFkZChQbHVnaW5RdWlya1JlcXVpcmVzRGVmYXVsdFNjcmVlbkRlcHRoKTsKLSAg
ICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrVGhyb3R0bGVJbnZhbGlkYXRlKTsKLSAgICAg
ICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrVGhyb3R0bGVXTVVzZXJQbHVzT25lTWVzc2FnZXMp
OwotICAgICAgICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtGbGFzaFVSTE5vdGlmeUJ1Zyk7Ci0g
ICAgfQotfQotI2VuZGlmCi0KLSNpZiAhT1MoV0lORE9XUykKLXZvaWQgUGx1Z2luUGFja2FnZTo6
ZGV0ZXJtaW5lTW9kdWxlVmVyc2lvbkZyb21EZXNjcmlwdGlvbigpCi17Ci0gICAgLy8gSXQncyBh
IGJpdCBsYW1lIHRvIGRldGVjdCB0aGUgcGx1Z2luIHZlcnNpb24gYnkgcGFyc2luZyBpdAotICAg
IC8vIGZyb20gdGhlIHBsdWdpbiBkZXNjcmlwdGlvbiBzdHJpbmcsIGJ1dCBpdCBkb2Vzbid0IHNl
ZW0gdGhhdAotICAgIC8vIHZlcnNpb24gaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIGluIGFueSBz
dGFuZGFyZGl6ZWQgd2F5IGF0Ci0gICAgLy8gdGhlIG1vZHVsZSBsZXZlbCwgbGlrZSBpbiBXaW5k
b3dzCi0KLSAgICBpZiAobV9kZXNjcmlwdGlvbi5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmIChtX2Rlc2NyaXB0aW9uLnN0YXJ0c1dpdGgoIlNob2Nrd2F2ZSBGbGFzaCIpICYm
IG1fZGVzY3JpcHRpb24ubGVuZ3RoKCkgPj0gMTkpIHsKLSAgICAgICAgLy8gVGhlIGZsYXNoIHZl
cnNpb24gYXMgYSBQbGF0Zm9ybU1vZHVsZVZlcnNpb24gZGlmZmVycyBvbiBVbml4IGZyb20gV2lu
ZG93cwotICAgICAgICAvLyBzaW5jZSB0aGUgcmV2aXNpb24gY2FuIGJlIGxhcmdlciB0aGFuIGEg
OCBiaXRzLCBzbyB3ZSBhbGxvdyBpdCAxNiBoZXJlIGFuZAotICAgICAgICAvLyBwdXNoIHRoZSBt
YWpvci9taW5vciB1cCA4IGJpdHMuIFRodXMgb24gVW5peCwgRmxhc2gncyB2ZXJzaW9uIG1heSBi
ZQotICAgICAgICAvLyAweDBhMDAwMDAwIGluc3RlYWQgb2YgMHgwMDBhMDAwMC4KLQotICAgICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uUGFydHM7Ci0gICAgICAgIG1fZGVzY3JpcHRpb24uc3Vi
c3RyaW5nKDE2KS5zcGxpdCgnICcsIC8qYWxsb3dFbXB0eUVudHJpZXMgPSovIGZhbHNlLCB2ZXJz
aW9uUGFydHMpOwotICAgICAgICBpZiAodmVyc2lvblBhcnRzLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBpZiAodmVyc2lvblBhcnRzLnNpemUoKSA+PSAxKSB7Ci0g
ICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBtYWpvck1pbm9yUGFydHM7Ci0gICAgICAgICAgICB2
ZXJzaW9uUGFydHNbMF0uc3BsaXQoJy4nLCBtYWpvck1pbm9yUGFydHMpOwotICAgICAgICAgICAg
aWYgKG1ham9yTWlub3JQYXJ0cy5zaXplKCkgPj0gMSkgewotICAgICAgICAgICAgICAgIGJvb2wg
Y29udmVydGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgbWFqb3IgPSBtYWpv
ck1pbm9yUGFydHNbMF0udG9VSW50KCZjb252ZXJ0ZWQpOwotICAgICAgICAgICAgICAgIGlmIChj
b252ZXJ0ZWQpCi0gICAgICAgICAgICAgICAgICAgIG1fbW9kdWxlVmVyc2lvbiA9IChtYWpvciAm
IDB4ZmYpIDw8IDI0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1ham9yTWlub3JQ
YXJ0cy5zaXplKCkgPT0gMikgewotICAgICAgICAgICAgICAgIGJvb2wgY29udmVydGVkID0gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgbWlub3IgPSBtYWpvck1pbm9yUGFydHNbMV0u
dG9VSW50KCZjb252ZXJ0ZWQpOwotICAgICAgICAgICAgICAgIGlmIChjb252ZXJ0ZWQpCi0gICAg
ICAgICAgICAgICAgICAgIG1fbW9kdWxlVmVyc2lvbiB8PSAobWlub3IgJiAweGZmKSA8PCAxNjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJzaW9uUGFydHMuc2l6
ZSgpID49IDIpIHsKLSAgICAgICAgICAgIFN0cmluZyByZXZpc2lvbiA9IHZlcnNpb25QYXJ0c1sx
XTsKLSAgICAgICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGgoKSA+IDEgJiYgKHJldmlzaW9uWzBd
ID09ICdyJyB8fCByZXZpc2lvblswXSA9PSAnYicpKSB7Ci0gICAgICAgICAgICAgICAgcmV2aXNp
b24ucmVtb3ZlKDAsIDEpOwotICAgICAgICAgICAgICAgIG1fbW9kdWxlVmVyc2lvbiB8PSByZXZp
c2lvbi50b0ludCgpICYgMHhmZmZmOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQot
fQotI2VuZGlmCi0KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIHN0YXRpYyB2b2lk
IGdldExpc3RGcm9tVmFyaWFudEFyZ3MoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IE5QVmFy
aWFudCogYXJncywgdW5zaWduZWQgYXJnQ291bnQsIEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Qq
IHJvb3RPYmplY3QsIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImIGFMaXN0KQogewpAQCAtNDIx
LDQwICszMzMsMTUgQEAgdm9pZCBQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1bmNz
KCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2lmIEVOQUJM
RShQTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCkKLXVuc2lnbmVkIFBsdWdpblBhY2thZ2U6Omhh
c2goKSBjb25zdAotewotICAgIHN0cnVjdCBIYXNoQ29kZXMgewotICAgICAgICB1bnNpZ25lZCBo
YXNoOwotICAgICAgICB0aW1lX3QgbW9kaWZpZWREYXRlOwotICAgIH0gaGFzaENvZGVzOwotCi0g
ICAgaGFzaENvZGVzLmhhc2ggPSBtX3BhdGguaW1wbCgpLT5oYXNoKCk7Ci0gICAgaGFzaENvZGVz
Lm1vZGlmaWVkRGF0ZSA9IG1fbGFzdE1vZGlmaWVkOwotCi0gICAgcmV0dXJuIFN0cmluZ0hhc2hl
cjo6aGFzaE1lbW9yeTxzaXplb2YoaGFzaENvZGVzKT4oJmhhc2hDb2Rlcyk7Ci19Ci0KLWJvb2wg
UGx1Z2luUGFja2FnZTo6ZXF1YWwoY29uc3QgUGx1Z2luUGFja2FnZSYgYSwgY29uc3QgUGx1Z2lu
UGFja2FnZSYgYikKLXsKLSAgICByZXR1cm4gYS5tX2Rlc2NyaXB0aW9uID09IGIubV9kZXNjcmlw
dGlvbjsKLX0KLSNlbmRpZgotCiBpbnQgUGx1Z2luUGFja2FnZTo6Y29tcGFyZUZpbGVWZXJzaW9u
KGNvbnN0IFBsYXRmb3JtTW9kdWxlVmVyc2lvbiYgY29tcGFyZVZlcnNpb24pIGNvbnN0CiB7CiAg
ICAgLy8gcmV0dXJuIC0xLCAwLCBvciAxIGlmIHBsdWctaW4gdmVyc2lvbiBpcyBsZXNzIHRoYW4s
IGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4KICAgICAvLyB0aGUgcGFzc2VkIHZlcnNpb24KIAot
I2lmIE9TKFdJTkRPV1MpCiAgICAgaWYgKG1fbW9kdWxlVmVyc2lvbi5tb3N0U2lnICE9IGNvbXBh
cmVWZXJzaW9uLm1vc3RTaWcpCiAgICAgICAgIHJldHVybiBtX21vZHVsZVZlcnNpb24ubW9zdFNp
ZyA+IGNvbXBhcmVWZXJzaW9uLm1vc3RTaWcgPyAxIDogLTE7CiAgICAgaWYgKG1fbW9kdWxlVmVy
c2lvbi5sZWFzdFNpZyAhPSBjb21wYXJlVmVyc2lvbi5sZWFzdFNpZykKICAgICAgICAgcmV0dXJu
IG1fbW9kdWxlVmVyc2lvbi5sZWFzdFNpZyA+IGNvbXBhcmVWZXJzaW9uLmxlYXN0U2lnID8gMSA6
IC0xOwotI2Vsc2UgICAgCi0gICAgaWYgKG1fbW9kdWxlVmVyc2lvbiAhPSBjb21wYXJlVmVyc2lv
bikKLSAgICAgICAgcmV0dXJuIG1fbW9kdWxlVmVyc2lvbiA+IGNvbXBhcmVWZXJzaW9uID8gMSA6
IC0xOwotI2VuZGlmCiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IGIwZjA0MDg4MjNlMDMzMzNlYTlhNDlkYTkyYTI4YmVkMzQ3
ZWI2NGQuLjU4NDM4NTdiMzIzOGM1MTNlYmY1NjdiYjdjMTc2NWYwNjFhMTE1YWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNzUsNyArNzUsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKLSNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpbmNsdWRlICJQbHVnaW5NZXNzYWdlVGhyb3R0
bGVyV2luLmgiCiAjZW5kaWYKIApAQCAtMTQyLDE0ICsxNDIsOCBAQCB2b2lkIFBsdWdpblZpZXc6
OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgdXBkYXRlUGx1Z2luV2lk
Z2V0KCk7CiAKLSNpZiBPUyhXSU5ET1dTKQogICAgIC8vIE9uIFdpbmRvd3MgYWx3YXlzIGNhbGwg
cGx1Z2luIHRvIGNoYW5nZSBnZW9tZXRyeS4KICAgICBzZXROUFdpbmRvd1JlY3QocmVjdCk7Ci0j
ZWxpZiBkZWZpbmVkKFhQX1VOSVgpCi0gICAgLy8gT24gVW5peCwgbXVsdGlwbGUgY2FsbHMgdG8g
c2V0TlBXaW5kb3coKSBpbiB3aW5kb3dlZCBtb2RlIGNhdXNlcyBGbGFzaCB0byBjcmFzaAotICAg
IGlmIChtX21vZGUgPT0gTlBfRlVMTCB8fCAhbV9pc1dpbmRvd2VkKQotICAgICAgICBzZXROUFdp
bmRvd1JlY3QocmVjdCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpmcmFtZVJlY3Rz
Q2hhbmdlZCgpCkBAIC0xNzQsMTggKzE2OCw4IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBoYW5kbGVNb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldmVudCkpOwogICAgIGVsc2UgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQo
KSkKICAgICAgICAgaGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50
Kj4oZXZlbnQpKTsKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICBlbHNlIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKLSAgICAgICAgaGFuZGxlV2hlZWxFdmVudChzdGF0
aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpKTsKLSNlbmRpZgogICAgIGVsc2UgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpCiAgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOyAvLyBXZSBkb24ndCBrbm93IGlmIHRoZSBwbHVnLWluIGhh
cyBoYW5kbGVkIG1vdXNlZG93biBldmVudCBieSBkaXNwbGF5aW5nIGEgY29udGV4dCBtZW51LCBz
byB3ZSBuZXZlciB3YW50IFdlYktpdCB0byBzaG93IGEgZGVmYXVsdCBvbmUuCi0jaWYgZGVmaW5l
ZChYUF9VTklYKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBlbHNlIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50KQotICAgICAgICBoYW5k
bGVGb2N1c091dEV2ZW50KCk7Ci0gICAgZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuZm9jdXNpbkV2ZW50KQotICAgICAgICBoYW5kbGVGb2N1c0luRXZlbnQoKTsKLSNlbmRp
ZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQpAQCAtMzM3LDcgKzMyMSw2IEBAIHZvaWQg
UGx1Z2luVmlldzo6c3RvcCgpCiAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxs
TG9ja3MoSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKIAogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQotI2lmIGRlZmluZWQoWFBfV0lOKSAmJiAhUExBVEZPUk0oR1RLKQogICAg
IC8vIFVuc3ViY2xhc3MgdGhlIHdpbmRvdwogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAg
ICAgV05EUFJPQyBjdXJyZW50V25kUHJvYyA9IChXTkRQUk9DKUdldFdpbmRvd0xvbmdQdHIocGxh
dGZvcm1QbHVnaW5XaWRnZXQoKSwgR1dMUF9XTkRQUk9DKTsKQEAgLTM0NSwxMCArMzI4LDggQEAg
dm9pZCBQbHVnaW5WaWV3OjpzdG9wKCkKICAgICAgICAgaWYgKGN1cnJlbnRXbmRQcm9jID09IFBs
dWdpblZpZXdXbmRQcm9jKQogICAgICAgICAgICAgU2V0V2luZG93TG9uZ1B0cihwbGF0Zm9ybVBs
dWdpbldpZGdldCgpLCBHV0xQX1dORFBST0MsIChMT05HX1BUUiltX3BsdWdpblduZFByb2MpOwog
ICAgIH0KLSNlbmRpZiAvLyAhZGVmaW5lZChYUF9XSU4pIHx8IFBMQVRGT1JNKEdUSykKICNlbmRp
ZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2lmICFkZWZpbmVkKFhQX01BQ09T
WCkKICAgICAvLyBDbGVhciB0aGUgd2luZG93CiAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAwOwog
CkBAIC0zNjAsMTMgKzM0MSw2IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiAgICAgICAgIFBs
dWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotI2lmZGVmIFhQX1VO
SVgKLSAgICBkZWxldGUgc3RhdGljX2Nhc3Q8TlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCo+KG1f
bnBXaW5kb3cud3NfaW5mbyk7Ci0gICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKLSNlbmRpZgot
Ci0jZW5kaWYgLy8gIWRlZmluZWQoWFBfTUFDT1NYKQotCiAgICAgUGx1Z2luTWFpblRocmVhZFNj
aGVkdWxlcjo6c2NoZWR1bGVyKCkudW5yZWdpc3RlclBsdWdpbihtX2luc3RhbmNlKTsKIAogICAg
IE5QU2F2ZWREYXRhKiBzYXZlZERhdGEgPSAwOwpAQCAtNjIyLDQxICs1OTYsNiBAQCBOUEVycm9y
IFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkK
ICAgICBjYXNlIE5QUFZwbHVnaW5UcmFuc3BhcmVudEJvb2w6CiAgICAgICAgIG1faXNUcmFuc3Bh
cmVudCA9IHZhbHVlOwogICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Ci0jaWYgZGVmaW5l
ZChYUF9NQUNPU1gpCi0gICAgY2FzZSBOUFBWcGx1Z2luRHJhd2luZ01vZGVsOiB7Ci0gICAgICAg
IC8vIENhbiBvbmx5IHNldCBkcmF3aW5nIG1vZGVsIGluc2lkZSBOUFBfTmV3KCkKLSAgICAgICAg
aWYgKHRoaXMgIT0gY3VycmVudFBsdWdpblZpZXcoKSkKLSAgICAgICAgICAgcmV0dXJuIE5QRVJS
X0dFTkVSSUNfRVJST1I7Ci0KLSAgICAgICAgTlBEcmF3aW5nTW9kZWwgbmV3RHJhd2luZ01vZGVs
ID0gTlBEcmF3aW5nTW9kZWwodWludHB0cl90KHZhbHVlKSk7Ci0gICAgICAgIHN3aXRjaCAobmV3
RHJhd2luZ01vZGVsKSB7Ci0gICAgICAgIGNhc2UgTlBEcmF3aW5nTW9kZWxDb3JlR3JhcGhpY3M6
Ci0gICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Ci0gICAgICAgIGNhc2UgTlBEcmF3
aW5nTW9kZWxDb3JlQW5pbWF0aW9uOgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9H
KFBsdWdpbnMsICJQbHVnaW4gYXNrZWQgZm9yIHVuc3VwcG9ydGVkIGRyYXdpbmcgbW9kZWw6ICVz
IiwKLSAgICAgICAgICAgICAgICAgICAgcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChuZXdEcmF3
aW5nTW9kZWwpKTsKLSAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgY2FzZSBOUFBWcGx1Z2luRXZlbnRNb2RlbDogewotICAgICAg
ICAvLyBDYW4gb25seSBzZXQgZXZlbnQgbW9kZWwgaW5zaWRlIE5QUF9OZXcoKQotICAgICAgICBp
ZiAodGhpcyAhPSBjdXJyZW50UGx1Z2luVmlldygpKQotICAgICAgICAgICByZXR1cm4gTlBFUlJf
R0VORVJJQ19FUlJPUjsKLQotICAgICAgICBOUEV2ZW50TW9kZWwgbmV3RXZlbnRNb2RlbCA9IE5Q
RXZlbnRNb2RlbCh1aW50cHRyX3QodmFsdWUpKTsKLSAgICAgICAgc3dpdGNoIChuZXdFdmVudE1v
ZGVsKSB7Ci0gICAgICAgIGNhc2UgTlBFdmVudE1vZGVsQ29jb2E6Ci0gICAgICAgICAgICByZXR1
cm4gTlBFUlJfTk9fRVJST1I7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBMT0coUGx1
Z2lucywgIlBsdWdpbiBhc2tlZCBmb3IgdW5zdXBwb3J0ZWQgZXZlbnQgbW9kZWw6ICVzIiwKLSAg
ICAgICAgICAgICAgICAgICAgcHJldHR5TmFtZUZvckV2ZW50TW9kZWwobmV3RXZlbnRNb2RlbCkp
OwotICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIH0KLSAg
ICB9Ci0jZW5kaWYgLy8gZGVmaW5lZChYUF9NQUNPU1gpCi0KICAgICBkZWZhdWx0OgogICAgICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsK
QEAgLTgwNSw0MCArNzQ0LDE3IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVu
dEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgLCBtX3Bh
cmFtVmFsdWVzKDApCiAgICAgLCBtX21pbWVUeXBlKG1pbWVUeXBlKQogICAgICwgbV9pbnN0YW5j
ZSgwKQotI2lmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgICwgbV9pc1dpbmRvd2VkKGZhbHNlKQot
ICAgICwgbV91cGRhdGVkQ29jb2FUZXh0SW5wdXRSZXF1ZXN0ZWQoZmFsc2UpCi0gICAgLCBtX2tl
eURvd25TZW50KGZhbHNlKQotICAgICwgbV9kaXNyZWdhcmRLZXlVcENvdW50ZXIoMCkKLSNlbHNl
CiAgICAgLCBtX2lzV2luZG93ZWQodHJ1ZSkKLSNlbmRpZgogICAgICwgbV9pc1RyYW5zcGFyZW50
KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzV2FpdGlu
Z1RvU3RhcnQoZmFsc2UpCi0jaWYgZGVmaW5lZChYUF9VTklYKQotICAgICwgbV9uZWVkc1hFbWJl
ZChmYWxzZSkKLSNlbmRpZgotI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQorI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV9wbHVnaW5X
bmRQcm9jKDApCiAgICAgLCBtX2xhc3RNZXNzYWdlKDApCiAgICAgLCBtX2lzQ2FsbGluZ1BsdWdp
blduZFByb2MoZmFsc2UpCiAgICAgLCBtX3dtUHJpbnRIREMoMCkKICAgICAsIG1faGF2ZVVwZGF0
ZWRQbHVnaW5XaWRnZXQoZmFsc2UpCiAjZW5kaWYKLSNpZiBQTEFURk9STShFRkwpCi0gICAgLCBt
X3dpbmRvdygwKQotI2VuZGlmCi0jaWYgZGVmaW5lZChYUF9NQUNPU1gpCi0gICAgLCBtX2NvbnRl
eHRSZWYoMCkKLSNlbmRpZgotI2lmIGRlZmluZWQoWFBfVU5JWCkgJiYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCi0gICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSh0cnVlKQotICAg
ICwgbV9kcmF3YWJsZSgwKQotICAgICwgbV92aXN1YWwoMCkKLSAgICAsIG1fY29sb3JtYXAoMCkK
LSAgICAsIG1fcGx1Z2luRGlzcGxheSgwKQotI2VuZGlmCiAgICAgLCBtX2xvYWRNYW51YWxseShs
b2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQogICAgICwgbV9pc0phdmFTY3Jp
cHRQYXVzZWQoZmFsc2UpCkBAIC04NTgsOSArNzc0LDYgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmll
dyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2Uq
IHAKICAgICBzZXRQYXJhbWV0ZXJzKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAogICAgIG1l
bXNldCgmbV9ucFdpbmRvdywgMCwgc2l6ZW9mKG1fbnBXaW5kb3cpKTsKLSNpZiBkZWZpbmVkKFhQ
X01BQ09TWCkKLSAgICBtZW1zZXQoJm1fbnBDZ0NvbnRleHQsIDAsIHNpemVvZihtX25wQ2dDb250
ZXh0KSk7Ci0jZW5kaWYKIAogICAgIHJlc2l6ZShzaXplKTsKIH0KQEAgLTEyMTIsMzMgKzExMjUs
MTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludE1pc3NpbmdQbHVnaW5JY29uKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIqIE1v
emlsbGFVc2VyQWdlbnQgPSAiTW96aWxsYS81LjAgKCIKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkK
LSAgICAgICAgIk1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFg7IgotI2VsaWYgZGVmaW5lZChY
UF9XSU4pCiAgICAgICAgICJXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsiCi0jZWxpZiBkZWZp
bmVkKFhQX1VOSVgpCi0vLyBUaGUgR3RrIHBvcnQgdXNlcyBYMTEgcGx1Z2lucyBpbiBNYWMuCi0j
aWYgT1MoREFSV0lOKSAmJiBQTEFURk9STShHVEspCi0gICAgIlgxMTsgVTsgSW50ZWwgTWFjIE9T
IFg7IgotI2Vsc2UKLSAgICAiWDExOyBVOyBMaW51eCBpNjg2OyIKLSNlbmRpZgotI2VuZGlmCiAg
ICAgICAgICIgZW4tVVM7IHJ2OjEuOC4xKSBHZWNrby8yMDA2MTAxMCBGaXJlZm94LzIuMCI7CiAK
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBDaHJvbWVVc2VyQWdlbnQgPSAiTW96aWxsYS81LjAg
KCIKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkKLSAgICAiTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMg
T1MgWDsiCi0jZWxpZiBkZWZpbmVkKFhQX1dJTikKICAgICAiV2luZG93czsgVTsgV2luZG93cyBO
VCA1LjE7IgotI2VsaWYgZGVmaW5lZChYUF9VTklYKQotICAgIC8vIFRoZSBHdGsgcG9ydCB1c2Vz
IFgxMSBwbHVnaW5zIGluIE1hYy4KLSNpZiBPUyhEQVJXSU4pICYmIFBMQVRGT1JNKEdUSykKLSAg
ICAiWDExOyBVOyBJbnRlbCBNYWMgT1MgWDsiCi0jZWxzZQotICAgICJYMTE7IFU7IExpbnV4IGk2
ODY7IgotI2VuZGlmCi0jZW5kaWYKICAgICAiIEFwcGxlV2ViS2l0LzUzNC4zNCAoS0hUTUwsIGxp
a2UgR2Vja28pIENocm9tZS8xOS4wLjEwNTUuMSBTYWZhcmkvNTM0LjM0IjsKIAogY29uc3QgY2hh
ciogUGx1Z2luVmlldzo6dXNlckFnZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5W
aWV3LmgKaW5kZXggZTg2YmI5ZDI4MTE0YWRkODY5NGQ1Y2QxMTdhMDNkNjYwZGRmYzAzNC4uYzZm
YzM5MjhhYzc2MmM0NjJkYzhmZWMyNTM1MzQ5Zjc0Zjc5YzJiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
UGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTQ3LDIwICs0Nyw3IEBACiAjaW5jbHVkZSAibnBydW50
aW1lX2ludGVybmFsLmgiCiAjZW5kaWYKIAotI2lmIE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKEdU
SykKLXR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKLXR5cGVkZWYgSFdORCBQbGF0Zm9ybVBs
dWdpbldpZGdldDsKLSNlbHNlCiB0eXBlZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGx1Z2lu
V2lkZ2V0OwotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQotdHlwZWRlZiBzdHJ1Y3QgX0d0a1Nv
Y2tldCBHdGtTb2NrZXQ7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKFgxMSkKLXR5cGVkZWYgdW5z
aWduZWQgbG9uZyBXaW5kb3c7Ci10eXBlZGVmIHN0cnVjdCBfWERpc3BsYXkgRGlzcGxheTsKLSNl
bmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAtNzYs
NyArNjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgS2V5Ym9hcmRFdmVudDsK
ICAgICBjbGFzcyBNb3VzZUV2ZW50OwogICAgIGNsYXNzIFVSTDsKLSNpZiBPUyhXSU5ET1dTKSAm
JiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKICAgICBjbGFzcyBQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luOwogI2VuZGlmCiAgICAg
Y2xhc3MgUGx1Z2luUGFja2FnZTsKQEAgLTIxNSwxMSArMjAyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9t
aW1lVHlwZTsgfQogICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJs
OyB9CiAKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCi0gICAgICAgIGJvb2wgcG9wVXBDb250ZXh0TWVudShOUE1lbnUqKTsKLSNlbmRpZgotCi0j
aWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFBs
dWdpblZpZXdXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKICAgICAgICAgTFJF
U1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFS
QU0gbFBhcmFtKTsKICAgICAgICAgV05EUFJPQyBwbHVnaW5XbmRQcm9jKCkgY29uc3QgeyByZXR1
cm4gbV9wbHVnaW5XbmRQcm9jOyB9CkBAIC0yNjcsNyArMjUwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhblN0YXJ0KCk7CiAKLSNpZiBPUyhX
SU5ET1dTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKICAgICAgICAgdm9pZCBwYWludFdpbmRvd2VkUGx1Z2luSW50b0NvbnRl
eHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICBzdGF0aWMgSERD
IFdJTkFQSSBob29rZWRCZWdpblBhaW50KEhXTkQsIFBBSU5UU1RSVUNUKik7CiAgICAgICAgIHN0
YXRpYyBCT09MIFdJTkFQSSBob29rZWRFbmRQYWludChIV05ELCBjb25zdCBQQUlOVFNUUlVDVCop
OwpAQCAtMzAyLDMwICsyODUsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBib29sIGRpc3BhdGNoTlBFdmVudChOUEV2ZW50
Jik7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKFhQX01BQ09TWCkgJiYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCi0gICAgICAgIGludDE2X3QgZGlzcGF0Y2hOUENvY29hRXZlbnQoTlBDb2NvYUV2
ZW50Jik7Ci0gICAgICAgIGJvb2wgbV91cGRhdGVkQ29jb2FUZXh0SW5wdXRSZXF1ZXN0ZWQ7Ci0g
ICAgICAgIGJvb2wgbV9rZXlEb3duU2VudDsKLSAgICAgICAgdWludDE2X3QgbV9kaXNyZWdhcmRL
ZXlVcENvdW50ZXI7Ci0jZW5kaWYKIAotI2lmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgICAgICB2
b2lkIGhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCopOwotI2VuZGlmCiAgICAgICAgIHZvaWQg
dXBkYXRlUGx1Z2luV2lkZ2V0KCk7CiAgICAgICAgIHZvaWQgcGFpbnRNaXNzaW5nUGx1Z2luSWNv
bihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CiAKICAgICAgICAgdm9pZCBoYW5k
bGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKTsKICAgICAgICAgdm9pZCBoYW5kbGVNb3Vz
ZUV2ZW50KE1vdXNlRXZlbnQqKTsKLSNpZiBkZWZpbmVkKFhQX1VOSVgpICYmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgICAgICB2b2lkIGhhbmRsZUZvY3VzSW5FdmVudCgpOwotICAg
ICAgICB2b2lkIGhhbmRsZUZvY3VzT3V0RXZlbnQoKTsKLSNlbmRpZgogCi0jaWYgT1MoV0lORE9X
UykKICAgICAgICAgdm9pZCBwYWludEludG9UcmFuc2Zvcm1lZENvbnRleHQoSERDKTsKICAgICAg
ICAgUGFzc1JlZlB0cjxJbWFnZT4gc25hcHNob3QoKTsKLSNlbmRpZgogCiAgICAgICAgIGludCBt
X21vZGU7CiAgICAgICAgIGludCBtX3BhcmFtQ291bnQ7CkBAIC0zNTIsMTEgKzMyMCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hhdmVJbml0aWFsaXplZDsKICAgICAg
ICAgYm9vbCBtX2lzV2FpdGluZ1RvU3RhcnQ7CiAKLSNpZiBkZWZpbmVkKFhQX1VOSVgpCi0gICAg
ICAgIGJvb2wgbV9uZWVkc1hFbWJlZDsKLSNlbmRpZgotCi0jaWYgT1MoV0lORE9XUykgJiYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAgICAgICAgIE93blB0cjxQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luPiBtX21lc3NhZ2VUaHJv
dHRsZXI7CiAgICAgICAgIFdORFBST0MgbV9wbHVnaW5XbmRQcm9jOwogICAgICAgICB1bnNpZ25l
ZCBtX2xhc3RNZXNzYWdlOwpAQCAtMzY1LDQ4ICszMjksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1faGF2ZVVwZGF0ZWRQbHVnaW5XaWRnZXQ7CiAjZW5kaWYKIAotI2lm
IChQTEFURk9STShHVEspICYmIE9TKFdJTkRPV1MpKSB8fCBQTEFURk9STShFRkwpCi0gICAgICAg
IC8vIE9uIE1hYyBPU1ggYW5kIFF0L1dpbmRvd3MgdGhlIHBsdWdpbiBkb2VzIG5vdCBoYXZlIGl0
cyBvd24gbmF0aXZlIHdpZGdldCwKLSAgICAgICAgLy8gYnV0IGlzIHVzaW5nIHRoZSBjb250YWlu
aW5nIHdpbmRvdyBhcyBpdHMgcmVmZXJlbmNlIGZvciBwb3NpdGlvbmluZy9wYWludGluZy4KLSAg
ICAgICAgUGxhdGZvcm1QbHVnaW5XaWRnZXQgbV93aW5kb3c7Ci1wdWJsaWM6Ci0gICAgICAgIFBs
YXRmb3JtUGx1Z2luV2lkZ2V0IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkgY29uc3QgeyByZXR1cm4g
bV93aW5kb3c7IH0KLSAgICAgICAgdm9pZCBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldChQbGF0Zm9y
bVBsdWdpbldpZGdldCB3aWRnZXQpIHsgbV93aW5kb3cgPSB3aWRnZXQ7IH0KLSNlbHNlCiBwdWJs
aWM6CiAgICAgICAgIHZvaWQgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoUGxhdGZvcm1QbHVnaW5X
aWRnZXQgd2lkZ2V0KSB7IHNldFBsYXRmb3JtV2lkZ2V0KHdpZGdldCk7IH0KICAgICAgICAgUGxh
dGZvcm1QbHVnaW5XaWRnZXQgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSBjb25zdCB7IHJldHVybiBw
bGF0Zm9ybVdpZGdldCgpOyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKLQotI2lmIGRlZmluZWQoWFBf
VU5JWCkgfHwgUExBVEZPUk0oR1RLKQotICAgICAgICB2b2lkIHNldE5QV2luZG93SWZOZWVkZWQo
KTsKLSNlbGlmIGRlZmluZWQoWFBfTUFDT1NYKQotICAgICAgICBOUF9DR0NvbnRleHQgbV9ucENn
Q29udGV4dDsKLSAgICAgICAgQ0dDb250ZXh0UmVmIG1fY29udGV4dFJlZjsKLQotICAgICAgICB2
b2lkIHNldE5QV2luZG93SWZOZWVkZWQoKTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChYUF9VTklY
KSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICAgICAgYm9vbCBtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZTsKLSAgICAgICAgUGl4bWFwIG1fZHJhd2FibGU7Ci0gICAgICAgIFZp
c3VhbCogbV92aXN1YWw7Ci0gICAgICAgIENvbG9ybWFwIG1fY29sb3JtYXA7Ci0gICAgICAgIERp
c3BsYXkqIG1fcGx1Z2luRGlzcGxheTsKLQotICAgICAgICB2b2lkIGluaXRYRXZlbnQoWEV2ZW50
KiBldmVudCk7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAgc3RhdGljIGdi
b29sZWFuIHBsdWdSZW1vdmVkQ2FsbGJhY2soR3RrU29ja2V0KiwgUGx1Z2luVmlldyopOwotICAg
ICAgICBzdGF0aWMgdm9pZCBwbHVnQWRkZWRDYWxsYmFjayhHdGtTb2NrZXQqLCBQbHVnaW5WaWV3
Kik7Ci0gICAgICAgIHZvaWQgdXBkYXRlV2lkZ2V0QWxsb2NhdGlvbkFuZENsaXAoKTsKLSAgICAg
ICAgYm9vbCBtX3BsdWdBZGRlZDsKLSAgICAgICAgSW50UmVjdCBtX2RlbGF5ZWRBbGxvY2F0aW9u
OwotI2VuZGlmCi0KICAgICAgICAgSW50UmVjdCBtX2NsaXBSZWN0OyAvLyBUaGUgY2xpcCByZWN0
IHRvIGFwcGx5IHRvIGEgd2luZG93ZWQgcGx1Zy1pbgogICAgICAgICBJbnRSZWN0IG1fd2luZG93
UmVjdDsgLy8gT3VyIHdpbmRvdyByZWN0LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblZpZXdXaW4uY3BwIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9Q
bHVnaW5WaWV3V2luLmNwcAppbmRleCBkMTkxMTE1Njc5YTIxOGI1NjUzMTlhNmZmOWZhMjBkNmFl
NGRlNzJjLi42OTQ1ZjIyMTY5MGI1YWUzODIzOTU2M2FkN2Y4MDU1NWE3MjVkYTc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlld1dpbi5jcHAKQEAgLTc4LDIyICs3OCw5
IEBACiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RL
KQotI2luY2x1ZGUgPGdkay9nZGt3aW4zMi5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNlbmRp
ZgotCiBzdGF0aWMgaW5saW5lIEhXTkQgd2luZG93SGFuZGxlRm9yUGFnZUNsaWVudChQbGF0Zm9y
bVBhZ2VDbGllbnQgY2xpZW50KQogewotI2lmIFBMQVRGT1JNKEdUSykKLSAgICBpZiAoIWNsaWVu
dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dp
ZGdldF9nZXRfd2luZG93KGNsaWVudCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIV05E
PihHREtfV0lORE9XX0hXTkQod2luZG93KSk7Ci0gICAgcmV0dXJuIDA7Ci0jZWxzZQogICAgIHJl
dHVybiBjbGllbnQ7Ci0jZW5kaWYKIH0KIAogdXNpbmcgSlNDOjpFeGVjU3RhdGU7CkBAIC0xMjQs
NyArMTExLDcgQEAgc3RhdGljIEJZVEUqIGVuZFBhaW50OwogdHlwZWRlZiBIREMgKFdJTkFQSSAq
UHRyQmVnaW5QYWludCkoSFdORCwgUEFJTlRTVFJVQ1QqKTsKIHR5cGVkZWYgQk9PTCAoV0lOQVBJ
ICpQdHJFbmRQYWludCkoSFdORCwgY29uc3QgUEFJTlRTVFJVQ1QqKTsKIAotI2lmIE9TKFdJTkRP
V1MpICYmIENQVShYODZfNjQpICYmIENPTVBJTEVSKE1TVkMpCisjaWYgQ1BVKFg4Nl82NCkKIGV4
dGVybiAiQyIgSERDIF9fc3RkY2FsbCBfSEJlZ2luUGFpbnQoSFdORCBoV25kLCBMUFBBSU5UU1RS
VUNUIGxwUGFpbnQpOwogZXh0ZXJuICJDIiBCT09MIF9fc3RkY2FsbCBfSEVuZFBhaW50KEhXTkQg
aFduZCwgY29uc3QgUEFJTlRTVFJVQ1QqIGxwUGFpbnQpOwogI2VuZGlmCkBAIC0xNDEsMTcgKzEy
OCw3IEBAIEhEQyBXSU5BUEkgUGx1Z2luVmlldzo6aG9va2VkQmVnaW5QYWludChIV05EIGhXbmQs
IFBBSU5UU1RSVUNUKiBscFBhaW50KQogICAgICAgICByZXR1cm4gcGx1Z2luVmlldy0+bV93bVBy
aW50SERDOwogICAgIH0KIAotI2lmIENPTVBJTEVSKEdDQykKLSAgICBIREMgcmVzdWx0OwotICAg
IGFzbSAoInB1c2ggICAgJTJcbiIKLSAgICAgICAgICJwdXNoICAgICUzXG4iCi0gICAgICAgICAi
Y2FsbCAgICAqJTRcbiIKLSAgICAgICAgIDogIj1hIiAocmVzdWx0KQotICAgICAgICAgOiAiYSIg
KGJlZ2luUGFpbnRTeXNDYWxsKSwgImciIChscFBhaW50KSwgImciIChoV25kKSwgIm0iIChiZWdp
blBhaW50KQotICAgICAgICAgOiAibWVtb3J5IgotICAgICAgICApOwotICAgIHJldHVybiByZXN1
bHQ7Ci0jZWxpZiBkZWZpbmVkKF9NX0lYODYpCisjaWYgZGVmaW5lZChfTV9JWDg2KQogICAgIC8v
IENhbGwgdGhyb3VnaCB0byB0aGUgb3JpZ2luYWwgQmVnaW5QYWludC4KICAgICBfX2FzbSAgIG1v
diAgICAgZWF4LCBiZWdpblBhaW50U3lzQ2FsbAogICAgIF9fYXNtICAgcHVzaCAgICBscFBhaW50
CkBAIC0xNzEsMTYgKzE0OCw3IEBAIEJPT0wgV0lOQVBJIFBsdWdpblZpZXc6Omhvb2tlZEVuZFBh
aW50KEhXTkQgaFduZCwgY29uc3QgUEFJTlRTVFJVQ1QqIGxwUGFpbnQpCiAgICAgICAgIHJldHVy
biBUUlVFOwogICAgIH0KIAotI2lmIENPTVBJTEVSKEdDQykKLSAgICBCT09MIHJlc3VsdDsKLSAg
ICBhc20gKCJwdXNoICAgJTJcbiIKLSAgICAgICAgICJwdXNoICAgJTNcbiIKLSAgICAgICAgICJj
YWxsICAgKiU0XG4iCi0gICAgICAgICA6ICI9YSIgKHJlc3VsdCkKLSAgICAgICAgIDogImEiIChl
bmRQYWludFN5c0NhbGwpLCAiZyIgKGxwUGFpbnQpLCAiZyIgKGhXbmQpLCAibSIgKGVuZFBhaW50
KQotICAgICAgICApOwotICAgIHJldHVybiByZXN1bHQ7Ci0jZWxpZiBkZWZpbmVkIChfTV9JWDg2
KQorI2lmIGRlZmluZWQgKF9NX0lYODYpCiAgICAgLy8gQ2FsbCB0aHJvdWdoIHRvIHRoZSBvcmln
aW5hbCBFbmRQYWludC4KICAgICBfX2FzbSAgIG1vdiAgICAgZWF4LCBlbmRQYWludFN5c0NhbGwK
ICAgICBfX2FzbSAgIHB1c2ggICAgbHBQYWludApAQCAtMjAwLDcgKzE2OCw3IEBAIHN0YXRpYyB2
b2lkIGhvb2soY29uc3QgY2hhciogbW9kdWxlLCBjb25zdCBjaGFyKiBwcm9jLCB1bnNpZ25lZCYg
c3lzQ2FsbElELCBCWVRFCiAKICAgICBwUHJvYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8QllURSo+KHJl
aW50ZXJwcmV0X2Nhc3Q8cHRyZGlmZl90PihHZXRQcm9jQWRkcmVzcyhoTW9kLCBwcm9jKSkpOwog
Ci0jaWYgQ09NUElMRVIoR0NDKSB8fCBkZWZpbmVkKF9NX0lYODYpCisjaWYgZGVmaW5lZChfTV9J
WDg2KQogICAgIGlmIChwUHJvY1swXSAhPSAweEI4KQogICAgICAgICByZXR1cm47CiAKQEAgLTI3
MSwxMCArMjM5LDYgQEAgc3RhdGljIGJvb2wgcmVnaXN0ZXJQbHVnaW5WaWV3KCkKIAogICAgIGhh
dmVSZWdpc3RlcmVkV2luZG93Q2xhc3MgPSB0cnVlOwogCi0jaWYgUExBVEZPUk0oR1RLKQotICAg
IFdlYkNvcmU6OnNldEluc3RhbmNlSGFuZGxlKChISU5TVEFOQ0UpKEdldE1vZHVsZUhhbmRsZSgw
KSkpOwotI2VuZGlmCi0KICAgICBBU1NFUlQoV2ViQ29yZTo6aW5zdGFuY2VIYW5kbGUoKSk7CiAK
ICAgICBXTkRDTEFTU0VYIHdjZXg7CkBAIC01OTQsMjEgKzU1OCwxMSBAQCB2b2lkIFBsdWdpblZp
ZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEluIHRoZSBHVEsgYW5kIFF0IHBvcnRz
IHdlIGRyYXcgaW4gYW4gb2Zmc2NyZWVuIGJ1ZmZlciBhbmQgZG9uJ3Qgd2FudCB0byB1c2UgdGhl
IHdpbmRvdwotICAgIC8vIGNvb3JkaW5hdGVzLgotI2lmIFBMQVRGT1JNKEdUSykKLSAgICBJbnRS
ZWN0IHJlY3RJbldpbmRvdyhyZWN0KTsKLSAgICByZWN0SW5XaW5kb3cuaW50ZXJzZWN0KGZyYW1l
UmVjdCgpKTsKLSNlbHNlCiAgICAgSW50UmVjdCByZWN0SW5XaW5kb3cgPSBkb3duY2FzdDxGcmFt
ZVZpZXc+KCpwYXJlbnQoKSkuY29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7Ci0jZW5kaWYK
ICAgICBMb2NhbFdpbmRvd3NDb250ZXh0IHdpbmRvd3NDb250ZXh0KGNvbnRleHQsIHJlY3RJbldp
bmRvdywgbV9pc1RyYW5zcGFyZW50KTsKIAogICAgIC8vIE9uIFNhZmFyaS9XaW5kb3dzIHdpdGhv
dXQgdHJhbnNwYXJlbmN5IGxheWVycyB0aGUgR3JhcGhpY3NDb250ZXh0IHJldHVybnMgdGhlIEhE
QwogICAgIC8vIG9mIHRoZSB3aW5kb3cgYW5kIHRoZSBwbHVnaW4gZXhwZWN0cyB0aGF0IHRoZSBw
YXNzZWQgaW4gREMgaGFzIHdpbmRvdyBjb29yZGluYXRlcy4KLSAgICAvLyBJbiB0aGUgR1RLIGFu
ZCBRdCBwb3J0cyB3ZSBhbHdheXMgZHJhdyBpbiBhbiBvZmZzY3JlZW4gYnVmZmVyIGFuZCB0aGVy
ZWZvcmUgbmVlZAotICAgIC8vIHRvIHByZXNlcnZlIHRoZSB0cmFuc2xhdGlvbiBzZXQgaW4gZ2V0
V2luZG93c0NvbnRleHQuCi0jaWYgIVBMQVRGT1JNKEdUSykKICAgICBpZiAoIWNvbnRleHQtPmlz
SW5UcmFuc3BhcmVuY3lMYXllcigpKSB7CiAgICAgICAgIFhGT1JNIHRyYW5zZm9ybTsKICAgICAg
ICAgR2V0V29ybGRUcmFuc2Zvcm0od2luZG93c0NvbnRleHQuaGRjKCksICZ0cmFuc2Zvcm0pOwpA
QCAtNjE2LDcgKzU3MCw2IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICB0cmFuc2Zvcm0uZUR5ID0g
MDsKICAgICAgICAgU2V0V29ybGRUcmFuc2Zvcm0od2luZG93c0NvbnRleHQuaGRjKCksICZ0cmFu
c2Zvcm0pOwogICAgIH0KLSNlbmRpZgogCiAgICAgcGFpbnRJbnRvVHJhbnNmb3JtZWRDb250ZXh0
KHdpbmRvd3NDb250ZXh0LmhkYygpKTsKIH0KQEAgLTcxNCwxMyArNjY3LDExIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICBpZiAoZGlz
cGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKIAotI2lmICFQTEFURk9STShHVEspCiAgICAgLy8gQ3VycmVudGx5LCBXaWRnZXQ6OnNldEN1
cnNvciBpcyBhbHdheXMgY2FsbGVkIGFmdGVyIHRoaXMgZnVuY3Rpb24gaW4gRXZlbnRIYW5kbGVy
LmNwcAogICAgIC8vIGFuZCBzaW5jZSB3ZSBkb24ndCB3YW50IHRoYXQgd2Ugc2V0IGlnbm9yZU5l
eHRTZXRDdXJzb3IgdG8gdHJ1ZSBoZXJlIHRvIHByZXZlbnQgdGhhdC4KICAgICBpZ25vcmVOZXh0
U2V0Q3Vyc29yID0gdHJ1ZTsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBh
Z2UoKSkKICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TGFzdFNldEN1cnNvclRv
Q3VycmVudEN1cnNvcigpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50
KFNjcm9sbFZpZXcqIHBhcmVudCkKQEAgLTc2MiwxMyArNzEzLDcgQEAgdm9pZCBQbHVnaW5WaWV3
OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBpZiAoIW1faXNTdGFy
dGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBJbiB0aGUgR1RLIHBvcnQgd2UgZHJhdyBp
biBhbiBvZmZzY3JlZW4gYnVmZmVyIGFuZCBkb24ndCB3YW50IHRvIHVzZSB0aGUgd2luZG93Ci0g
ICAgLy8gY29vcmRpbmF0ZXMuCi0jIGlmIFBMQVRGT1JNKEdUSykKLSAgICBJbnRQb2ludCBwID0g
cmVjdC5sb2NhdGlvbigpOwotIyBlbHNlCiAgICAgSW50UG9pbnQgcCA9IGRvd25jYXN0PEZyYW1l
Vmlldz4oKnBhcmVudCgpKS5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7Ci0jIGVu
ZGlmCiAgICAgbV9ucFdpbmRvdy54ID0gcC54KCk7CiAgICAgbV9ucFdpbmRvdy55ID0gcC55KCk7
CiAKQEAgLTkzMywxNSArODc4LDExIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgp
CiAgICAgICAgIEhXTkQgd2luZG93ID0gOjpDcmVhdGVXaW5kb3dFeCgwLCBrV2ViUGx1Z2luVmll
d2Rvd0NsYXNzTmFtZSwgMCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLCAwLCAwLCAwLCBwYXJlbnRXaW5kb3dIYW5kbGUsIDAsIFdlYkNvcmU6Omluc3Rh
bmNlSGFuZGxlKCksIDApOwogCi0jaWYgT1MoV0lORE9XUykgJiYgUExBVEZPUk0oR1RLKQotICAg
ICAgICBtX3dpbmRvdyA9IHdpbmRvdzsKLSNlbHNlCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0
KHdpbmRvdyk7Ci0jZW5kaWYKIAogICAgICAgICAvLyBDYWxsaW5nIFNldFdpbmRvd0xvbmdQdHJB
IGhlcmUgbWFrZXMgdGhlIHdpbmRvdyBwcm9jIEFTQ0lJLCB3aGljaCBpcyByZXF1aXJlZCBieSBh
dCBsZWFzdAogICAgICAgICAvLyB0aGUgU2hvY2t3YXZlIERpcmVjdG9yIHBsdWctaW4uCi0jaWYg
T1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICA6OlNl
dFdpbmRvd0xvbmdQdHJBKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksIEdXTFBfV05EUFJPQywgKExP
TkdfUFRSKURlZldpbmRvd1Byb2NBKTsKICNlbHNlCiAgICAgICAgIDo6U2V0V2luZG93TG9uZ1B0
ckEocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSwgR1dMX1dORFBST0MsIChMT05HKURlZldpbmRvd1By
b2NBKTsKQEAgLTk3NCw3ICs5MTUsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJv
eSgpCiAKIFBhc3NSZWZQdHI8SW1hZ2U+IFBsdWdpblZpZXc6OnNuYXBzaG90KCkKIHsKLSNpZiAh
UExBVEZPUk0oR1RLKSAmJiAhVVNFKFdJTkdESSkKKyNpZiAhVVNFKFdJTkdESSkKICAgICBhdXRv
IGhkYyA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlQ29tcGF0aWJsZURDKDApKTsKIAogICAgIGlm
ICghbV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L25wYXBpLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IDZk
ZDkwYTUyYjdhMWU3Yzk2ZThkZjRkODk5YmNmODAxOTQ4ZWZmZDAuLjNjNDhiNzdlYmEzN2U2Nzcz
NDFhNDRjNGUzOGI5NjVjOWVkZjczMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1Bs
dWdpbnMvbnBhcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvbnBhcGkuY3Bw
CkBAIC0xMjIsMTIgKzEyMiw2IEBAIHZvaWQgTlBOX1N0YXR1cyhOUFAgaW5zdGFuY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpCiB2b2lkIE5QTl9JbnZhbGlkYXRlUmVjdChOUFAgaW5zdGFuY2UsIE5Q
UmVjdCogaW52YWxpZFJlY3QpCiB7CiAgICAgUGx1Z2luVmlldyogdmlldyA9IHBsdWdpblZpZXdG
b3JJbnN0YW5jZShpbnN0YW5jZSk7Ci0jaWYgZGVmaW5lZChYUF9VTklYKQotICAgIC8vIE5TUGx1
Z2luV3JhcHBlciwgYSBwbHVnaW4gd3JhcHBlciBiaW5hcnkgdGhhdCBhbGxvd3MgcnVubmluZyAz
Mi1iaXQgcGx1Z2lucwotICAgIC8vIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmVzIHR5cGljYWxseSB1
c2VkIGluIFgxMSwgd2lsbCBzb21ldGltZXMgZ2l2ZSB1cyBhIG51bGwgTlBQIGhlcmUuCi0gICAg
aWYgKCF2aWV3KQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICB2aWV3LT5pbnZhbGlkYXRl
UmVjdChpbnZhbGlkUmVjdCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>