<?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>164683</bug_id>
          
          <creation_ts>2016-11-12 11:47:48 -0800</creation_ts>
          <short_desc>Remove a few assorted uses of ExceptionCode</short_desc>
          <delta_ts>2016-11-12 14:34:32 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>164518</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250691</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-12 11:47:48 -0800</bug_when>
    <thetext>Remove a few assorted uses of ExceptionCode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250693</commentid>
    <comment_count>1</comment_count>
      <attachid>294624</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-12 11:57:48 -0800</bug_when>
    <thetext>Created attachment 294624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250695</commentid>
    <comment_count>2</comment_count>
      <attachid>294625</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-12 12:14:09 -0800</bug_when>
    <thetext>Created attachment 294625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250725</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-12 14:34:25 -0800</bug_when>
    <thetext>Committed r208659: &lt;http://trac.webkit.org/changeset/208659&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294624</attachid>
            <date>2016-11-12 11:57:48 -0800</date>
            <delta_ts>2016-11-12 12:14:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164683-20161112115332.patch</filename>
            <type>text/plain</type>
            <size>36477</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTllNjM5ZDdjZmZmYWI3
NGQ4ZjE2NmEzMDc1ODE2YmVmNGY4MzYzYy4uYjM2MGE0Mjg2YWIwNjFiODMwNjUwNWYxMTMyMDBm
M2U4NTU5Mjg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTExLTEyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgYSBmZXcgYXNzb3J0
ZWQgdXNlcyBvZiBFeGNlcHRpb25Db2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvbnRhY3QuaDogUmVt
b3ZlZCBpbmNsdWRlIG9mIEV4Y2VwdGlvbkNvZGUuaC4KKyAgICAgICAgQWxzbyB0aWRpZWQgdXAg
dGhlIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yLgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5oOiBSZW1vdmVkIHR5cGVkZWYgb2YgRXhjZXB0aW9uQ29kZS4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOiBEaXR0by4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXRPYmplY3RQYXJhbWV0ZXIpOiBSZW1vdmVkIGxvY2FsIEV4Y2Vw
dGlvbkNvZGUgdmFyaWFibGUgdGhhdAorICAgICAgICB3YXMgYWx3YXlzIDAuCisgICAgICAgIChX
ZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKTogRGl0
dG8uCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogUmVtb3ZlZCB0eXBlZGVmIG9mIEV4Y2Vw
dGlvbkNvZGUuCisgICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDogRGl0dG8uCisgICAgICAgICog
ZWRpdGluZy9tYXJrdXAuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9JbWFnZURhdGEuaDogRGl0
dG8uCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6IERpdHRvLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg6IERpdHRvLgorCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRUaW1lb3V0KTogRml4
ZWQgdHlwbyB3aGVyZSB0aGlzIHdhcyB1c2luZworICAgICAgICBFeGNlcHRpb25Db2RlIGluc3Rl
YWQgb2YgRXhjZXB0aW9uLiBUaGUgY29kZSB3b3VsZCByZXR1cm4gYW4gaW50ZWdlcgorICAgICAg
ICBpbnN0ZWFkIG9mIGFuIGV4Y2VwdGlvbiBpbiB0aGlzIGNhc2UuIEkgY291bGQgbm90IHByb2R1
Y2UgYSB0ZXN0IHRoYXQKKyAgICAgICAgZXhlcmNpc2VzIHRoaXMgY29kZSBwYXRoOyBJIHN1c3Bl
Y3QgaXQgaXMgYW4gdW5yZWFjaGFibGUgZXJyb3IgY29uZGl0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzZXRJbnRlcnZhbCk6IERpdHRvLgorCisgICAgICAgICogcmVwbGF5L01l
bW9pemVkRE9NUmVzdWx0Lmg6IENoYW5nZWQgdHlwZWRlZiBvZiBFeGNlcHRpb25Db2RlIGludG8K
KyAgICAgICAgYSB1c2luZyBzdGF0ZW1lbnQuIE5vdCBzdXJlIHdoYXQgdGhlIGxvbmdlciB0ZXJt
IGZpeCBpcy4KKworICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OmFwcGVuZFN0YXJ0RWxl
bWVudE5TQ2FsbGJhY2spOiBSZW5hbWVkIHRvIHVzZQorICAgICAgICBXZWJLaXQtc3R5bGUgIm51
bVhYWCIgcmF0aGVyIHRoYW4gIm5iX3h4eCIuCisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2Fs
bGJhY2tzOjpQZW5kaW5nU3RhcnRFbGVtZW50TlNDYWxsYmFjazo6flBlbmRpbmdTdGFydEVsZW1l
bnROU0NhbGxiYWNrKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVO
YW1lc3BhY2VBdHRyaWJ1dGVzKTogRGl0dG8uIFJlcGxhY2VkIEV4Y2VwdGlvbkNvZGUgb3V0Cisg
ICAgICAgIGFyZ3VtZW50IHdpdGggYSBib29sZWFuIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKFdl
YkNvcmU6OmhhbmRsZUVsZW1lbnRBdHRyaWJ1dGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOiBEaXR0by4gVXBkYXRlZCBmb3Ig
Y2hhbmdlcworICAgICAgICB0byB0aGUgaGFuZGxlIGZ1bmN0aW9ucyBhYm92ZS4KKyAgICAgICAg
KFdlYkNvcmU6OnN0YXJ0RWxlbWVudE5zSGFuZGxlcik6IE1vcmUgb2YgdGhlIHNhbWUuCisgICAg
ICAgIChXZWJDb3JlOjphdHRyaWJ1dGVzU3RhcnRFbGVtZW50TnNIYW5kbGVyKTogRGl0dG8uCisK
IDIwMTYtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBT
cGVlZCB1cCBzZXR0aW5nIGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudHMgb2YgdHlwZSAndGV4
dCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCA2ODg1ZWI3YTMyYzE5ZTNiNjZiYjcyYmVhMGNkMzUzZTky
YTIwMDJlLi40NmRiNDFlMzBhNDI3NmUwMDcyZDlkNmMwYjcxNTM0YWZjMzkzOWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTYtMTEtMTIgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBhIGZldyBhc3NvcnRlZCB1c2VzIG9mIEV4
Y2VwdGlvbkNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRE9NL0RPTURPTUltcGxlbWVudGF0aW9uLm1tOgorICAgICAgICAoLVtET01JbXBsZW1l
bnRhdGlvbiBjcmVhdGVEb2N1bWVudFR5cGU6cHVibGljSWQ6c3lzdGVtSWQ6XSk6CisgICAgICAg
IFVzZSByYWlzZU9uRE9NRXJyb3IgaW5zdGVhZCBvZiBtdWNoIGxvbmdlciBoYW5kIHdyaXR0ZW4g
ZXF1aXZhbGVudC4KKyAgICAgICAgKC1bRE9NSW1wbGVtZW50YXRpb24gY3JlYXRlRG9jdW1lbnQ6
cXVhbGlmaWVkTmFtZTpkb2N0eXBlOl0pOiBEaXR0by4KKworICAgICAgICAqIERPTS9ET01Eb2N1
bWVudC5tbToKKyAgICAgICAgKC1bRE9NRG9jdW1lbnQgY3JlYXRlRW50aXR5UmVmZXJlbmNlOl0p
OiBVc2UgcmFpc2VOb3RTdXBwb3J0ZWRFcnJvckV4Y2VwdGlvbgorICAgICAgICBzbyB3ZSBhcmUg
bm90IHVzaW5nIGEgc3BlY2lmaWMgZXhjZXB0aW9uIGNvZGUuCisKKyAgICAgICAgKiBET00vRE9N
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tOgorICAgICAgICAoLVtET01IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24gYWRkOmluZGV4Ol0pOiBVc2UgcmFpc2VPbkRPTUVycm9yIGluc3RlYWQgb2YKKyAgICAg
ICAgbXVjaCBsb25nZXIgaGFuZCB3cml0dGVuIGVxdWl2YWxlbnQuCisgICAgICAgICogRE9NL0RP
TUhUTUxTZWxlY3RFbGVtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MU2VsZWN0RWxlbWVudCBh
ZGQ6YmVmb3JlOl0pOiBEaXR0by4gQWxzbyByZW1vdmVkIHVubmVlZGVkIHJldHVybgorICAgICAg
ICBzdGF0ZW1lbnQgYWZ0ZXIgY2FsbGluZyBhICJubyByZXR1cm4iIGZ1bmN0aW9uLgorCisgICAg
ICAgICogRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmg6IFJlbW92ZWQgb3ZlcmxvYWRzIG9mIHJhaXNl
RE9NRXhjZXB0aW9uIGFuZAorICAgICAgICByYWlzZU9uRE9NRXJyb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBFeGNlcHRpb25Db2RlOyBrZWVwIHRoZSBvbmVzIHRoYXQgdGFrZQorICAgICAgICBFeGNl
cHRpb24gYW5kIEV4Y2VwdGlvbk9yLiBSZW5hbWVkIHRoZSBvdGhlciBvdmVybG9hZCBvZiByYWlz
ZURPTUV4Y2VwdGlvbgorICAgICAgICB0byByYWlzZURPTUVycm9yRXhjZXB0aW9uOyBpdCBpcyBv
bmx5IHVzZWQgYXMgdGhlIG5vbi1pbmxpbmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgcGFydCBv
ZiB0aGUgaW5saW5lIHJhaXNlT25ET01FcnJvciBmdW5jdGlvbi4KKyAgICAgICAgKiBET00vRXhj
ZXB0aW9uSGFuZGxlcnMubW06CisgICAgICAgIChyYWlzZURPTUVycm9yRXhjZXB0aW9uKTogUmVu
YW1lZC4gTWFkZSB0aGUgRXhjZXB0aW9uQ29kZSBvdmVybG9hZCBiZSBsb2NhbAorICAgICAgICB0
byB0aGlzIHNvdXJjZSBmaWxlIGluc3RlYWQgb2YgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKHJh
aXNlVHlwZUVycm9yRXhjZXB0aW9uKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFuZ2UuCisgICAgICAg
IChyYWlzZU5vdFN1cHBvcnRlZEVycm9yRXhjZXB0aW9uKTogQWRkZWQuCisKIDIwMTYtMTEtMTEg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSG92ZXJpbmcgb3Zl
ciBhIHNsb3R0ZWQgVGV4dCBub2RlIGNsZWFycyBob3ZlciBzdGF0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29udGFjdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29udGFjdC5oCmluZGV4IDNmMGE0NzY3ZDQ4
NThkYTExNDI2MTc2ZWNiOGUxODc3MDQ1MDQ0NDIuLjUwYWE4MDU2YWIwMWQyNzc5Mjk0NjNmMjM2
ZWY2NmZiN2Y3YzQ0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvbnRhY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRDb250YWN0LmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9Q
QVkpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNDMsMTkgKzQyLDEy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGF5bWVudENvbnRhY3QgewogcHVibGlj
OgotICAgIFBheW1lbnRDb250YWN0KCkKLSAgICB7Ci0gICAgfQotCisgICAgUGF5bWVudENvbnRh
Y3QoKSA9IGRlZmF1bHQ7CiAgICAgZXhwbGljaXQgUGF5bWVudENvbnRhY3QoUEtDb250YWN0ICpw
a0NvbnRhY3QpCiAgICAgICAgIDogbV9wa0NvbnRhY3QocGtDb250YWN0KQogICAgIHsKICAgICB9
CiAKLSAgICB+UGF5bWVudENvbnRhY3QoKQotICAgIHsKLSAgICB9Ci0KICAgICBzdGF0aWMgT3B0
aW9uYWw8UGF5bWVudENvbnRhY3Q+IGZyb21KUyhKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1
ZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaAppbmRleCA0M2I5MzY5Y2RlN2VhMjVlNjMxODJmM2U5ZTA1MmE1NzgxMWMyYzJl
Li4yNzI2NzQzNzY2OWViMDUwZTBiNDA1NzUyZDBjODcyMzA0ODgwYjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC00OSw4ICs0OSw2IEBA
IG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi10
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCiBjbGFzcyBJREJGYWN0b3J5IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQkZhY3Rvcnk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PElEQkZhY3Rvcnk+IGNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggNjgy
MjY4MTIyODRhMzY3ZWU1NzZiNDY4MmI3ZDE3MWVlMTYxYjdhMy4uMGYxM2Y5N2IwZDI2MjlmYTJh
NzdhMGFlY2M5NWYwOWRiZjgyMDdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBAIC00Miw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIElEQktleTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLXR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KIGNsYXNzIElEQktleVJhbmdlIDogcHVibGljIFNjcmlw
dFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8SURCS2V5UmFuZ2U+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPElEQktleVJhbmdlPiBjcmVhdGUoUmVmUHRyPElEQktleT4mJiBsb3dlciwg
UmVmUHRyPElEQktleT4mJiB1cHBlciwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbCBpc1VwcGVyT3Bl
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA2OGE2ZTFlNzE5MjA2NTM0
M2Y5NzZiOGYzZjRmMGQ3OWM4MzZjMTc0Li44MjVkMjUwOTRkMmNjNjIyMDZiMDQ5OTZjMTBkNTMx
ZTU0Mjk4MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTE5Niw3ICsx
OTYsNiBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYgcwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENv
dW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQg
PSBvYmotPndyYXBwZWQoKTsKICAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZSgpKTsKQEAgLTIyMSwxMCArMjIwLDYgQEAgc3RhdGljIEpTVmFsdWUgZ2V0T2Jq
ZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUm
IHMKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KICAgICByZXR1cm4gdG9KUygmc3RhdGUsIG9i
ai0+Z2xvYmFsT2JqZWN0KCksIGluZm8pOwogfQogCkBAIC0zMDQsMTggKzI5OSwxMiBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQgPSB3cmFwcGVkKCk7Ci0gICAgV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CisgICAgYXV0byYgY29udGV4dCA9IHdyYXBwZWQoKTsKKyAgICBhdXRv
KiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7Ci0g
ICAgYm9vbCBzdWNjZWVkID0gY29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMocHJvZ3JhbSwgc2hh
ZGVycyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVj
KTsKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIH0KLSAgICBpZiAoIXN1Y2NlZWQpCisg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKICAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCkBA
IC01MTYsNyArNTA1LDYgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICBSZWZQdHI8Rmxv
YXQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1
ZSgpKTsKICAgICAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAod2ViR0xBcnJh
eSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKQEAg
LTU0NSw3ICs1MzMsNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1
bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUs
IGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogICAgIApAQCAtNTgw
LDcgKzU2Nyw2IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rp
b25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAKLSAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTU5OCw3ICs1ODQsNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgVwogICAgIAogICAgIFJlZlB0cjxJbnQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJl
ZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIAotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIGlmICh3ZWJHTEFycmF5KSB7CiAgICAgICAgIHN3aXRjaCAo
ZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgpAQCAtNjE3LDcgKzYwMiw2IEBAIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAgICAgCkBAIC02NDMsNyArNjI3LDYgQEAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUsIFcKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIHNldERPTUV4
Y2VwdGlvbigmc3RhdGUsIGVjKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApAQCAt
Njc3LDggKzY2MCw2IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBz
ZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogICAgIH0KICAgICAKQEAgLTY5OCw4ICs2NzksNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3Rh
dAogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBlODgyYWYwMTllYzll
ZmQwNTZjZWY3NTJhMzI0MDQ4MDE2NjgwM2M1Li42NzIxNTk0OTQ1MjgwMWE5NzU3NmRiMTU4MzZm
N2M3OWMyZDQ4M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC03MTcs
MTAgKzcxNyw5IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJiBjaGFuZ2UpCiAKIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVz
KENvbnRhaW5lck5vZGUmIGNsb25lKQogewotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7Ci0gICAgZm9yIChO
b2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7Ci0gICAgICAgIFJlZjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5j
bG9uZU5vZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldp
dGhUZW1wbGF0ZUNvbnRlbnQpOworICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGF1dG8gY2xv
bmVkQ2hpbGQgPSBjaGlsZC0+Y2xvbmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25p
bmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50KTsKICAgICAgICAgaWYgKCFjbG9u
ZS5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZCkuaGFzRXhjZXB0aW9uKCkgJiYgaXM8Q29udGFpbmVy
Tm9kZT4oKmNoaWxkKSkKICAgICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpjaGls
ZCkuY2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdl
dCgpKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0OWUzNGJlNzdiNDUzN2ZkNTA2
MGY0NzcyOWJlNDlkYTUwZjRiYWFiLi4xMjljYmI1ZGJhMWQxODY2OWZjN2Y4MmVkZTkxYWU0NTMx
NDMxMmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTk3LDggKzE5Nyw2IEBAIGNsYXNzIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKIAogY2xhc3MgRm9udEZhY2VTZXQ7CiAKLXR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KICNpZiBQTEFURk9STShJT1MpCiBjbGFzcyBEZXZpY2VN
b3Rpb25DbGllbnQ7CiBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwpAQCAtODg2LDggKzg4
NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkTmFtZShjb25zdCBTdHJpbmcm
KTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWtzIGEgcXVhbGlmaWVkIG5hbWUgaW50byBh
IHByZWZpeCBhbmQgYSBsb2NhbCBuYW1lLgotICAgIC8vIEl0IGFsc28gZG9lcyBhIHZhbGlkaXR5
IGNoZWNrLCBhbmQgcmV0dXJucyBmYWxzZSBpZiB0aGUgcXVhbGlmaWVkIG5hbWUKLSAgICAvLyBp
cyBpbnZhbGlkLiBJdCBhbHNvIHNldHMgRXhjZXB0aW9uQ29kZSB3aGVuIG5hbWUgaXMgaW52YWxp
ZC4KKyAgICAvLyBJdCBhbHNvIGRvZXMgYSB2YWxpZGl0eSBjaGVjaywgYW5kIHJldHVybnMgYW4g
ZXJyb3IgaWYgdGhlIHF1YWxpZmllZCBuYW1lIGlzIGludmFsaWQuCiAgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPHN0ZDo6cGFpcjxBdG9taWNTdHJpbmcsIEF0b21pY1N0cmluZz4+IHBhcnNlUXVhbGlm
aWVkTmFtZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUpOwogICAgIHN0YXRpYyBFeGNlcHRp
b25PcjxRdWFsaWZpZWROYW1lPiBwYXJzZVF1YWxpZmllZE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5oCmluZGV4IDMxMGFjODY5NTkxZWIzOTAzYjJhNmM3ZGVjZTFhNGJjY2QzNjlh
MTMuLjcyNzBmMmRmODRlODI3MjYzMDg1MjE5N2Q0M2E4ODlkZjc0NjVmZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaApAQCAtMzEsOCArMzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCiAgICAgY2xhc3MgVHJlZVdhbGtlciA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFRyZWVXYWxrZXI+LCBw
dWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVm
PFRyZWVXYWxrZXI+IGNyZWF0ZShOb2RlJiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaApp
bmRleCAzZTg1NTQzMzFlZGE0MTc2MjgwNTE1YjJkZjFmNmM0NmMwNzhhNzVmLi4yNzBmZTRkMWNj
NGNmNTZjODMwODMwZjI5ZWExMmQ2NmFlNDY2NmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgK
QEAgLTQzLDggKzQzLDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFz
cyBSYW5nZTsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQogZW51bSBFQ2hpbGRyZW5P
bmx5IHsgSW5jbHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsg
RG9Ob3RSZXNvbHZlVVJMcywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsK
IGVudW0gRUZyYWdtZW50U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24s
IFhNTEZyYWdtZW50U2VyaWFsaXphdGlvbiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmgKaW5kZXgg
ODJiYWEwOTg1OTEzNDJiYWE2YTM4NDhmNTc5YzViYTZmOWU1MGEwZC4uNmI4Njc2ODA4NDFkYTJk
MTk4ODFlYTVlYzA5YzRhODM5NTlkNjMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5oCkBAIC0z
NCw4ICszNCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBpbnQgRXhjZXB0
aW9uQ29kZTsKLQogY2xhc3MgSW1hZ2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2VEYXRh
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBjcmVh
dGUodW5zaWduZWQgc3csIHVuc2lnbmVkIHNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4
IGVkNzkyYzhmNDAyOWVlYWNiNjE2YzgxYzI3ZWUzY2VlZWNiNzIyZTQuLjZkZWM3MzExN2UyZTll
NDk5ZjczMjk5ZmFkNjY0YWY0MWE4YmViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAt
NjUsOCArNjUsNiBAQCBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiAKIHN0cnVj
dCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlOwogCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwot
CiAvLyBBbiBJbnB1dFR5cGUgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHR5cGUtc3BlY2lmaWMgcGFy
dCBvZiBhbiBIVE1MSW5wdXRFbGVtZW50LgogLy8gRG8gbm90IGV4cG9zZSBpbnN0YW5jZXMgb2Yg
SW5wdXRUeXBlIGFuZCBjbGFzc2VzIGRlcml2ZWQgZnJvbSBpdCB0byBjbGFzc2VzCiAvLyBvdGhl
ciB0aGFuIEhUTUxJbnB1dEVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGVkOWQ0MDE3ZjRjODk5MzU5
ZWM3OTc5YmFkM2MwODYwMDU0ZDk3M2YuLjQ1YTEzYjFjN2RmNzJjNzk5NWViMzFmYTk0N2RlYjY3
YTVjNTM5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC01NSw4ICs1NSw2IEBAIGNsYXNzIEhUTUxWaWRlb0Vs
ZW1lbnQ7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBUZXh0TWV0cmljczsKIAotdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKLQogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGZpbmFs
IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQsIHB1YmxpYyBDYW52YXNQYXRoIHsKIHB1
YmxpYzoKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQmLCBi
b29sIHVzZXNDU1NDb21wYXRpYmlsaXR5UGFyc2VNb2RlLCBib29sIHVzZXNEYXNoYm9hcmRDb21w
YXRpYmlsaXR5TW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnU2hhZGVycy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1NoYWRlcnMuaAppbmRleCBkOTcyYmY4NGQyZGYyNmIwZWI2YmIzOTQ5NzcxMDYxNWRjNTNlN2Q3
Li5kZTRiZjAxMzU1MDlmMDEwYTI2MTcxZmEzZWQwNzM0YWE2NDMwZDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKQEAgLTMxLDggKzMxLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFNoYWRlcjsKIAotdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKLQogY2xhc3MgV2ViR0xEZWJ1Z1NoYWRlcnMgZmluYWwgOiBwdWJs
aWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdMRGVidWdTaGFk
ZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCAzNGRkNTA5NzFlYTg3ZjI0NzM2MjFkYmYwYTY3MWZiMDI0NjRlYjJjLi5mNGI5YmZk
ZWYwMmM1OWRhNTkyNzIzMmRjZDZmMTdmMjljNTE3YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6
c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sCiB7CiAg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNv
bnRleHQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb25Db2RlIHsgSU5WQUxJRF9BQ0NFU1NfRVJS
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAg
ICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRleHQsIFdURk1vdmUoYWN0aW9uKSwgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CiB9CiAKQEAgLTE2NDksNyAr
MTY0OSw3IEBAIEV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRJbnRlcnZhbChzdGQ6OnVu
aXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sCiB7CiAgICAgYXV0byogY29udGV4dCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb25Db2RlIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAgICByZXR1cm4gRE9NVGltZXI6
Omluc3RhbGwoKmNvbnRleHQsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyh0aW1lb3V0KSwgZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXpl
ZERPTVJlc3VsdC5oCmluZGV4IGNhYzFkMTk4MzQxMjkyZWQyOTMwMjgyYTI3MTE5ZTIzZTgyZmJi
OGEuLmIwMGIxNWI1YWUzNTg0OWM1ZDc4YzFjNzBhYjQ5Y2JkNmJlYWJjYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi10eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwordXNpbmcgRXhjZXB0aW9uQ29kZSA9IGludDsKIAogLy8gQWRk
IG5ldyBtZW1vaXplZCBjdHlwZXMgaGVyZS4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBlbnVt
IHZhbHVlLAogLy8gd2hpY2ggY2Fubm90IGNvbmZsaWN0IHdpdGggYnVpbHQtaW4gcHJpbWl0aXZl
IHR5cGVzLiBUaGUgc2Vjb25kIGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMzFiMjgxNzdmODhkY2IxNWY0
YWQ3ODdiMjExYzgyMzFjYThiZWZjOC4uOWE2YjBiOWExNzQ0OGQwOWJkNTE1MTNmN2MwNTVhZTNk
NmNkOTYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9j
dW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtOTksMjUgKzk5LDIzIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYXNOb1N0eWxlSW5mb3JtYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50KQogY2xhc3MgUGVu
ZGluZ0NhbGxiYWNrcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGVuZGluZ0NhbGxiYWNr
cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFBlbmRpbmdDYWxsYmFj
a3MoKSB7IH0KLSAgICB+UGVuZGluZ0NhbGxiYWNrcygpIHsgfQorICAgIFBlbmRpbmdDYWxsYmFj
a3MoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIGFwcGVuZFN0YXJ0RWxlbWVudE5TQ2FsbGJhY2so
Y29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGFyKiB4bWxQcmVmaXgsIGNv
bnN0IHhtbENoYXIqIHhtbFVSSSwgaW50IG5iX25hbWVzcGFjZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqKiBuYW1lc3BhY2VzLCBpbnQgbmJf
YXR0cmlidXRlcywgaW50IG5iX2RlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGF0dHJpYnV0ZXMp
CisgICAgdm9pZCBhcHBlbmRTdGFydEVsZW1lbnROU0NhbGxiYWNrKGNvbnN0IHhtbENoYXIqIHht
bExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogeG1sUHJlZml4LCBjb25zdCB4bWxDaGFyKiB4bWxV
UkksIGludCBudW1OYW1lc3BhY2VzLCBjb25zdCB4bWxDaGFyKiogbmFtZXNwYWNlcywgaW50IG51
bUF0dHJpYnV0ZXMsIGludCBudW1EZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBhdHRyaWJ1dGVz
KQogICAgIHsKICAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6bWFrZV91bmlxdWU8UGVuZGlu
Z1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2s+KCk7CiAKICAgICAgICAgY2FsbGJhY2stPnhtbExvY2Fs
TmFtZSA9IHhtbFN0cmR1cCh4bWxMb2NhbE5hbWUpOwogICAgICAgICBjYWxsYmFjay0+eG1sUHJl
Zml4ID0geG1sU3RyZHVwKHhtbFByZWZpeCk7CiAgICAgICAgIGNhbGxiYWNrLT54bWxVUkkgPSB4
bWxTdHJkdXAoeG1sVVJJKTsKLSAgICAgICAgY2FsbGJhY2stPm5iX25hbWVzcGFjZXMgPSBuYl9u
YW1lc3BhY2VzOwotICAgICAgICBjYWxsYmFjay0+bmFtZXNwYWNlcyA9IHN0YXRpY19jYXN0PHht
bENoYXIqKj4oeG1sTWFsbG9jKHNpemVvZih4bWxDaGFyKikgKiBuYl9uYW1lc3BhY2VzICogMikp
OwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX25hbWVzcGFjZXMgKiAyIDsgaSsrKQor
ICAgICAgICBjYWxsYmFjay0+bnVtTmFtZXNwYWNlcyA9IG51bU5hbWVzcGFjZXM7CisgICAgICAg
IGNhbGxiYWNrLT5uYW1lc3BhY2VzID0gc3RhdGljX2Nhc3Q8eG1sQ2hhcioqPih4bWxNYWxsb2Mo
c2l6ZW9mKHhtbENoYXIqKSAqIG51bU5hbWVzcGFjZXMgKiAyKSk7CisgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbnVtTmFtZXNwYWNlcyAqIDIgOyBpKyspCiAgICAgICAgICAgICBjYWxsYmFj
ay0+bmFtZXNwYWNlc1tpXSA9IHhtbFN0cmR1cChuYW1lc3BhY2VzW2ldKTsKLSAgICAgICAgY2Fs
bGJhY2stPm5iX2F0dHJpYnV0ZXMgPSBuYl9hdHRyaWJ1dGVzOwotICAgICAgICBjYWxsYmFjay0+
bmJfZGVmYXVsdGVkID0gbmJfZGVmYXVsdGVkOwotICAgICAgICBjYWxsYmFjay0+YXR0cmlidXRl
cyA9IHN0YXRpY19jYXN0PHhtbENoYXIqKj4oeG1sTWFsbG9jKHNpemVvZih4bWxDaGFyKikgKiBu
Yl9hdHRyaWJ1dGVzICogNSkpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2F0dHJp
YnV0ZXM7IGkrKykgeworICAgICAgICBjYWxsYmFjay0+bnVtQXR0cmlidXRlcyA9IG51bUF0dHJp
YnV0ZXM7CisgICAgICAgIGNhbGxiYWNrLT5udW1EZWZhdWx0ZWQgPSBudW1EZWZhdWx0ZWQ7Cisg
ICAgICAgIGNhbGxiYWNrLT5hdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8eG1sQ2hhcioqPih4bWxN
YWxsb2Moc2l6ZW9mKHhtbENoYXIqKSAqIG51bUF0dHJpYnV0ZXMgKiA1KSk7CisgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbnVtQXR0cmlidXRlczsgaSsrKSB7CiAgICAgICAgICAgICAvLyBF
YWNoIGF0dHJpYnV0ZSBoYXMgNSBlbGVtZW50cyBpbiB0aGUgYXJyYXk6CiAgICAgICAgICAgICAv
LyBuYW1lLCBwcmVmaXgsIHVyaSwgdmFsdWUgYW5kIGFuIGVuZCBwb2ludGVyLgogCkBAIC0yMjAs
MjkgKzIxOCwyOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZSh4bWxMb2NhbE5hbWUp
OwogICAgICAgICAgICAgeG1sRnJlZSh4bWxQcmVmaXgpOwogICAgICAgICAgICAgeG1sRnJlZSh4
bWxVUkkpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYl9uYW1lc3BhY2VzICog
MjsgaSsrKQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1OYW1lc3BhY2VzICog
MjsgaSsrKQogICAgICAgICAgICAgICAgIHhtbEZyZWUobmFtZXNwYWNlc1tpXSk7CiAgICAgICAg
ICAgICB4bWxGcmVlKG5hbWVzcGFjZXMpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBuYl9hdHRyaWJ1dGVzOyBpKyspCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51
bUF0dHJpYnV0ZXM7IGkrKykgewogICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwg
NDsgaisrKQogICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGF0dHJpYnV0ZXNbaSAqIDUgKyBq
XSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB4bWxGcmVlKGF0dHJpYnV0ZXMpOwogICAg
ICAgICB9CiAKICAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92
ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIHBhcnNlci0+c3RhcnRFbGVtZW50TnMoeG1s
TG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmJfbmFtZXNwYWNlcywgY29uc3RfY2FzdDxjb25zdCB4bWxDaGFyKio+KG5h
bWVzcGFjZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRy
aWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hhcioqPihhdHRyaWJ1
dGVzKSk7CisgICAgICAgICAgICBwYXJzZXItPnN0YXJ0RWxlbWVudE5zKHhtbExvY2FsTmFtZSwg
eG1sUHJlZml4LCB4bWxVUkksIG51bU5hbWVzcGFjZXMsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hh
cioqPihuYW1lc3BhY2VzKSwgbnVtQXR0cmlidXRlcywgbnVtRGVmYXVsdGVkLCBjb25zdF9jYXN0
PGNvbnN0IHhtbENoYXIqKj4oYXR0cmlidXRlcykpOwogICAgICAgICB9CiAKICAgICAgICAgeG1s
Q2hhciogeG1sTG9jYWxOYW1lOwogICAgICAgICB4bWxDaGFyKiB4bWxQcmVmaXg7CiAgICAgICAg
IHhtbENoYXIqIHhtbFVSSTsKLSAgICAgICAgaW50IG5iX25hbWVzcGFjZXM7CisgICAgICAgIGlu
dCBudW1OYW1lc3BhY2VzOwogICAgICAgICB4bWxDaGFyKiogbmFtZXNwYWNlczsKLSAgICAgICAg
aW50IG5iX2F0dHJpYnV0ZXM7Ci0gICAgICAgIGludCBuYl9kZWZhdWx0ZWQ7CisgICAgICAgIGlu
dCBudW1BdHRyaWJ1dGVzOworICAgICAgICBpbnQgbnVtRGVmYXVsdGVkOwogICAgICAgICB4bWxD
aGFyKiogYXR0cmlidXRlczsKICAgICB9OwogCkBAIC03MzAsMjMgKzcyNywyMiBAQCBzdHJ1Y3Qg
X3htbFNBWDJOYW1lc3BhY2UgewogfTsKIHR5cGVkZWYgc3RydWN0IF94bWxTQVgyTmFtZXNwYWNl
IHhtbFNBWDJOYW1lc3BhY2U7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVOYW1lc3BhY2VB
dHRyaWJ1dGVzKFZlY3RvcjxBdHRyaWJ1dGU+JiBwcmVmaXhlZEF0dHJpYnV0ZXMsIGNvbnN0IHht
bENoYXIqKiBsaWJ4bWxOYW1lc3BhY2VzLCBpbnQgbmJfbmFtZXNwYWNlcywgRXhjZXB0aW9uQ29k
ZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgaGFuZGxlTmFtZXNwYWNlQXR0cmlidXRlcyhWZWN0
b3I8QXR0cmlidXRlPiYgcHJlZml4ZWRBdHRyaWJ1dGVzLCBjb25zdCB4bWxDaGFyKiogbGlieG1s
TmFtZXNwYWNlcywgaW50IG51bU5hbWVzcGFjZXMpCiB7CiAgICAgeG1sU0FYMk5hbWVzcGFjZSog
bmFtZXNwYWNlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eG1sU0FYMk5hbWVzcGFjZSo+KGxpYnhtbE5h
bWVzcGFjZXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfbmFtZXNwYWNlczsgaSsrKSB7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1OYW1lc3BhY2VzOyBpKyspIHsKICAgICAgICAg
QXRvbWljU3RyaW5nIG5hbWVzcGFjZVFOYW1lID0geG1sbnNBdG9tOwogICAgICAgICBBdG9taWNT
dHJpbmcgbmFtZXNwYWNlVVJJID0gdG9BdG9taWNTdHJpbmcobmFtZXNwYWNlc1tpXS51cmkpOwog
ICAgICAgICBpZiAobmFtZXNwYWNlc1tpXS5wcmVmaXgpCiAgICAgICAgICAgICBuYW1lc3BhY2VR
TmFtZSA9ICJ4bWxuczoiICsgdG9TdHJpbmcobmFtZXNwYWNlc1tpXS5wcmVmaXgpOwogCiAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGVOYW1lKFhNTE5TTmFtZXM6
OnhtbG5zTmFtZXNwYWNlVVJJLCBuYW1lc3BhY2VRTmFtZSk7Ci0gICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIGVjID0gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKS5jb2RlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICBwcmVmaXhlZEF0dHJpYnV0ZXMuYXBwZW5kKEF0dHJpYnV0ZShyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCksIG5hbWVzcGFjZVVSSSkpOwogICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogc3RydWN0IF94bWxTQVgyQXR0cmlidXRlcyB7CkBAIC03NTgsMTAgKzc1NCwxMCBAQCBzdHJ1
Y3QgX3htbFNBWDJBdHRyaWJ1dGVzIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBfeG1sU0FYMkF0dHJp
YnV0ZXMgeG1sU0FYMkF0dHJpYnV0ZXM7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVFbGVt
ZW50QXR0cmlidXRlcyhWZWN0b3I8QXR0cmlidXRlPiYgcHJlZml4ZWRBdHRyaWJ1dGVzLCBjb25z
dCB4bWxDaGFyKiogbGlieG1sQXR0cmlidXRlcywgaW50IG5iX2F0dHJpYnV0ZXMsIEV4Y2VwdGlv
bkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGhhbmRsZUVsZW1lbnRBdHRyaWJ1dGVzKFZl
Y3RvcjxBdHRyaWJ1dGU+JiBwcmVmaXhlZEF0dHJpYnV0ZXMsIGNvbnN0IHhtbENoYXIqKiBsaWJ4
bWxBdHRyaWJ1dGVzLCB1bnNpZ25lZCBudW1BdHRyaWJ1dGVzKQogewogICAgIHhtbFNBWDJBdHRy
aWJ1dGVzKiBhdHRyaWJ1dGVzID0gcmVpbnRlcnByZXRfY2FzdDx4bWxTQVgyQXR0cmlidXRlcyo+
KGxpYnhtbEF0dHJpYnV0ZXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfYXR0cmlidXRl
czsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BdHRyaWJ1dGVzOyBpKyspIHsK
ICAgICAgICAgaW50IHZhbHVlTGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihhdHRyaWJ1dGVzW2ld
LmVuZCAtIGF0dHJpYnV0ZXNbaV0udmFsdWUpOwogICAgICAgICBBdG9taWNTdHJpbmcgYXR0clZh
bHVlID0gdG9BdG9taWNTdHJpbmcoYXR0cmlidXRlc1tpXS52YWx1ZSwgdmFsdWVMZW5ndGgpOwog
ICAgICAgICBTdHJpbmcgYXR0clByZWZpeCA9IHRvU3RyaW5nKGF0dHJpYnV0ZXNbaV0ucHJlZml4
KTsKQEAgLTc2OSwxMyArNzY1LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVFbGVtZW50
QXR0cmlidXRlcyhWZWN0b3I8QXR0cmlidXRlPiYgcHJlZml4ZWRBdHRyaWJ1dGVzCiAgICAgICAg
IEF0b21pY1N0cmluZyBhdHRyUU5hbWUgPSBhdHRyUHJlZml4LmlzRW1wdHkoKSA/IHRvQXRvbWlj
U3RyaW5nKGF0dHJpYnV0ZXNbaV0ubG9jYWxuYW1lKSA6IGF0dHJQcmVmaXggKyAiOiIgKyB0b1N0
cmluZyhhdHRyaWJ1dGVzW2ldLmxvY2FsbmFtZSk7CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZU5hbWUoYXR0clVSSSwgYXR0clFOYW1lKTsKLSAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgZWMgPSByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpLmNvZGUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQor
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIHByZWZpeGVkQXR0cmlidXRlcy5hcHBlbmQoQXR0cmlidXRlKHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgYXR0clZhbHVlKSk7CiAgICAgfQorICAgIHJldHVybiB0
cnVlOwogfQogCiAvLyBUaGlzIGlzIGEgaGFjayBhcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5nbm9t
ZS5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjk2MApAQCAtNzkxLDE1ICs3ODYsMTMgQEAgc3RhdGlj
IGlubGluZSBib29sIGhhY2tBcm91bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkKICNlbmRpZgog
fQogCi12b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFy
KiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIqIHhtbFByZWZpeCwgY29uc3QgeG1sQ2hhciog
eG1sVVJJLCBpbnQgbmJfbmFtZXNwYWNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCB4bWxDaGFyKiogbGlieG1sTmFtZXNwYWNlcywgaW50IG5iX2F0dHJpYnV0ZXMs
IGludCBuYl9kZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxBdHRyaWJ1dGVzKQordm9p
ZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9j
YWxOYW1lLCBjb25zdCB4bWxDaGFyKiB4bWxQcmVmaXgsIGNvbnN0IHhtbENoYXIqIHhtbFVSSSwg
aW50IG51bU5hbWVzcGFjZXMsIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxOYW1lc3BhY2VzLCBpbnQg
bnVtQXR0cmlidXRlcywgaW50IG51bURlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGxpYnhtbEF0
dHJpYnV0ZXMpCiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAobV9wYXJzZXJQYXVzZWQpIHsKLSAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBl
bmRTdGFydEVsZW1lbnROU0NhbGxiYWNrKHhtbExvY2FsTmFtZSwgeG1sUHJlZml4LCB4bWxVUkks
IG5iX25hbWVzcGFjZXMsIGxpYnhtbE5hbWVzcGFjZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZh
dWx0ZWQsIGxpYnhtbEF0dHJpYnV0ZXMpOworICAgICAgICBtX3BlbmRpbmdDYWxsYmFja3MtPmFw
cGVuZFN0YXJ0RWxlbWVudE5TQ2FsbGJhY2soeG1sTG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVS
SSwgbnVtTmFtZXNwYWNlcywgbGlieG1sTmFtZXNwYWNlcywgbnVtQXR0cmlidXRlcywgbnVtRGVm
YXVsdGVkLCBsaWJ4bWxBdHRyaWJ1dGVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
ODI5LDE3ICs4MjIsMTUgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMo
Y29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKICAgICBhdXRvIG5ld0Vs
ZW1lbnQgPSBtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQocU5hbWUsIHRy
dWUpOwogCiAgICAgVmVjdG9yPEF0dHJpYnV0ZT4gcHJlZml4ZWRBdHRyaWJ1dGVzOwotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGhhbmRsZU5hbWVzcGFjZUF0dHJpYnV0ZXMocHJlZml4
ZWRBdHRyaWJ1dGVzLCBsaWJ4bWxOYW1lc3BhY2VzLCBuYl9uYW1lc3BhY2VzLCBlYyk7Ci0gICAg
aWYgKGVjKSB7CisgICAgaWYgKCFoYW5kbGVOYW1lc3BhY2VBdHRyaWJ1dGVzKHByZWZpeGVkQXR0
cmlidXRlcywgbGlieG1sTmFtZXNwYWNlcywgbnVtTmFtZXNwYWNlcykpIHsKICAgICAgICAgc2V0
QXR0cmlidXRlcyhuZXdFbGVtZW50LnB0cigpLCBwcmVmaXhlZEF0dHJpYnV0ZXMsIHBhcnNlckNv
bnRlbnRQb2xpY3koKSk7CiAgICAgICAgIHN0b3BQYXJzaW5nKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBoYW5kbGVFbGVtZW50QXR0cmlidXRlcyhwcmVmaXhlZEF0dHJpYnV0ZXMs
IGxpYnhtbEF0dHJpYnV0ZXMsIG5iX2F0dHJpYnV0ZXMsIGVjKTsKKyAgICBib29sIHN1Y2Nlc3Mg
PSBoYW5kbGVFbGVtZW50QXR0cmlidXRlcyhwcmVmaXhlZEF0dHJpYnV0ZXMsIGxpYnhtbEF0dHJp
YnV0ZXMsIG51bUF0dHJpYnV0ZXMpOwogICAgIHNldEF0dHJpYnV0ZXMobmV3RWxlbWVudC5wdHIo
KSwgcHJlZml4ZWRBdHRyaWJ1dGVzLCBwYXJzZXJDb250ZW50UG9saWN5KCkpOwotICAgIGlmIChl
YykgeworICAgIGlmICghc3VjY2VzcykgewogICAgICAgICBzdG9wUGFyc2luZygpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTEwNywyMSArMTA5OCwyMCBAQCBzdGF0aWMgaW5saW5lIFhN
TERvY3VtZW50UGFyc2VyKiBnZXRQYXJzZXIodm9pZCogY2xvc3VyZSkKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKHZvaWQqIGNsb3N1cmUpCiB7CiAjaWYgTElC
WE1MX1ZFUlNJT04gPj0gMjA2MjcKLSAgICBVTlVTRURfUEFSQU0oY2xvc3VyZSk7Ci0KICAgICAv
LyBUaGlzIGJ1ZyBoYXMgYmVlbiBmaXhlZCBpbiBsaWJ4bWwgMi42LjI3LgorICAgIFVOVVNFRF9Q
QVJBTShjbG9zdXJlKTsKICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDx4bWxQYXJzZXJDdHh0UHRyPihjbG9zdXJlKS0+bm9kZTsKICNlbmRpZgogfQogCi1z
dGF0aWMgdm9pZCBzdGFydEVsZW1lbnROc0hhbmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1s
Q2hhciogbG9jYWxuYW1lLCBjb25zdCB4bWxDaGFyKiBwcmVmaXgsIGNvbnN0IHhtbENoYXIqIHVy
aSwgaW50IG5iX25hbWVzcGFjZXMsIGNvbnN0IHhtbENoYXIqKiBuYW1lc3BhY2VzLCBpbnQgbmJf
YXR0cmlidXRlcywgaW50IG5iX2RlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGxpYnhtbEF0dHJp
YnV0ZXMpCitzdGF0aWMgdm9pZCBzdGFydEVsZW1lbnROc0hhbmRsZXIodm9pZCogY2xvc3VyZSwg
Y29uc3QgeG1sQ2hhciogbG9jYWxuYW1lLCBjb25zdCB4bWxDaGFyKiBwcmVmaXgsIGNvbnN0IHht
bENoYXIqIHVyaSwgaW50IG51bU5hbWVzcGFjZXMsIGNvbnN0IHhtbENoYXIqKiBuYW1lc3BhY2Vz
LCBpbnQgbnVtQXR0cmlidXRlcywgaW50IG51bURlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGxp
YnhtbEF0dHJpYnV0ZXMpCiB7CiAgICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlCdWcoY2xv
c3VyZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdldFBhcnNlcihjbG9zdXJlKS0+c3RhcnRF
bGVtZW50TnMobG9jYWxuYW1lLCBwcmVmaXgsIHVyaSwgbmJfbmFtZXNwYWNlcywgbmFtZXNwYWNl
cywgbmJfYXR0cmlidXRlcywgbmJfZGVmYXVsdGVkLCBsaWJ4bWxBdHRyaWJ1dGVzKTsKKyAgICBn
ZXRQYXJzZXIoY2xvc3VyZSktPnN0YXJ0RWxlbWVudE5zKGxvY2FsbmFtZSwgcHJlZml4LCB1cmks
IG51bU5hbWVzcGFjZXMsIG5hbWVzcGFjZXMsIG51bUF0dHJpYnV0ZXMsIG51bURlZmF1bHRlZCwg
bGlieG1sQXR0cmlidXRlcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGVuZEVsZW1lbnROc0hhbmRsZXIo
dm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciosIGNvbnN0IHhtbENoYXIqLCBjb25zdCB4bWxD
aGFyKikKQEAgLTE1MTgsOSArMTUwOCw3IEBAIHN0cnVjdCBBdHRyaWJ1dGVQYXJzZVN0YXRlIHsK
ICAgICBib29sIGdvdEF0dHJpYnV0ZXM7CiB9OwogCi1zdGF0aWMgdm9pZCBhdHRyaWJ1dGVzU3Rh
cnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIHhtbExvY2Fs
TmFtZSwgY29uc3QgeG1sQ2hhciogLyp4bWxQcmVmaXgqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciogLyp4bWxVUkkqLywgaW50IC8q
bmJfbmFtZXNwYWNlcyovLCBjb25zdCB4bWxDaGFyKiogLypuYW1lc3BhY2VzKi8sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYl9hdHRyaWJ1dGVzLCBp
bnQgLypuYl9kZWZhdWx0ZWQqLywgY29uc3QgeG1sQ2hhcioqIGxpYnhtbEF0dHJpYnV0ZXMpCitz
dGF0aWMgdm9pZCBhdHRyaWJ1dGVzU3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUs
IGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogLyp4bWxQcmVmaXgq
LywgY29uc3QgeG1sQ2hhciogLyp4bWxVUkkqLywgaW50IC8qbnVtTmFtZXNwYWNlcyovLCBjb25z
dCB4bWxDaGFyKiogLypuYW1lc3BhY2VzKi8sIGludCBudW1BdHRyaWJ1dGVzLCBpbnQgLypudW1E
ZWZhdWx0ZWQqLywgY29uc3QgeG1sQ2hhcioqIGxpYnhtbEF0dHJpYnV0ZXMpCiB7CiAgICAgaWYg
KHN0cmNtcChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih4bWxMb2NhbE5hbWUpLCAiYXR0
cnMiKSAhPSAwKQogICAgICAgICByZXR1cm47CkBAIC0xNTMxLDcgKzE1MTksNyBAQCBzdGF0aWMg
dm9pZCBhdHRyaWJ1dGVzU3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0
IHhtbENoYXIqIHhtbExvYwogICAgIHN0YXRlLT5nb3RBdHRyaWJ1dGVzID0gdHJ1ZTsKIAogICAg
IHhtbFNBWDJBdHRyaWJ1dGVzKiBhdHRyaWJ1dGVzID0gcmVpbnRlcnByZXRfY2FzdDx4bWxTQVgy
QXR0cmlidXRlcyo+KGxpYnhtbEF0dHJpYnV0ZXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bmJfYXR0cmlidXRlczsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BdHRyaWJ1
dGVzOyBpKyspIHsKICAgICAgICAgU3RyaW5nIGF0dHJMb2NhbE5hbWUgPSB0b1N0cmluZyhhdHRy
aWJ1dGVzW2ldLmxvY2FsbmFtZSk7CiAgICAgICAgIGludCB2YWx1ZUxlbmd0aCA9IChpbnQpIChh
dHRyaWJ1dGVzW2ldLmVuZCAtIGF0dHJpYnV0ZXNbaV0udmFsdWUpOwogICAgICAgICBTdHJpbmcg
YXR0clZhbHVlID0gdG9TdHJpbmcoYXR0cmlidXRlc1tpXS52YWx1ZSwgdmFsdWVMZW5ndGgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTURPTUltcGxlbWVudGF0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTURPTUltcGxlbWVudGF0aW9uLm1tCmluZGV4IGFm
MGU3MTQ2NjEyN2ZjM2IxZjgzMjg3M2E0NjkwMTIwYWY2MjQ1ZGEuLjQ3YTA2MTk0MGRiMzE4YmJl
MGU2ZDkyN2E4YWY0OWQ2Y2M5OWJmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RP
TS9ET01ET01JbXBsZW1lbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9N
RE9NSW1wbGVtZW50YXRpb24ubW0KQEAgLTY1LDIzICs2NSwxMyBAQCAtIChCT09MKWhhc0ZlYXR1
cmU6KE5TU3RyaW5nICopZmVhdHVyZSB2ZXJzaW9uOihOU1N0cmluZyAqKXZlcnNpb24KIC0gKERP
TURvY3VtZW50VHlwZSAqKWNyZWF0ZURvY3VtZW50VHlwZTooTlNTdHJpbmcgKilxdWFsaWZpZWRO
YW1lIHB1YmxpY0lkOihOU1N0cmluZyAqKXB1YmxpY0lkIHN5c3RlbUlkOihOU1N0cmluZyAqKXN5
c3RlbUlkCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IGF1dG8gcmVzdWx0ID0gdW53cmFwKCpzZWxmKS5jcmVhdGVEb2N1bWVudFR5cGUocXVhbGlmaWVk
TmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KSB7Ci0gICAgICAgIHJhaXNlRE9NRXhjZXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCku
Y29kZSgpKTsKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICB9Ci0gICAgcmV0dXJuIGtpdChyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworICAgIHJldHVybiBraXQocmFpc2VPbkRP
TUVycm9yKHVud3JhcCgqc2VsZikuY3JlYXRlRG9jdW1lbnRUeXBlKHF1YWxpZmllZE5hbWUsIHB1
YmxpY0lkLCBzeXN0ZW1JZCkpLnB0cigpKTsKIH0KIAogLSAoRE9NRG9jdW1lbnQgKiljcmVhdGVE
b2N1bWVudDooTlNTdHJpbmcgKiluYW1lc3BhY2VVUkkgcXVhbGlmaWVkTmFtZTooTlNTdHJpbmcg
KilxdWFsaWZpZWROYW1lIGRvY3R5cGU6KERPTURvY3VtZW50VHlwZSAqKWRvY3R5cGUKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgYXV0byByZXN1bHQg
PSB1bndyYXAoKnNlbGYpLmNyZWF0ZURvY3VtZW50KG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFt
ZSwgY29yZShkb2N0eXBlKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAg
ICAgICByYWlzZURPTUV4Y2VwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7
Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotICAgIHJldHVybiBraXQocmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKKyAgICByZXR1cm4ga2l0KHJhaXNlT25ET01FcnJvcih1
bndyYXAoKnNlbGYpLmNyZWF0ZURvY3VtZW50KG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwg
Y29yZShkb2N0eXBlKSkpLnB0cigpKTsKIH0KIAogLSAoRE9NQ1NTU3R5bGVTaGVldCAqKWNyZWF0
ZUNTU1N0eWxlU2hlZXQ6KE5TU3RyaW5nICopdGl0bGUgbWVkaWE6KE5TU3RyaW5nICopbWVkaWEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Eb2N1bWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQppbmRleCA5MjY3NzdlNTFkYmE5ODljZGRh
NGFiNjIxNjNmOTQ5YTI1NWE4OWE5Li42NzRjYmQyNGRlOGY2MzI1NDNkZjc2ZjNkODc3ZGViMzg3
MWMzM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NRG9jdW1lbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCkBAIC00ODcsNyArNDg3
LDcgQEAgLSAoRE9NQXR0ciAqKWNyZWF0ZUF0dHJpYnV0ZTooTlNTdHJpbmcgKiluYW1lCiAtIChE
T01FbnRpdHlSZWZlcmVuY2UgKiljcmVhdGVFbnRpdHlSZWZlcmVuY2U6KE5TU3RyaW5nICopbmFt
ZQogewogICAgIFVOVVNFRF9QQVJBTShuYW1lKTsKLSAgICByYWlzZURPTUV4Y2VwdGlvbihXZWJD
b3JlOjpOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgcmFpc2VOb3RTdXBwb3J0ZWRFcnJvckV4Y2Vw
dGlvbigpOwogfQogCiAtIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlUYWdOYW1lOihOU1N0
cmluZyAqKXRhZ25hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1M
T3B0aW9uc0NvbGxlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLm1tCmluZGV4IDA2ZGI2NmEyNWM5Yzg4MGFjMzVlMGEzYTYyZGFmN2I5MTQ1
N2M3MjEuLjUwM2ZmNjJjNmY2OTEzY2M5NTA4ZGVkODhjMGMwYjYzNTAxMjdiNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbQpAQCAt
OTAsOSArOTAsNyBAQCAtICh2b2lkKWFkZDooRE9NSFRNTE9wdGlvbkVsZW1lbnQgKilvcHRpb24g
aW5kZXg6KHVuc2lnbmVkKWluZGV4CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIGlmICghb3B0aW9uKQogICAgICAgICByYWlzZVR5cGVFcnJvckV4Y2VwdGlv
bigpOwotICAgIGF1dG8gZXhjZXB0aW9uID0gSU1QTC0+YWRkKGNvcmUob3B0aW9uKSwgT3B0aW9u
YWw8V2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpIVE1MRWxlbWVudE9ySW50PihzdGF0
aWNfY2FzdDxpbnQ+KGluZGV4KSkpOwotICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkp
Ci0gICAgICAgIHJhaXNlT25ET01FcnJvcihleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNv
ZGUoKSk7CisgICAgcmFpc2VPbkRPTUVycm9yKElNUEwtPmFkZChjb3JlKG9wdGlvbiksIE9wdGlv
bmFsPFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbjo6SFRNTEVsZW1lbnRPckludD4geyBz
dGF0aWNfY2FzdDxpbnQ+KGluZGV4KSB9KSk7CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOih1bnNpZ25l
ZClpbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RF
bGVtZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1t
CmluZGV4IGI2ZWNhOTYzZDdkNDE5NzJkNzRjNGU1NzI3ZDdmN2MyNjY2MjJhYTcuLmEwNDIzZDQy
MjdjN2IyOThjMzlkZDc3ODlmMDFjZDgyZjBhYTY1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0KQEAgLTE5MCwxMyArMTkwLDkgQEAgLSAodm9p
ZClhZGQ6KERPTUhUTUxFbGVtZW50ICopZWxlbWVudCBiZWZvcmU6KERPTUhUTUxFbGVtZW50ICop
YmVmb3JlCiAgICAgICAgIHZhcmlhbnRFbGVtZW50ID0gJmRvd25jYXN0PFdlYkNvcmU6OkhUTUxP
cHRpb25FbGVtZW50Pihjb3JlRWxlbWVudCk7CiAgICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6SFRN
TE9wdEdyb3VwRWxlbWVudD4oY29yZUVsZW1lbnQpKQogICAgICAgICB2YXJpYW50RWxlbWVudCA9
ICZkb3duY2FzdDxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pihjb3JlRWxlbWVudCk7Ci0g
ICAgZWxzZSB7CisgICAgZWxzZQogICAgICAgICByYWlzZVR5cGVFcnJvckV4Y2VwdGlvbigpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGF1dG8gZXhjZXB0aW9uID0gSU1QTC0+YWRkKFdU
Rk1vdmUodmFyaWFudEVsZW1lbnQpLCBXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6SFRNTEVs
ZW1lbnRPckludChjb3JlKGJlZm9yZSkpKTsKLSAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlv
bigpKQotICAgICAgICByYWlzZU9uRE9NRXJyb3IoZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24o
KS5jb2RlKCkpOworICAgIHJhaXNlT25ET01FcnJvcihJTVBMLT5hZGQoV1RGTW92ZSh2YXJpYW50
RWxlbWVudCksIFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MRWxlbWVudE9ySW50KGNv
cmUoYmVmb3JlKSkpKTsKIH0KIAogLSAodm9pZClyZW1vdmU6KGludClpbmRleApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRXhjZXB0aW9uSGFuZGxlcnMuaAppbmRleCAxYjBiMTE3NDU2N2IxZWU1OWE1
NjIzYWQ3YmUyYzQwYmFhY2EwMjVjLi44NDg4NDJhZDlmMzBhNTRlMDk0ZDQzMzcxN2NkZjllMDNi
MjY1ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRXhjZXB0aW9uSGFuZGxl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRXhjZXB0aW9uSGFuZGxlcnMuaApAQCAt
MjcsMjkgKzI3LDIyIEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAKLU5P
X1JFVFVSTiB2b2lkIHJhaXNlRE9NRXhjZXB0aW9uKFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUpOwot
Tk9fUkVUVVJOIHZvaWQgcmFpc2VET01FeGNlcHRpb24oV2ViQ29yZTo6RXhjZXB0aW9uJiYpOwog
Tk9fUkVUVVJOIHZvaWQgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKK05PX1JFVFVSTiB2b2lk
IHJhaXNlTm90U3VwcG9ydGVkRXJyb3JFeGNlcHRpb24oKTsKIAotdm9pZCByYWlzZU9uRE9NRXJy
b3IoV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSk7Ci12b2lkIHJhaXNlT25ET01FcnJvcihXZWJDb3Jl
OjpFeGNlcHRpb25Pcjx2b2lkPiYmKTsKK05PX1JFVFVSTiB2b2lkIHJhaXNlRE9NRXJyb3JFeGNl
cHRpb24oV2ViQ29yZTo6RXhjZXB0aW9uJiYpOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCByYWlz
ZU9uRE9NRXJyb3IoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VD4mJik7Ci0KLWlubGluZSB2b2lkIHJh
aXNlT25ET01FcnJvcihXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGNvZGUpCi17Ci0gICAgaWYgKGNv
ZGUpCi0gICAgICAgIHJhaXNlRE9NRXhjZXB0aW9uKGNvZGUpOwotfQordm9pZCByYWlzZU9uRE9N
RXJyb3IoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4mJik7CiAKIGlubGluZSB2b2lkIHJhaXNl
T25ET01FcnJvcihXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmIHBvc3NpYmxlRXhjZXB0aW9u
KQogewogICAgIGlmIChwb3NzaWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
cmFpc2VET01FeGNlcHRpb24ocG9zc2libGVFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpKTsK
KyAgICAgICAgcmFpc2VET01FcnJvckV4Y2VwdGlvbihwb3NzaWJsZUV4Y2VwdGlvbi5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCByYWlzZU9u
RE9NRXJyb3IoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VD4mJiBleGNlcHRpb25PclJldHVyblZhbHVl
KQogewogICAgIGlmIChleGNlcHRpb25PclJldHVyblZhbHVlLmhhc0V4Y2VwdGlvbigpKQotICAg
ICAgICByYWlzZURPTUV4Y2VwdGlvbihleGNlcHRpb25PclJldHVyblZhbHVlLnJlbGVhc2VFeGNl
cHRpb24oKSk7CisgICAgICAgIHJhaXNlRE9NRXJyb3JFeGNlcHRpb24oZXhjZXB0aW9uT3JSZXR1
cm5WYWx1ZS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgIHJldHVybiBleGNlcHRpb25PclJldHVy
blZhbHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0V4
Y2VwdGlvbkhhbmRsZXJzLm1tCmluZGV4IDllZGIxZDc0MWNjN2EyZGM3ZjNmOTQxNzc2NjY2MGY5
YzNlZTNhYWUuLmQ0MGUwYmNiZjQwYmRlYjJmZTQzYWVmZjI0NGJkYTE1ZTA1YTFjYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9FeGNlcHRpb25IYW5kbGVycy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9ET00vRXhjZXB0aW9uSGFuZGxlcnMubW0KQEAgLTM3LDcgKzM3LDcg
QEAgTlNTdHJpbmcgKiBjb25zdCBET01SYW5nZUV4Y2VwdGlvbiA9IEAiRE9NUmFuZ2VFeGNlcHRp
b24iOwogTlNTdHJpbmcgKiBjb25zdCBET01FdmVudEV4Y2VwdGlvbiA9IEAiRE9NRXZlbnRFeGNl
cHRpb24iOwogTlNTdHJpbmcgKiBjb25zdCBET01YUGF0aEV4Y2VwdGlvbiA9IEAiRE9NWFBhdGhF
eGNlcHRpb24iOwogCi12b2lkIHJhaXNlRE9NRXhjZXB0aW9uKFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMpCitzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcmFpc2VET01FcnJvckV4Y2VwdGlvbihXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjKQogewogICAgIEFTU0VSVChlYyk7CiAKQEAgLTc0LDEwICs3
NCwxNSBAQCB2b2lkIHJhaXNlRE9NRXhjZXB0aW9uKFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMp
CiAKIHZvaWQgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKQogewotICAgIHJhaXNlRE9NRXhjZXB0
aW9uKFdlYkNvcmU6OlR5cGVFcnJvcik7CisgICAgcmFpc2VET01FcnJvckV4Y2VwdGlvbihXZWJD
b3JlOjpUeXBlRXJyb3IpOwogfQogCi12b2lkIHJhaXNlRE9NRXhjZXB0aW9uKFdlYkNvcmU6OkV4
Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3ZvaWQgcmFpc2VOb3RTdXBwb3J0ZWRFcnJvckV4Y2VwdGlv
bigpCiB7Ci0gICAgcmFpc2VET01FeGNlcHRpb24oZXhjZXB0aW9uLmNvZGUoKSk7CisgICAgcmFp
c2VET01FcnJvckV4Y2VwdGlvbihXZWJDb3JlOjpOT1RfU1VQUE9SVEVEX0VSUik7Cit9CisKK3Zv
aWQgcmFpc2VET01FcnJvckV4Y2VwdGlvbihXZWJDb3JlOjpFeGNlcHRpb24mJiBleGNlcHRpb24p
Cit7CisgICAgcmFpc2VET01FcnJvckV4Y2VwdGlvbihleGNlcHRpb24uY29kZSgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294625</attachid>
            <date>2016-11-12 12:14:09 -0800</date>
            <delta_ts>2016-11-12 14:34:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164683-20161112120954.patch</filename>
            <type>text/plain</type>
            <size>36472</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTllNjM5ZDdjZmZmYWI3
NGQ4ZjE2NmEzMDc1ODE2YmVmNGY4MzYzYy4uYjM2MGE0Mjg2YWIwNjFiODMwNjUwNWYxMTMyMDBm
M2U4NTU5Mjg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTExLTEyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgYSBmZXcgYXNzb3J0
ZWQgdXNlcyBvZiBFeGNlcHRpb25Db2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvbnRhY3QuaDogUmVt
b3ZlZCBpbmNsdWRlIG9mIEV4Y2VwdGlvbkNvZGUuaC4KKyAgICAgICAgQWxzbyB0aWRpZWQgdXAg
dGhlIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yLgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5oOiBSZW1vdmVkIHR5cGVkZWYgb2YgRXhjZXB0aW9uQ29kZS4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oOiBEaXR0by4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXRPYmplY3RQYXJhbWV0ZXIpOiBSZW1vdmVkIGxvY2FsIEV4Y2Vw
dGlvbkNvZGUgdmFyaWFibGUgdGhhdAorICAgICAgICB3YXMgYWx3YXlzIDAuCisgICAgICAgIChX
ZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKTogRGl0
dG8uCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogUmVtb3ZlZCB0eXBlZGVmIG9mIEV4Y2Vw
dGlvbkNvZGUuCisgICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDogRGl0dG8uCisgICAgICAgICog
ZWRpdGluZy9tYXJrdXAuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9JbWFnZURhdGEuaDogRGl0
dG8uCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6IERpdHRvLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg6IERpdHRvLgorCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRUaW1lb3V0KTogRml4
ZWQgdHlwbyB3aGVyZSB0aGlzIHdhcyB1c2luZworICAgICAgICBFeGNlcHRpb25Db2RlIGluc3Rl
YWQgb2YgRXhjZXB0aW9uLiBUaGUgY29kZSB3b3VsZCByZXR1cm4gYW4gaW50ZWdlcgorICAgICAg
ICBpbnN0ZWFkIG9mIGFuIGV4Y2VwdGlvbiBpbiB0aGlzIGNhc2UuIEkgY291bGQgbm90IHByb2R1
Y2UgYSB0ZXN0IHRoYXQKKyAgICAgICAgZXhlcmNpc2VzIHRoaXMgY29kZSBwYXRoOyBJIHN1c3Bl
Y3QgaXQgaXMgYW4gdW5yZWFjaGFibGUgZXJyb3IgY29uZGl0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzZXRJbnRlcnZhbCk6IERpdHRvLgorCisgICAgICAgICogcmVwbGF5L01l
bW9pemVkRE9NUmVzdWx0Lmg6IENoYW5nZWQgdHlwZWRlZiBvZiBFeGNlcHRpb25Db2RlIGludG8K
KyAgICAgICAgYSB1c2luZyBzdGF0ZW1lbnQuIE5vdCBzdXJlIHdoYXQgdGhlIGxvbmdlciB0ZXJt
IGZpeCBpcy4KKworICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OmFwcGVuZFN0YXJ0RWxl
bWVudE5TQ2FsbGJhY2spOiBSZW5hbWVkIHRvIHVzZQorICAgICAgICBXZWJLaXQtc3R5bGUgIm51
bVhYWCIgcmF0aGVyIHRoYW4gIm5iX3h4eCIuCisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2Fs
bGJhY2tzOjpQZW5kaW5nU3RhcnRFbGVtZW50TlNDYWxsYmFjazo6flBlbmRpbmdTdGFydEVsZW1l
bnROU0NhbGxiYWNrKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVO
YW1lc3BhY2VBdHRyaWJ1dGVzKTogRGl0dG8uIFJlcGxhY2VkIEV4Y2VwdGlvbkNvZGUgb3V0Cisg
ICAgICAgIGFyZ3VtZW50IHdpdGggYSBib29sZWFuIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKFdl
YkNvcmU6OmhhbmRsZUVsZW1lbnRBdHRyaWJ1dGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOiBEaXR0by4gVXBkYXRlZCBmb3Ig
Y2hhbmdlcworICAgICAgICB0byB0aGUgaGFuZGxlIGZ1bmN0aW9ucyBhYm92ZS4KKyAgICAgICAg
KFdlYkNvcmU6OnN0YXJ0RWxlbWVudE5zSGFuZGxlcik6IE1vcmUgb2YgdGhlIHNhbWUuCisgICAg
ICAgIChXZWJDb3JlOjphdHRyaWJ1dGVzU3RhcnRFbGVtZW50TnNIYW5kbGVyKTogRGl0dG8uCisK
IDIwMTYtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBT
cGVlZCB1cCBzZXR0aW5nIGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudHMgb2YgdHlwZSAndGV4
dCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCA2ODg1ZWI3YTMyYzE5ZTNiNjZiYjcyYmVhMGNkMzUzZTky
YTIwMDJlLi40NmRiNDFlMzBhNDI3NmUwMDcyZDlkNmMwYjcxNTM0YWZjMzkzOWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTYtMTEtMTIgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBhIGZldyBhc3NvcnRlZCB1c2VzIG9mIEV4
Y2VwdGlvbkNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRE9NL0RPTURPTUltcGxlbWVudGF0aW9uLm1tOgorICAgICAgICAoLVtET01JbXBsZW1l
bnRhdGlvbiBjcmVhdGVEb2N1bWVudFR5cGU6cHVibGljSWQ6c3lzdGVtSWQ6XSk6CisgICAgICAg
IFVzZSByYWlzZU9uRE9NRXJyb3IgaW5zdGVhZCBvZiBtdWNoIGxvbmdlciBoYW5kIHdyaXR0ZW4g
ZXF1aXZhbGVudC4KKyAgICAgICAgKC1bRE9NSW1wbGVtZW50YXRpb24gY3JlYXRlRG9jdW1lbnQ6
cXVhbGlmaWVkTmFtZTpkb2N0eXBlOl0pOiBEaXR0by4KKworICAgICAgICAqIERPTS9ET01Eb2N1
bWVudC5tbToKKyAgICAgICAgKC1bRE9NRG9jdW1lbnQgY3JlYXRlRW50aXR5UmVmZXJlbmNlOl0p
OiBVc2UgcmFpc2VOb3RTdXBwb3J0ZWRFcnJvckV4Y2VwdGlvbgorICAgICAgICBzbyB3ZSBhcmUg
bm90IHVzaW5nIGEgc3BlY2lmaWMgZXhjZXB0aW9uIGNvZGUuCisKKyAgICAgICAgKiBET00vRE9N
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tOgorICAgICAgICAoLVtET01IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24gYWRkOmluZGV4Ol0pOiBVc2UgcmFpc2VPbkRPTUVycm9yIGluc3RlYWQgb2YKKyAgICAg
ICAgbXVjaCBsb25nZXIgaGFuZCB3cml0dGVuIGVxdWl2YWxlbnQuCisgICAgICAgICogRE9NL0RP
TUhUTUxTZWxlY3RFbGVtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MU2VsZWN0RWxlbWVudCBh
ZGQ6YmVmb3JlOl0pOiBEaXR0by4gQWxzbyByZW1vdmVkIHVubmVlZGVkIHJldHVybgorICAgICAg
ICBzdGF0ZW1lbnQgYWZ0ZXIgY2FsbGluZyBhICJubyByZXR1cm4iIGZ1bmN0aW9uLgorCisgICAg
ICAgICogRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmg6IFJlbW92ZWQgb3ZlcmxvYWRzIG9mIHJhaXNl
RE9NRXhjZXB0aW9uIGFuZAorICAgICAgICByYWlzZU9uRE9NRXJyb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBFeGNlcHRpb25Db2RlOyBrZWVwIHRoZSBvbmVzIHRoYXQgdGFrZQorICAgICAgICBFeGNl
cHRpb24gYW5kIEV4Y2VwdGlvbk9yLiBSZW5hbWVkIHRoZSBvdGhlciBvdmVybG9hZCBvZiByYWlz
ZURPTUV4Y2VwdGlvbgorICAgICAgICB0byByYWlzZURPTUVycm9yRXhjZXB0aW9uOyBpdCBpcyBv
bmx5IHVzZWQgYXMgdGhlIG5vbi1pbmxpbmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgcGFydCBv
ZiB0aGUgaW5saW5lIHJhaXNlT25ET01FcnJvciBmdW5jdGlvbi4KKyAgICAgICAgKiBET00vRXhj
ZXB0aW9uSGFuZGxlcnMubW06CisgICAgICAgIChyYWlzZURPTUVycm9yRXhjZXB0aW9uKTogUmVu
YW1lZC4gTWFkZSB0aGUgRXhjZXB0aW9uQ29kZSBvdmVybG9hZCBiZSBsb2NhbAorICAgICAgICB0
byB0aGlzIHNvdXJjZSBmaWxlIGluc3RlYWQgb2YgaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKHJh
aXNlVHlwZUVycm9yRXhjZXB0aW9uKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFuZ2UuCisgICAgICAg
IChyYWlzZU5vdFN1cHBvcnRlZEVycm9yRXhjZXB0aW9uKTogQWRkZWQuCisKIDIwMTYtMTEtMTEg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSG92ZXJpbmcgb3Zl
ciBhIHNsb3R0ZWQgVGV4dCBub2RlIGNsZWFycyBob3ZlciBzdGF0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29udGFjdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29udGFjdC5oCmluZGV4IDNmMGE0NzY3ZDQ4
NThkYTExNDI2MTc2ZWNiOGUxODc3MDQ1MDQ0NDIuLjUwYWE4MDU2YWIwMWQyNzc5Mjk0NjNmMjM2
ZWY2NmZiN2Y3YzQ0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvbnRhY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRDb250YWN0LmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9Q
QVkpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNDMsMTkgKzQyLDEy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGF5bWVudENvbnRhY3QgewogcHVibGlj
OgotICAgIFBheW1lbnRDb250YWN0KCkKLSAgICB7Ci0gICAgfQotCisgICAgUGF5bWVudENvbnRh
Y3QoKSA9IGRlZmF1bHQ7CiAgICAgZXhwbGljaXQgUGF5bWVudENvbnRhY3QoUEtDb250YWN0ICpw
a0NvbnRhY3QpCiAgICAgICAgIDogbV9wa0NvbnRhY3QocGtDb250YWN0KQogICAgIHsKICAgICB9
CiAKLSAgICB+UGF5bWVudENvbnRhY3QoKQotICAgIHsKLSAgICB9Ci0KICAgICBzdGF0aWMgT3B0
aW9uYWw8UGF5bWVudENvbnRhY3Q+IGZyb21KUyhKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1
ZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaAppbmRleCA0M2I5MzY5Y2RlN2VhMjVlNjMxODJmM2U5ZTA1MmE1NzgxMWMyYzJl
Li4yNzI2NzQzNzY2OWViMDUwZTBiNDA1NzUyZDBjODcyMzA0ODgwYjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC00OSw4ICs0OSw2IEBA
IG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi10
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCiBjbGFzcyBJREJGYWN0b3J5IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQkZhY3Rvcnk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PElEQkZhY3Rvcnk+IGNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggNjgy
MjY4MTIyODRhMzY3ZWU1NzZiNDY4MmI3ZDE3MWVlMTYxYjdhMy4uMGYxM2Y5N2IwZDI2MjlmYTJh
NzdhMGFlY2M5NWYwOWRiZjgyMDdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBAIC00Miw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIElEQktleTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLXR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KIGNsYXNzIElEQktleVJhbmdlIDogcHVibGljIFNjcmlw
dFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8SURCS2V5UmFuZ2U+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPElEQktleVJhbmdlPiBjcmVhdGUoUmVmUHRyPElEQktleT4mJiBsb3dlciwg
UmVmUHRyPElEQktleT4mJiB1cHBlciwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbCBpc1VwcGVyT3Bl
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA2OGE2ZTFlNzE5MjA2NTM0
M2Y5NzZiOGYzZjRmMGQ3OWM4MzZjMTc0Li44MjVkMjUwOTRkMmNjNjIyMDZiMDQ5OTZjMTBkNTMx
ZTU0Mjk4MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTE5Niw3ICsx
OTYsNiBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYgcwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENv
dW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQg
PSBvYmotPndyYXBwZWQoKTsKICAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZSgpKTsKQEAgLTIyMSwxMCArMjIwLDYgQEAgc3RhdGljIEpTVmFsdWUgZ2V0T2Jq
ZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUm
IHMKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KICAgICByZXR1cm4gdG9KUygmc3RhdGUsIG9i
ai0+Z2xvYmFsT2JqZWN0KCksIGluZm8pOwogfQogCkBAIC0zMDQsMTggKzI5OSwxMiBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQgPSB3cmFwcGVkKCk7Ci0gICAgV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CisgICAgYXV0byYgY29udGV4dCA9IHdyYXBwZWQoKTsKKyAgICBhdXRv
KiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7Ci0g
ICAgYm9vbCBzdWNjZWVkID0gY29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMocHJvZ3JhbSwgc2hh
ZGVycyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVj
KTsKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIH0KLSAgICBpZiAoIXN1Y2NlZWQpCisg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKICAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCkBA
IC01MTYsNyArNTA1LDYgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICBSZWZQdHI8Rmxv
YXQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1
ZSgpKTsKICAgICAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAod2ViR0xBcnJh
eSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKQEAg
LTU0NSw3ICs1MzMsNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1
bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUs
IGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogICAgIApAQCAtNTgw
LDcgKzU2Nyw2IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rp
b25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAKLSAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTU5OCw3ICs1ODQsNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgVwogICAgIAogICAgIFJlZlB0cjxJbnQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJl
ZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIAotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIGlmICh3ZWJHTEFycmF5KSB7CiAgICAgICAgIHN3aXRjaCAo
ZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgpAQCAtNjE3LDcgKzYwMiw2IEBAIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAgICAgCkBAIC02NDMsNyArNjI3LDYgQEAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUsIFcKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIHNldERPTUV4
Y2VwdGlvbigmc3RhdGUsIGVjKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApAQCAt
Njc3LDggKzY2MCw2IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBz
ZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogICAgIH0KICAgICAKQEAgLTY5OCw4ICs2NzksNiBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3Rh
dAogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBlODgyYWYwMTllYzll
ZmQwNTZjZWY3NTJhMzI0MDQ4MDE2NjgwM2M1Li42NzIxNTk0OTQ1MjgwMWE5NzU3NmRiMTU4MzZm
N2M3OWMyZDQ4M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC03MTcs
MTAgKzcxNyw5IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJiBjaGFuZ2UpCiAKIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVz
KENvbnRhaW5lck5vZGUmIGNsb25lKQogewotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7Ci0gICAgZm9yIChO
b2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7Ci0gICAgICAgIFJlZjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5j
bG9uZU5vZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldp
dGhUZW1wbGF0ZUNvbnRlbnQpOworICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGF1dG8gY2xv
bmVkQ2hpbGQgPSBjaGlsZC0+Y2xvbmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25p
bmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50KTsKICAgICAgICAgaWYgKCFjbG9u
ZS5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZCkuaGFzRXhjZXB0aW9uKCkgJiYgaXM8Q29udGFpbmVy
Tm9kZT4oKmNoaWxkKSkKICAgICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpjaGls
ZCkuY2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdl
dCgpKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0OWUzNGJlNzdiNDUzN2ZkNTA2
MGY0NzcyOWJlNDlkYTUwZjRiYWFiLi4xMjljYmI1ZGJhMWQxODY2OWZjN2Y4MmVkZTkxYWU0NTMx
NDMxMmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTk3LDggKzE5Nyw2IEBAIGNsYXNzIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKIAogY2xhc3MgRm9udEZhY2VTZXQ7CiAKLXR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KICNpZiBQTEFURk9STShJT1MpCiBjbGFzcyBEZXZpY2VN
b3Rpb25DbGllbnQ7CiBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwpAQCAtODg2LDggKzg4
NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkTmFtZShjb25zdCBTdHJpbmcm
KTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWtzIGEgcXVhbGlmaWVkIG5hbWUgaW50byBh
IHByZWZpeCBhbmQgYSBsb2NhbCBuYW1lLgotICAgIC8vIEl0IGFsc28gZG9lcyBhIHZhbGlkaXR5
IGNoZWNrLCBhbmQgcmV0dXJucyBmYWxzZSBpZiB0aGUgcXVhbGlmaWVkIG5hbWUKLSAgICAvLyBp
cyBpbnZhbGlkLiBJdCBhbHNvIHNldHMgRXhjZXB0aW9uQ29kZSB3aGVuIG5hbWUgaXMgaW52YWxp
ZC4KKyAgICAvLyBJdCBhbHNvIGRvZXMgYSB2YWxpZGl0eSBjaGVjaywgYW5kIHJldHVybnMgYW4g
ZXJyb3IgaWYgdGhlIHF1YWxpZmllZCBuYW1lIGlzIGludmFsaWQuCiAgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPHN0ZDo6cGFpcjxBdG9taWNTdHJpbmcsIEF0b21pY1N0cmluZz4+IHBhcnNlUXVhbGlm
aWVkTmFtZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUpOwogICAgIHN0YXRpYyBFeGNlcHRp
b25PcjxRdWFsaWZpZWROYW1lPiBwYXJzZVF1YWxpZmllZE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5oCmluZGV4IDMxMGFjODY5NTkxZWIzOTAzYjJhNmM3ZGVjZTFhNGJjY2QzNjlh
MTMuLjcyNzBmMmRmODRlODI3MjYzMDg1MjE5N2Q0M2E4ODlkZjc0NjVmZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaApAQCAtMzEsOCArMzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCiAgICAgY2xhc3MgVHJlZVdhbGtlciA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFRyZWVXYWxrZXI+LCBw
dWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVm
PFRyZWVXYWxrZXI+IGNyZWF0ZShOb2RlJiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaApp
bmRleCAzZTg1NTQzMzFlZGE0MTc2MjgwNTE1YjJkZjFmNmM0NmMwNzhhNzVmLi4yNzBmZTRkMWNj
NGNmNTZjODMwODMwZjI5ZWExMmQ2NmFlNDY2NmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgK
QEAgLTQzLDggKzQzLDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFz
cyBSYW5nZTsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQogZW51bSBFQ2hpbGRyZW5P
bmx5IHsgSW5jbHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsg
RG9Ob3RSZXNvbHZlVVJMcywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsK
IGVudW0gRUZyYWdtZW50U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24s
IFhNTEZyYWdtZW50U2VyaWFsaXphdGlvbiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmgKaW5kZXgg
ODJiYWEwOTg1OTEzNDJiYWE2YTM4NDhmNTc5YzViYTZmOWU1MGEwZC4uNmI4Njc2ODA4NDFkYTJk
MTk4ODFlYTVlYzA5YzRhODM5NTlkNjMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5oCkBAIC0z
NCw4ICszNCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBpbnQgRXhjZXB0
aW9uQ29kZTsKLQogY2xhc3MgSW1hZ2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2VEYXRh
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxJbWFnZURhdGE+PiBjcmVh
dGUodW5zaWduZWQgc3csIHVuc2lnbmVkIHNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4
IGVkNzkyYzhmNDAyOWVlYWNiNjE2YzgxYzI3ZWUzY2VlZWNiNzIyZTQuLjZkZWM3MzExN2UyZTll
NDk5ZjczMjk5ZmFkNjY0YWY0MWE4YmViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAt
NjUsOCArNjUsNiBAQCBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiAKIHN0cnVj
dCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlOwogCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwot
CiAvLyBBbiBJbnB1dFR5cGUgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHR5cGUtc3BlY2lmaWMgcGFy
dCBvZiBhbiBIVE1MSW5wdXRFbGVtZW50LgogLy8gRG8gbm90IGV4cG9zZSBpbnN0YW5jZXMgb2Yg
SW5wdXRUeXBlIGFuZCBjbGFzc2VzIGRlcml2ZWQgZnJvbSBpdCB0byBjbGFzc2VzCiAvLyBvdGhl
ciB0aGFuIEhUTUxJbnB1dEVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGVkOWQ0MDE3ZjRjODk5MzU5
ZWM3OTc5YmFkM2MwODYwMDU0ZDk3M2YuLjQ1YTEzYjFjN2RmNzJjNzk5NWViMzFmYTk0N2RlYjY3
YTVjNTM5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC01NSw4ICs1NSw2IEBAIGNsYXNzIEhUTUxWaWRlb0Vs
ZW1lbnQ7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBUZXh0TWV0cmljczsKIAotdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKLQogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGZpbmFs
IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQsIHB1YmxpYyBDYW52YXNQYXRoIHsKIHB1
YmxpYzoKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQmLCBi
b29sIHVzZXNDU1NDb21wYXRpYmlsaXR5UGFyc2VNb2RlLCBib29sIHVzZXNEYXNoYm9hcmRDb21w
YXRpYmlsaXR5TW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnU2hhZGVycy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1NoYWRlcnMuaAppbmRleCBkOTcyYmY4NGQyZGYyNmIwZWI2YmIzOTQ5NzcxMDYxNWRjNTNlN2Q3
Li5kZTRiZjAxMzU1MDlmMDEwYTI2MTcxZmEzZWQwNzM0YWE2NDMwZDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKQEAgLTMxLDggKzMxLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFNoYWRlcjsKIAotdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKLQogY2xhc3MgV2ViR0xEZWJ1Z1NoYWRlcnMgZmluYWwgOiBwdWJs
aWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdMRGVidWdTaGFk
ZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCAzNGRkNTA5NzFlYTg3ZjI0NzM2MjFkYmYwYTY3MWZiMDI0NjRlYjJjLi5mNGI5YmZk
ZWYwMmM1OWRhNTkyNzIzMmRjZDZmMTdmMjljNTE3YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6
c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sCiB7CiAg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNv
bnRleHQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb25Db2RlIHsgSU5WQUxJRF9BQ0NFU1NfRVJS
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAg
ICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRleHQsIFdURk1vdmUoYWN0aW9uKSwgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CiB9CiAKQEAgLTE2NDksNyAr
MTY0OSw3IEBAIEV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRJbnRlcnZhbChzdGQ6OnVu
aXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sCiB7CiAgICAgYXV0byogY29udGV4dCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb25Db2RlIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAgICByZXR1cm4gRE9NVGltZXI6
Omluc3RhbGwoKmNvbnRleHQsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyh0aW1lb3V0KSwgZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXpl
ZERPTVJlc3VsdC5oCmluZGV4IGNhYzFkMTk4MzQxMjkyZWQyOTMwMjgyYTI3MTE5ZTIzZTgyZmJi
OGEuLmIwMGIxNWI1YWUzNTg0OWM1ZDc4YzFjNzBhYjQ5Y2JkNmJlYWJjYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi10eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwordXNpbmcgRXhjZXB0aW9uQ29kZSA9IGludDsKIAogLy8gQWRk
IG5ldyBtZW1vaXplZCBjdHlwZXMgaGVyZS4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBlbnVt
IHZhbHVlLAogLy8gd2hpY2ggY2Fubm90IGNvbmZsaWN0IHdpdGggYnVpbHQtaW4gcHJpbWl0aXZl
IHR5cGVzLiBUaGUgc2Vjb25kIGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMzFiMjgxNzdmODhkY2IxNWY0
YWQ3ODdiMjExYzgyMzFjYThiZWZjOC4uOTk5NjgxODI4ZGEzY2Y2NjcyZTYxMGEyNmUzMGQxZjM5
MmJlOWIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9j
dW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtOTksMjUgKzk5LDIzIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYXNOb1N0eWxlSW5mb3JtYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50KQogY2xhc3MgUGVu
ZGluZ0NhbGxiYWNrcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGVuZGluZ0NhbGxiYWNr
cyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFBlbmRpbmdDYWxsYmFj
a3MoKSB7IH0KLSAgICB+UGVuZGluZ0NhbGxiYWNrcygpIHsgfQorICAgIFBlbmRpbmdDYWxsYmFj
a3MoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIGFwcGVuZFN0YXJ0RWxlbWVudE5TQ2FsbGJhY2so
Y29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGFyKiB4bWxQcmVmaXgsIGNv
bnN0IHhtbENoYXIqIHhtbFVSSSwgaW50IG5iX25hbWVzcGFjZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqKiBuYW1lc3BhY2VzLCBpbnQgbmJf
YXR0cmlidXRlcywgaW50IG5iX2RlZmF1bHRlZCwgY29uc3QgeG1sQ2hhcioqIGF0dHJpYnV0ZXMp
CisgICAgdm9pZCBhcHBlbmRTdGFydEVsZW1lbnROU0NhbGxiYWNrKGNvbnN0IHhtbENoYXIqIHht
bExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhciogeG1sUHJlZml4LCBjb25zdCB4bWxDaGFyKiB4bWxV
UkksIGludCBudW1OYW1lc3BhY2VzLCBjb25zdCB4bWxDaGFyKiogbmFtZXNwYWNlcywgaW50IG51
bUF0dHJpYnV0ZXMsIGludCBudW1EZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBhdHRyaWJ1dGVz
KQogICAgIHsKICAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6bWFrZV91bmlxdWU8UGVuZGlu
Z1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2s+KCk7CiAKICAgICAgICAgY2FsbGJhY2stPnhtbExvY2Fs
TmFtZSA9IHhtbFN0cmR1cCh4bWxMb2NhbE5hbWUpOwogICAgICAgICBjYWxsYmFjay0+eG1sUHJl
Zml4ID0geG1sU3RyZHVwKHhtbFByZWZpeCk7CiAgICAgICAgIGNhbGxiYWNrLT54bWxVUkkgPSB4
bWxTdHJkdXAoeG1sVVJJKTsKLSAgICAgICAgY2FsbGJhY2stPm5iX25hbWVzcGFjZXMgPSBuYl9u
YW1lc3BhY2VzOwotICAgICAgICBjYWxsYmFjay0+bmFtZXNwYWNlcyA9IHN0YXRpY19jYXN0PHht
bENoYXIqKj4oeG1sTWFsbG9jKHNpemVvZih4bWxDaGFyKikgKiBuYl9uYW1lc3BhY2VzICogMikp
OwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX25hbWVzcGFjZXMgKiAyIDsgaSsrKQor
ICAgICAgICBjYWxsYmFjay0+bnVtTmFtZXNwYWNlcyA9IG51bU5hbWVzcGFjZXM7CisgICAgICAg
IGNhbGxiYWNrLT5uYW1lc3BhY2VzID0gc3RhdGljX2Nhc3Q8eG1sQ2hhcioqPih4bWxNYWxsb2Mo
c2l6ZW9mKHhtbENoYXIqKSAqIG51bU5hbWVzcGFjZXMgKiAyKSk7CisgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbnVtTmFtZXNwYWNlcyAqIDIgOyBpKyspCiAgICAgICAgICAgICBjYWxsYmFj
ay0+bmFtZXNwYWNlc1tpXSA9IHhtbFN0cmR1cChuYW1lc3BhY2VzW2ldKTsKLSAgICAgICAgY2Fs
bGJhY2stPm5iX2F0dHJpYnV0ZXMgPSBuYl9hdHRyaWJ1dGVzOwotICAgICAgICBjYWxsYmFjay0+
bmJfZGVmYXVsdGVkID0gbmJfZGVmYXVsdGVkOwotICAgICAgICBjYWxsYmFjay0+YXR0cmlidXRl
cyA9IHN0YXRpY19jYXN0PHhtbENoYXIqKj4oeG1sTWFsbG9jKHNpemVvZih4bWxDaGFyKikgKiBu
Yl9hdHRyaWJ1dGVzICogNSkpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2F0dHJp
YnV0ZXM7IGkrKykgeworICAgICAgICBjYWxsYmFjay0+bnVtQXR0cmlidXRlcyA9IG51bUF0dHJp
YnV0ZXM7CisgICAgICAgIGNhbGxiYWNrLT5udW1EZWZhdWx0ZWQgPSBudW1EZWZhdWx0ZWQ7Cisg
ICAgICAgIGNhbGxiYWNrLT5hdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8eG1sQ2hhcioqPih4bWxN
YWxsb2Moc2l6ZW9mKHhtbENoYXIqKSAqIG51bUF0dHJpYnV0ZXMgKiA1KSk7CisgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbnVtQXR0cmlidXRlczsgaSsrKSB7CiAgICAgICAgICAgICAvLyBF
YWNoIGF0dHJpYnV0ZSBoYXMgNSBlbGVtZW50cyBpbiB0aGUgYXJyYXk6CiAgICAgICAgICAgICAv
LyBuYW1lLCBwcmVmaXgsIHVyaSwgdmFsdWUgYW5kIGFuIGVuZCBwb2ludGVyLgogCkBAIC0yMjAs
MjkgKzIxOCwyOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZSh4bWxMb2NhbE5hbWUp
OwogICAgICAgICAgICAgeG1sRnJlZSh4bWxQcmVmaXgpOwogICAgICAgICAgICAgeG1sRnJlZSh4
bWxVUkkpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYl9uYW1lc3BhY2VzICog
MjsgaSsrKQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1OYW1lc3BhY2VzICog
MjsgaSsrKQogICAgICAgICAgICAgICAgIHhtbEZyZWUobmFtZXNwYWNlc1tpXSk7CiAgICAgICAg
ICAgICB4bWxGcmVlKG5hbWVzcGFjZXMpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBuYl9hdHRyaWJ1dGVzOyBpKyspCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51
bUF0dHJpYnV0ZXM7IGkrKykgewogICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwg
NDsgaisrKQogICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGF0dHJpYnV0ZXNbaSAqIDUgKyBq
XSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB4bWxGcmVlKGF0dHJpYnV0ZXMpOwogICAg
ICAgICB9CiAKICAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92
ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIHBhcnNlci0+c3RhcnRFbGVtZW50TnMoeG1s
TG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmJfbmFtZXNwYWNlcywgY29uc3RfY2FzdDxjb25zdCB4bWxDaGFyKio+KG5h
bWVzcGFjZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRy
aWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hhcioqPihhdHRyaWJ1
dGVzKSk7CisgICAgICAgICAgICBwYXJzZXItPnN0YXJ0RWxlbWVudE5zKHhtbExvY2FsTmFtZSwg
eG1sUHJlZml4LCB4bWxVUkksIG51bU5hbWVzcGFjZXMsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hh
cioqPihuYW1lc3BhY2VzKSwgbnVtQXR0cmlidXRlcywgbnVtRGVmYXVsdGVkLCBjb25zdF9jYXN0
PGNvbnN0IHhtbENoYXIqKj4oYXR0cmlidXRlcykpOwogICAgICAgICB9CiAKICAgICAgICAgeG1s
Q2hhciogeG1sTG9jYWxOYW1lOwogICAgICAgICB4bWxDaGFyKiB4bWxQcmVmaXg7CiAgICAgICAg
IHhtbENoYXIqIHhtbFVSSTsKLSAgICAgICAgaW50IG5iX25hbWVzcGFjZXM7CisgICAgICAgIGlu
dCBudW1OYW1lc3BhY2VzOwogICAgICAgICB4bWxDaGFyKiogbmFtZXNwYWNlczsKLSAgICAgICAg
aW50IG5iX2F0dHJpYnV0ZXM7Ci0gICAgICAgIGludCBuYl9kZWZhdWx0ZWQ7CisgICAgICAgIGlu
dCBudW1BdHRyaWJ1dGVzOworICAgICAgICBpbnQgbnVtRGVmYXVsdGVkOwogICAgICAgICB4bWxD
aGFyKiogYXR0cmlidXRlczsKICAgICB9OwogCkBAIC03MzAsMjMgKzcyNywyMiBAQCBzdHJ1Y3Qg
X3htbFNBWDJOYW1lc3BhY2UgewogfTsKIHR5cGVkZWYgc3RydWN0IF94bWxTQVgyTmFtZXNwYWNl
IHhtbFNBWDJOYW1lc3BhY2U7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVOYW1lc3BhY2VB
dHRyaWJ1dGVzKFZlY3RvcjxBdHRyaWJ1dGU+JiBwcmVmaXhlZEF0dHJpYnV0ZXMsIGNvbnN0IHht
bENoYXIqKiBsaWJ4bWxOYW1lc3BhY2VzLCBpbnQgbmJfbmFtZXNwYWNlcywgRXhjZXB0aW9uQ29k
ZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgaGFuZGxlTmFtZXNwYWNlQXR0cmlidXRlcyhWZWN0
b3I8QXR0cmlidXRlPiYgcHJlZml4ZWRBdHRyaWJ1dGVzLCBjb25zdCB4bWxDaGFyKiogbGlieG1s
TmFtZXNwYWNlcywgaW50IG51bU5hbWVzcGFjZXMpCiB7CiAgICAgeG1sU0FYMk5hbWVzcGFjZSog
bmFtZXNwYWNlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eG1sU0FYMk5hbWVzcGFjZSo+KGxpYnhtbE5h
bWVzcGFjZXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJfbmFtZXNwYWNlczsgaSsrKSB7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1OYW1lc3BhY2VzOyBpKyspIHsKICAgICAgICAg
QXRvbWljU3RyaW5nIG5hbWVzcGFjZVFOYW1lID0geG1sbnNBdG9tOwogICAgICAgICBBdG9taWNT
dHJpbmcgbmFtZXNwYWNlVVJJID0gdG9BdG9taWNTdHJpbmcobmFtZXNwYWNlc1tpXS51cmkpOwog
ICAgICAgICBpZiAobmFtZXNwYWNlc1tpXS5wcmVmaXgpCiAgICAgICAgICAgICBuYW1lc3BhY2VR
TmFtZSA9ICJ4bWxuczoiICsgdG9TdHJpbmcobmFtZXNwYWNlc1tpXS5wcmVmaXgpOwogCiAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGVOYW1lKFhNTE5TTmFtZXM6
OnhtbG5zTmFtZXNwYWNlVVJJLCBuYW1lc3BhY2VRTmFtZSk7Ci0gICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIGVjID0gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKS5jb2RlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICBwcmVmaXhlZEF0dHJpYnV0ZXMuYXBwZW5kKEF0dHJpYnV0ZShyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCksIG5hbWVzcGFjZVVSSSkpOwogICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogc3RydWN0IF94bWxTQVgyQXR0cmlidXRlcyB7CkBAIC03NTgsMTAgKzc1NCwxMCBAQCBzdHJ1
Y3QgX3htbFNBWDJBdHRyaWJ1dGVzIHsKIH07CiB0eXBlZGVmIHN0cnVjdCBfeG1sU0FYMkF0dHJp
YnV0ZXMgeG1sU0FYMkF0dHJpYnV0ZXM7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBoYW5kbGVFbGVt
ZW50QXR0cmlidXRlcyhWZWN0b3I8QXR0cmlidXRlPiYgcHJlZml4ZWRBdHRyaWJ1dGVzLCBjb25z
dCB4bWxDaGFyKiogbGlieG1sQXR0cmlidXRlcywgaW50IG5iX2F0dHJpYnV0ZXMsIEV4Y2VwdGlv
bkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGhhbmRsZUVsZW1lbnRBdHRyaWJ1dGVzKFZl
Y3RvcjxBdHRyaWJ1dGU+JiBwcmVmaXhlZEF0dHJpYnV0ZXMsIGNvbnN0IHhtbENoYXIqKiBsaWJ4
bWxBdHRyaWJ1dGVzLCBpbnQgbnVtQXR0cmlidXRlcykKIHsKICAgICB4bWxTQVgyQXR0cmlidXRl
cyogYXR0cmlidXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eG1sU0FYMkF0dHJpYnV0ZXMqPihsaWJ4
bWxBdHRyaWJ1dGVzKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2F0dHJpYnV0ZXM7IGkr
KykgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXR0cmlidXRlczsgaSsrKSB7CiAgICAg
ICAgIGludCB2YWx1ZUxlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oYXR0cmlidXRlc1tpXS5lbmQg
LSBhdHRyaWJ1dGVzW2ldLnZhbHVlKTsKICAgICAgICAgQXRvbWljU3RyaW5nIGF0dHJWYWx1ZSA9
IHRvQXRvbWljU3RyaW5nKGF0dHJpYnV0ZXNbaV0udmFsdWUsIHZhbHVlTGVuZ3RoKTsKICAgICAg
ICAgU3RyaW5nIGF0dHJQcmVmaXggPSB0b1N0cmluZyhhdHRyaWJ1dGVzW2ldLnByZWZpeCk7CkBA
IC03NjksMTMgKzc2NSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaGFuZGxlRWxlbWVudEF0dHJp
YnV0ZXMoVmVjdG9yPEF0dHJpYnV0ZT4mIHByZWZpeGVkQXR0cmlidXRlcwogICAgICAgICBBdG9t
aWNTdHJpbmcgYXR0clFOYW1lID0gYXR0clByZWZpeC5pc0VtcHR5KCkgPyB0b0F0b21pY1N0cmlu
ZyhhdHRyaWJ1dGVzW2ldLmxvY2FsbmFtZSkgOiBhdHRyUHJlZml4ICsgIjoiICsgdG9TdHJpbmco
YXR0cmlidXRlc1tpXS5sb2NhbG5hbWUpOwogCiAgICAgICAgIGF1dG8gcmVzdWx0ID0gRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGVOYW1lKGF0dHJVUkksIGF0dHJRTmFtZSk7Ci0gICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIGVjID0gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKS5jb2RlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICBwcmVmaXhlZEF0dHJpYnV0ZXMuYXBwZW5kKEF0dHJpYnV0ZShyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCksIGF0dHJWYWx1ZSkpOwogICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogLy8gVGhpcyBpcyBhIGhhY2sgYXJvdW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MDI5NjAKQEAgLTc5MSwxNSArNzg2LDEzIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBoYWNrQXJvdW5kTGliWE1MRW50aXR5UGFyc2luZ0J1ZygpCiAjZW5kaWYKIH0KIAot
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1s
TG9jYWxOYW1lLCBjb25zdCB4bWxDaGFyKiB4bWxQcmVmaXgsIGNvbnN0IHhtbENoYXIqIHhtbFVS
SSwgaW50IG5iX25hbWVzcGFjZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgeG1sQ2hhcioqIGxpYnhtbE5hbWVzcGFjZXMsIGludCBuYl9hdHRyaWJ1dGVzLCBpbnQg
bmJfZGVmYXVsdGVkLCBjb25zdCB4bWxDaGFyKiogbGlieG1sQXR0cmlidXRlcykKK3ZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFt
ZSwgY29uc3QgeG1sQ2hhciogeG1sUHJlZml4LCBjb25zdCB4bWxDaGFyKiB4bWxVUkksIGludCBu
dW1OYW1lc3BhY2VzLCBjb25zdCB4bWxDaGFyKiogbGlieG1sTmFtZXNwYWNlcywgaW50IG51bUF0
dHJpYnV0ZXMsIGludCBudW1EZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxBdHRyaWJ1
dGVzKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KG1fcGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kU3Rh
cnRFbGVtZW50TlNDYWxsYmFjayh4bWxMb2NhbE5hbWUsIHhtbFByZWZpeCwgeG1sVVJJLCBuYl9u
YW1lc3BhY2VzLCBsaWJ4bWxOYW1lc3BhY2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfYXR0cmlidXRlcywgbmJfZGVmYXVsdGVk
LCBsaWJ4bWxBdHRyaWJ1dGVzKTsKKyAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRT
dGFydEVsZW1lbnROU0NhbGxiYWNrKHhtbExvY2FsTmFtZSwgeG1sUHJlZml4LCB4bWxVUkksIG51
bU5hbWVzcGFjZXMsIGxpYnhtbE5hbWVzcGFjZXMsIG51bUF0dHJpYnV0ZXMsIG51bURlZmF1bHRl
ZCwgbGlieG1sQXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgyOSwx
NyArODIyLDE1IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0
IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAgICAgYXV0byBuZXdFbGVtZW50
ID0gbV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHFOYW1lLCB0cnVlKTsK
IAogICAgIFZlY3RvcjxBdHRyaWJ1dGU+IHByZWZpeGVkQXR0cmlidXRlczsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBoYW5kbGVOYW1lc3BhY2VBdHRyaWJ1dGVzKHByZWZpeGVkQXR0
cmlidXRlcywgbGlieG1sTmFtZXNwYWNlcywgbmJfbmFtZXNwYWNlcywgZWMpOwotICAgIGlmIChl
YykgeworICAgIGlmICghaGFuZGxlTmFtZXNwYWNlQXR0cmlidXRlcyhwcmVmaXhlZEF0dHJpYnV0
ZXMsIGxpYnhtbE5hbWVzcGFjZXMsIG51bU5hbWVzcGFjZXMpKSB7CiAgICAgICAgIHNldEF0dHJp
YnV0ZXMobmV3RWxlbWVudC5wdHIoKSwgcHJlZml4ZWRBdHRyaWJ1dGVzLCBwYXJzZXJDb250ZW50
UG9saWN5KCkpOwogICAgICAgICBzdG9wUGFyc2luZygpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaGFuZGxlRWxlbWVudEF0dHJpYnV0ZXMocHJlZml4ZWRBdHRyaWJ1dGVzLCBsaWJ4
bWxBdHRyaWJ1dGVzLCBuYl9hdHRyaWJ1dGVzLCBlYyk7CisgICAgYm9vbCBzdWNjZXNzID0gaGFu
ZGxlRWxlbWVudEF0dHJpYnV0ZXMocHJlZml4ZWRBdHRyaWJ1dGVzLCBsaWJ4bWxBdHRyaWJ1dGVz
LCBudW1BdHRyaWJ1dGVzKTsKICAgICBzZXRBdHRyaWJ1dGVzKG5ld0VsZW1lbnQucHRyKCksIHBy
ZWZpeGVkQXR0cmlidXRlcywgcGFyc2VyQ29udGVudFBvbGljeSgpKTsKLSAgICBpZiAoZWMpIHsK
KyAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgc3RvcFBhcnNpbmcoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTExMDcsMjEgKzEwOTgsMjAgQEAgc3RhdGljIGlubGluZSBYTUxEb2N1
bWVudFBhcnNlciogZ2V0UGFyc2VyKHZvaWQqIGNsb3N1cmUpCiBzdGF0aWMgaW5saW5lIGJvb2wg
aGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1Zyh2b2lkKiBjbG9zdXJlKQogewogI2lmIExJQlhNTF9W
RVJTSU9OID49IDIwNjI3Ci0gICAgVU5VU0VEX1BBUkFNKGNsb3N1cmUpOwotCiAgICAgLy8gVGhp
cyBidWcgaGFzIGJlZW4gZml4ZWQgaW4gbGlieG1sIDIuNi4yNy4KKyAgICBVTlVTRURfUEFSQU0o
Y2xvc3VyZSk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8eG1sUGFyc2VyQ3R4dFB0cj4oY2xvc3VyZSktPm5vZGU7CiAjZW5kaWYKIH0KIAotc3RhdGlj
IHZvaWQgc3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIq
IGxvY2FsbmFtZSwgY29uc3QgeG1sQ2hhciogcHJlZml4LCBjb25zdCB4bWxDaGFyKiB1cmksIGlu
dCBuYl9uYW1lc3BhY2VzLCBjb25zdCB4bWxDaGFyKiogbmFtZXNwYWNlcywgaW50IG5iX2F0dHJp
YnV0ZXMsIGludCBuYl9kZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxBdHRyaWJ1dGVz
KQorc3RhdGljIHZvaWQgc3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0
IHhtbENoYXIqIGxvY2FsbmFtZSwgY29uc3QgeG1sQ2hhciogcHJlZml4LCBjb25zdCB4bWxDaGFy
KiB1cmksIGludCBudW1OYW1lc3BhY2VzLCBjb25zdCB4bWxDaGFyKiogbmFtZXNwYWNlcywgaW50
IG51bUF0dHJpYnV0ZXMsIGludCBudW1EZWZhdWx0ZWQsIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxB
dHRyaWJ1dGVzKQogewogICAgIGlmIChoYWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKGNsb3N1cmUp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnN0YXJ0RWxlbWVu
dE5zKGxvY2FsbmFtZSwgcHJlZml4LCB1cmksIG5iX25hbWVzcGFjZXMsIG5hbWVzcGFjZXMsIG5i
X2F0dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCwgbGlieG1sQXR0cmlidXRlcyk7CisgICAgZ2V0UGFy
c2VyKGNsb3N1cmUpLT5zdGFydEVsZW1lbnROcyhsb2NhbG5hbWUsIHByZWZpeCwgdXJpLCBudW1O
YW1lc3BhY2VzLCBuYW1lc3BhY2VzLCBudW1BdHRyaWJ1dGVzLCBudW1EZWZhdWx0ZWQsIGxpYnht
bEF0dHJpYnV0ZXMpOwogfQogCiBzdGF0aWMgdm9pZCBlbmRFbGVtZW50TnNIYW5kbGVyKHZvaWQq
IGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqLCBjb25zdCB4bWxDaGFyKiwgY29uc3QgeG1sQ2hhciop
CkBAIC0xNTE4LDkgKzE1MDgsNyBAQCBzdHJ1Y3QgQXR0cmlidXRlUGFyc2VTdGF0ZSB7CiAgICAg
Ym9vbCBnb3RBdHRyaWJ1dGVzOwogfTsKIAotc3RhdGljIHZvaWQgYXR0cmlidXRlc1N0YXJ0RWxl
bWVudE5zSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUs
IGNvbnN0IHhtbENoYXIqIC8qeG1sUHJlZml4Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqIC8qeG1sVVJJKi8sIGludCAvKm5iX25h
bWVzcGFjZXMqLywgY29uc3QgeG1sQ2hhcioqIC8qbmFtZXNwYWNlcyovLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJfYXR0cmlidXRlcywgaW50IC8q
bmJfZGVmYXVsdGVkKi8sIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxBdHRyaWJ1dGVzKQorc3RhdGlj
IHZvaWQgYXR0cmlidXRlc1N0YXJ0RWxlbWVudE5zSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25z
dCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIqIC8qeG1sUHJlZml4Ki8sIGNv
bnN0IHhtbENoYXIqIC8qeG1sVVJJKi8sIGludCAvKm51bU5hbWVzcGFjZXMqLywgY29uc3QgeG1s
Q2hhcioqIC8qbmFtZXNwYWNlcyovLCBpbnQgbnVtQXR0cmlidXRlcywgaW50IC8qbnVtRGVmYXVs
dGVkKi8sIGNvbnN0IHhtbENoYXIqKiBsaWJ4bWxBdHRyaWJ1dGVzKQogewogICAgIGlmIChzdHJj
bXAocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oeG1sTG9jYWxOYW1lKSwgImF0dHJzIikg
IT0gMCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTUzMSw3ICsxNTE5LDcgQEAgc3RhdGljIHZvaWQg
YXR0cmlidXRlc1N0YXJ0RWxlbWVudE5zSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxD
aGFyKiB4bWxMb2MKICAgICBzdGF0ZS0+Z290QXR0cmlidXRlcyA9IHRydWU7CiAKICAgICB4bWxT
QVgyQXR0cmlidXRlcyogYXR0cmlidXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eG1sU0FYMkF0dHJp
YnV0ZXMqPihsaWJ4bWxBdHRyaWJ1dGVzKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX2F0
dHJpYnV0ZXM7IGkrKykgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXR0cmlidXRlczsg
aSsrKSB7CiAgICAgICAgIFN0cmluZyBhdHRyTG9jYWxOYW1lID0gdG9TdHJpbmcoYXR0cmlidXRl
c1tpXS5sb2NhbG5hbWUpOwogICAgICAgICBpbnQgdmFsdWVMZW5ndGggPSAoaW50KSAoYXR0cmli
dXRlc1tpXS5lbmQgLSBhdHRyaWJ1dGVzW2ldLnZhbHVlKTsKICAgICAgICAgU3RyaW5nIGF0dHJW
YWx1ZSA9IHRvU3RyaW5nKGF0dHJpYnV0ZXNbaV0udmFsdWUsIHZhbHVlTGVuZ3RoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01ET01JbXBsZW1lbnRhdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9ET01ET01JbXBsZW1lbnRhdGlvbi5tbQppbmRleCBhZjBlNzE0
NjYxMjdmYzNiMWY4MzI4NzNhNDY5MDEyMGFmNjI0NWRhLi40N2EwNjE5NDBkYjMxOGJiZTBlNmQ5
MjdhOGFmNDlkNmNjOTliZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9N
RE9NSW1wbGVtZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTURPTUlt
cGxlbWVudGF0aW9uLm1tCkBAIC02NSwyMyArNjUsMTMgQEAgLSAoQk9PTCloYXNGZWF0dXJlOihO
U1N0cmluZyAqKWZlYXR1cmUgdmVyc2lvbjooTlNTdHJpbmcgKil2ZXJzaW9uCiAtIChET01Eb2N1
bWVudFR5cGUgKiljcmVhdGVEb2N1bWVudFR5cGU6KE5TU3RyaW5nICopcXVhbGlmaWVkTmFtZSBw
dWJsaWNJZDooTlNTdHJpbmcgKilwdWJsaWNJZCBzeXN0ZW1JZDooTlNTdHJpbmcgKilzeXN0ZW1J
ZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBhdXRv
IHJlc3VsdCA9IHVud3JhcCgqc2VsZikuY3JlYXRlRG9jdW1lbnRUeXBlKHF1YWxpZmllZE5hbWUs
IHB1YmxpY0lkLCBzeXN0ZW1JZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewot
ICAgICAgICByYWlzZURPTUV4Y2VwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUo
KSk7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotICAgIHJldHVybiBraXQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKKyAgICByZXR1cm4ga2l0KHJhaXNlT25ET01FcnJv
cih1bndyYXAoKnNlbGYpLmNyZWF0ZURvY3VtZW50VHlwZShxdWFsaWZpZWROYW1lLCBwdWJsaWNJ
ZCwgc3lzdGVtSWQpKS5wdHIoKSk7CiB9CiAKIC0gKERPTURvY3VtZW50ICopY3JlYXRlRG9jdW1l
bnQ6KE5TU3RyaW5nICopbmFtZXNwYWNlVVJJIHF1YWxpZmllZE5hbWU6KE5TU3RyaW5nICopcXVh
bGlmaWVkTmFtZSBkb2N0eXBlOihET01Eb2N1bWVudFR5cGUgKilkb2N0eXBlCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGF1dG8gcmVzdWx0ID0gdW53
cmFwKCpzZWxmKS5jcmVhdGVEb2N1bWVudChuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIGNv
cmUoZG9jdHlwZSkpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAg
cmFpc2VET01FeGNlcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOwotICAg
ICAgICByZXR1cm4gbmlsOwotICAgIH0KLSAgICByZXR1cm4ga2l0KHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKS5wdHIoKSk7CisgICAgcmV0dXJuIGtpdChyYWlzZU9uRE9NRXJyb3IodW53cmFw
KCpzZWxmKS5jcmVhdGVEb2N1bWVudChuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIGNvcmUo
ZG9jdHlwZSkpKS5wdHIoKSk7CiB9CiAKIC0gKERPTUNTU1N0eWxlU2hlZXQgKiljcmVhdGVDU1NT
dHlsZVNoZWV0OihOU1N0cmluZyAqKXRpdGxlIG1lZGlhOihOU1N0cmluZyAqKW1lZGlhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NRG9jdW1lbnQubW0KaW5kZXggOTI2Nzc3ZTUxZGJhOTg5Y2RkYTRhYjYy
MTYzZjk0OWEyNTVhODlhOS4uNjc0Y2JkMjRkZThmNjMyNTQzZGY3NmYzZDg3N2RlYjM4NzFjMzNj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQpAQCAtNDg3LDcgKzQ4Nyw3IEBA
IC0gKERPTUF0dHIgKiljcmVhdGVBdHRyaWJ1dGU6KE5TU3RyaW5nICopbmFtZQogLSAoRE9NRW50
aXR5UmVmZXJlbmNlICopY3JlYXRlRW50aXR5UmVmZXJlbmNlOihOU1N0cmluZyAqKW5hbWUKIHsK
ICAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgcmFpc2VET01FeGNlcHRpb24oV2ViQ29yZTo6
Tk9UX1NVUFBPUlRFRF9FUlIpOworICAgIHJhaXNlTm90U3VwcG9ydGVkRXJyb3JFeGNlcHRpb24o
KTsKIH0KIAogLSAoRE9NTm9kZUxpc3QgKilnZXRFbGVtZW50c0J5VGFnTmFtZTooTlNTdHJpbmcg
Kil0YWduYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxPcHRpb25zQ29s
bGVjdGlvbi5tbQppbmRleCAwNmRiNjZhMjVjOWM4ODBhYzM1ZTBhM2E2MmRhZjdiOTE0NTdjNzIx
Li41MDNmZjYyYzZmNjkxM2NjOTUwOGRlZDg4YzBjMGI2MzUwMTI3YjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0KQEAgLTkwLDkg
KzkwLDcgQEAgLSAodm9pZClhZGQ6KERPTUhUTUxPcHRpb25FbGVtZW50ICopb3B0aW9uIGluZGV4
Oih1bnNpZ25lZClpbmRleAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsK
LSAgICBhdXRvIGV4Y2VwdGlvbiA9IElNUEwtPmFkZChjb3JlKG9wdGlvbiksIE9wdGlvbmFsPFdl
YkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbjo6SFRNTEVsZW1lbnRPckludD4oc3RhdGljX2Nh
c3Q8aW50PihpbmRleCkpKTsKLSAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQotICAg
ICAgICByYWlzZU9uRE9NRXJyb3IoZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkp
OworICAgIHJhaXNlT25ET01FcnJvcihJTVBMLT5hZGQoY29yZShvcHRpb24pLCBPcHRpb25hbDxX
ZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OkhUTUxFbGVtZW50T3JJbnQ+IHsgc3RhdGlj
X2Nhc3Q8aW50PihpbmRleCkgfSkpOwogfQogCiAtICh2b2lkKXJlbW92ZToodW5zaWduZWQpaW5k
ZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQppbmRl
eCBiNmVjYTk2M2Q3ZDQxOTcyZDc0YzRlNTcyN2Q3ZjdjMjY2NjIyYWE3Li5hMDQyM2Q0MjI3Yzdi
Mjk4YzM5ZGQ3Nzg5ZjAxY2Q4MmYwYWE2NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9N
L0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tCkBAIC0xOTAsMTMgKzE5MCw5IEBAIC0gKHZvaWQpYWRk
OihET01IVE1MRWxlbWVudCAqKWVsZW1lbnQgYmVmb3JlOihET01IVE1MRWxlbWVudCAqKWJlZm9y
ZQogICAgICAgICB2YXJpYW50RWxlbWVudCA9ICZkb3duY2FzdDxXZWJDb3JlOjpIVE1MT3B0aW9u
RWxlbWVudD4oY29yZUVsZW1lbnQpOwogICAgIGVsc2UgaWYgKGlzPFdlYkNvcmU6OkhUTUxPcHRH
cm91cEVsZW1lbnQ+KGNvcmVFbGVtZW50KSkKICAgICAgICAgdmFyaWFudEVsZW1lbnQgPSAmZG93
bmNhc3Q8V2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudD4oY29yZUVsZW1lbnQpOwotICAgIGVs
c2UgeworICAgIGVsc2UKICAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICBhdXRvIGV4Y2VwdGlvbiA9IElNUEwtPmFkZChXVEZNb3Zl
KHZhcmlhbnRFbGVtZW50KSwgV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxFbGVtZW50
T3JJbnQoY29yZShiZWZvcmUpKSk7Ci0gICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkK
LSAgICAgICAgcmFpc2VPbkRPTUVycm9yKGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkuY29k
ZSgpKTsKKyAgICByYWlzZU9uRE9NRXJyb3IoSU1QTC0+YWRkKFdURk1vdmUodmFyaWFudEVsZW1l
bnQpLCBXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6SFRNTEVsZW1lbnRPckludChjb3JlKGJl
Zm9yZSkpKSk7CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOihpbnQpaW5kZXgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9FeGNlcHRpb25IYW5kbGVycy5oIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmgKaW5kZXggMWIwYjExNzQ1NjdiMWVlNTlhNTYyM2Fk
N2JlMmM0MGJhYWNhMDI1Yy4uODQ4ODQyYWQ5ZjMwYTU0ZTA5NGQ0MzM3MTdjZGY5ZTAzYjI2NWZi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLmgKQEAgLTI3LDI5
ICsyNywyMiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgogCi1OT19SRVRV
Uk4gdm9pZCByYWlzZURPTUV4Y2VwdGlvbihXZWJDb3JlOjpFeGNlcHRpb25Db2RlKTsKLU5PX1JF
VFVSTiB2b2lkIHJhaXNlRE9NRXhjZXB0aW9uKFdlYkNvcmU6OkV4Y2VwdGlvbiYmKTsKIE5PX1JF
VFVSTiB2b2lkIHJhaXNlVHlwZUVycm9yRXhjZXB0aW9uKCk7CitOT19SRVRVUk4gdm9pZCByYWlz
ZU5vdFN1cHBvcnRlZEVycm9yRXhjZXB0aW9uKCk7CiAKLXZvaWQgcmFpc2VPbkRPTUVycm9yKFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUpOwotdm9pZCByYWlzZU9uRE9NRXJyb3IoV2ViQ29yZTo6RXhj
ZXB0aW9uT3I8dm9pZD4mJik7CitOT19SRVRVUk4gdm9pZCByYWlzZURPTUVycm9yRXhjZXB0aW9u
KFdlYkNvcmU6OkV4Y2VwdGlvbiYmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgcmFpc2VPbkRP
TUVycm9yKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFQ+JiYpOwotCi1pbmxpbmUgdm9pZCByYWlzZU9u
RE9NRXJyb3IoV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBjb2RlKQotewotICAgIGlmIChjb2RlKQot
ICAgICAgICByYWlzZURPTUV4Y2VwdGlvbihjb2RlKTsKLX0KK3ZvaWQgcmFpc2VPbkRPTUVycm9y
KFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpOwogCiBpbmxpbmUgdm9pZCByYWlzZU9uRE9N
RXJyb3IoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4mJiBwb3NzaWJsZUV4Y2VwdGlvbikKIHsK
ICAgICBpZiAocG9zc2libGVFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJhaXNl
RE9NRXhjZXB0aW9uKHBvc3NpYmxlRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJhaXNlRE9NRXJyb3JFeGNlcHRpb24ocG9zc2libGVFeGNlcHRpb24ucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQgcmFpc2VPbkRPTUVy
cm9yKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFQ+JiYgZXhjZXB0aW9uT3JSZXR1cm5WYWx1ZSkKIHsK
ICAgICBpZiAoZXhjZXB0aW9uT3JSZXR1cm5WYWx1ZS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
cmFpc2VET01FeGNlcHRpb24oZXhjZXB0aW9uT3JSZXR1cm5WYWx1ZS5yZWxlYXNlRXhjZXB0aW9u
KCkpOworICAgICAgICByYWlzZURPTUVycm9yRXhjZXB0aW9uKGV4Y2VwdGlvbk9yUmV0dXJuVmFs
dWUucmVsZWFzZUV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gZXhjZXB0aW9uT3JSZXR1cm5WYWx1
ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0RPTS9FeGNlcHRpb25IYW5kbGVycy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9FeGNlcHRp
b25IYW5kbGVycy5tbQppbmRleCA5ZWRiMWQ3NDFjYzdhMmRjN2YzZjk0MTc3NjY2NjBmOWMzZWUz
YWFlLi5kNDBlMGJjYmY0MGJkZWIyZmU0M2FlZmYyNDRiZGExNWUwNWExY2I5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRXhjZXB0aW9uSGFuZGxlcnMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvRE9NL0V4Y2VwdGlvbkhhbmRsZXJzLm1tCkBAIC0zNyw3ICszNyw3IEBAIE5T
U3RyaW5nICogY29uc3QgRE9NUmFuZ2VFeGNlcHRpb24gPSBAIkRPTVJhbmdlRXhjZXB0aW9uIjsK
IE5TU3RyaW5nICogY29uc3QgRE9NRXZlbnRFeGNlcHRpb24gPSBAIkRPTUV2ZW50RXhjZXB0aW9u
IjsKIE5TU3RyaW5nICogY29uc3QgRE9NWFBhdGhFeGNlcHRpb24gPSBAIkRPTVhQYXRoRXhjZXB0
aW9uIjsKIAotdm9pZCByYWlzZURPTUV4Y2VwdGlvbihXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
KQorc3RhdGljIE5PX1JFVFVSTiB2b2lkIHJhaXNlRE9NRXJyb3JFeGNlcHRpb24oV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSBlYykKIHsKICAgICBBU1NFUlQoZWMpOwogCkBAIC03NCwxMCArNzQsMTUg
QEAgdm9pZCByYWlzZURPTUV4Y2VwdGlvbihXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjKQogCiB2
b2lkIHJhaXNlVHlwZUVycm9yRXhjZXB0aW9uKCkKIHsKLSAgICByYWlzZURPTUV4Y2VwdGlvbihX
ZWJDb3JlOjpUeXBlRXJyb3IpOworICAgIHJhaXNlRE9NRXJyb3JFeGNlcHRpb24oV2ViQ29yZTo6
VHlwZUVycm9yKTsKIH0KIAotdm9pZCByYWlzZURPTUV4Y2VwdGlvbihXZWJDb3JlOjpFeGNlcHRp
b24mJiBleGNlcHRpb24pCit2b2lkIHJhaXNlTm90U3VwcG9ydGVkRXJyb3JFeGNlcHRpb24oKQog
ewotICAgIHJhaXNlRE9NRXhjZXB0aW9uKGV4Y2VwdGlvbi5jb2RlKCkpOworICAgIHJhaXNlRE9N
RXJyb3JFeGNlcHRpb24oV2ViQ29yZTo6Tk9UX1NVUFBPUlRFRF9FUlIpOworfQorCit2b2lkIHJh
aXNlRE9NRXJyb3JFeGNlcHRpb24oV2ViQ29yZTo6RXhjZXB0aW9uJiYgZXhjZXB0aW9uKQorewor
ICAgIHJhaXNlRE9NRXJyb3JFeGNlcHRpb24oZXhjZXB0aW9uLmNvZGUoKSk7CiB9Cg==
</data>
<flag name="review"
          id="317290"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="317300"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>