<?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>85011</bug_id>
          
          <creation_ts>2012-04-26 15:26:15 -0700</creation_ts>
          <short_desc>Remove RegisterFile::end()/m_end</short_desc>
          <delta_ts>2012-05-02 12:19:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>gustavo</cc>
    
    <cc>koivisto</cc>
    
    <cc>pnormand</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611031</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-26 15:26:15 -0700</bug_when>
    <thetext>Remove RegisterFile::end()/m_end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611048</commentid>
    <comment_count>1</comment_count>
      <attachid>139087</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-26 15:54:40 -0700</bug_when>
    <thetext>Created attachment 139087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611055</commentid>
    <comment_count>2</comment_count>
      <attachid>139087</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-26 16:07:45 -0700</bug_when>
    <thetext>Comment on attachment 139087
Patch

Attachment 139087 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12534029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611056</commentid>
    <comment_count>3</comment_count>
      <attachid>139087</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-26 16:10:44 -0700</bug_when>
    <thetext>Comment on attachment 139087
Patch

Attachment 139087 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12548026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611059</commentid>
    <comment_count>4</comment_count>
      <attachid>139087</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-26 16:15:44 -0700</bug_when>
    <thetext>Comment on attachment 139087
Patch

Attachment 139087 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12552041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611061</commentid>
    <comment_count>5</comment_count>
      <attachid>139090</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-26 16:18:30 -0700</bug_when>
    <thetext>Created attachment 139090
Remove now bogus NDEBUG ifdef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611099</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-26 17:06:19 -0700</bug_when>
    <thetext>Committed r115388: &lt;http://trac.webkit.org/changeset/115388&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612255</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-28 05:22:14 -0700</bug_when>
    <thetext>This patch seems to have caused massive swings in number of tests in http://webkit-perf.appspot.com on all JSC using (Mac Lion and Qt) bots.

10% regression in Dromaeo/dom-traverse:

http://webkit-perf.appspot.com/graph.html#tests=[[40020,2001,32196]]&amp;sel=1335481319023.587,1335500151119.3953,1212.7659574468084,2680.851063829787&amp;displayrange=7&amp;datatype=running

50% regression in DOM/Template

http://webkit-perf.appspot.com/graph.html#tests=[[110,2001,32196]]&amp;sel=1335480730398.3186,1335502455543.162,6.808510638297875,30.638297872340424&amp;displayrange=7&amp;datatype=running

50% progression in Bindings/event-target-wrapper (Lion bot only, not Qt bots)

http://webkit-perf.appspot.com/graph.html#tests=[[8062,2001,32196]]&amp;sel=1335478825629.3184,1335502278508.2844,0,1468.0851063829787&amp;displayrange=7&amp;datatype=running</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612300</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-28 11:47:47 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch seems to have caused massive swings in number of tests in http://webkit-perf.appspot.com on all JSC using (Mac Lion and Qt) bots.
&gt; 
&gt; 10% regression in Dromaeo/dom-traverse:
&gt; 
&gt; http://webkit-perf.appspot.com/graph.html#tests=[[40020,2001,32196]]&amp;sel=1335481319023.587,1335500151119.3953,1212.7659574468084,2680.851063829787&amp;displayrange=7&amp;datatype=running
&gt; 
&gt; 50% regression in DOM/Template
&gt; 
&gt; http://webkit-perf.appspot.com/graph.html#tests=[[110,2001,32196]]&amp;sel=1335480730398.3186,1335502455543.162,6.808510638297875,30.638297872340424&amp;displayrange=7&amp;datatype=running
&gt; 
&gt; 50% progression in Bindings/event-target-wrapper (Lion bot only, not Qt bots)
&gt; 
&gt; http://webkit-perf.appspot.com/graph.html#tests=[[8062,2001,32196]]&amp;sel=1335478825629.3184,1335502278508.2844,0,1468.0851063829787&amp;displayrange=7&amp;datatype=running

That is certainly sad making.  Could you file a separate bug on that, assign it to me -- i&apos;ll look into it on monday.  Doesn&apos;t make sense that this would cause any variation (if anything it should reduce variation, and improve overall performance.  grumble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612413</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-29 01:38:03 -0700</bug_when>
    <thetext>Filed bug 85155.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614514</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-05-02 12:17:36 -0700</bug_when>
    <thetext>Reverted r115388 for reason:

This caused many weird performance problems, and needs to be landed in pieces.

Committed r115861: &lt;http://trac.webkit.org/changeset/115861&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139087</attachid>
            <date>2012-04-26 15:54:40 -0700</date>
            <delta_ts>2012-04-26 16:18:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85011-20120426155439.patch</filename>
            <type>text/plain</type>
            <size>29023</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZWMzMjAzNDllYWZkNjg1Yjc3YTZhMzUxNWY2ZTRhMTVlMWQ1ZjY0Li45MzZjM2RiNmIwMThiZDZm
Mzg1Yzc2Y2Y4OWE2NWUxNmM1MTgwNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxMi0wNC0yNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSBSZWdpc3RlckZpbGU6OmVuZCgpL21fZW5kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAxMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2YgZW5kKCkgYW5kIG1f
ZW5kIGZyb20gUmVnaXN0ZXJGaWxlLiAgRnJvbSBub3cgb24KKyAgICAgICAgd2Ugb25seSBjYXJl
IGFib3V0IHRoZSBlbmQgb2YgdGhlIGNvbW1pdHRlZCByZWdpb24gd2hlbiBjYWxsaW5nCisgICAg
ICAgIGNvZGUuICBXaGVuIHJlLWVudGVyaW5nIHRoZSBWTSB3ZSBub3cgcGxhbnQgdGhlIG5ldyBD
YWxsRnJhbWUKKyAgICAgICAgaW1tZWRpYXRlbHkgYWZ0ZXIgd2hhdGV2ZXIgdGhlIGN1cnJlbnQg
dG9wQ2FsbEZyYW1lIGlzLiAgVGhpcworICAgICAgICByZXF1aXJlZCBhZGRpbmcgYSByb3V0aW5l
IHRvIENhbGxGcmFtZSB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGF0CisgICAgICAgIHdlIHNob3Vs
ZCBiZSBkb2luZyAoaW4gdGhlIGFic2VuY2Ugb2YgYW4gZXhpc3RpbmcgQ2FsbEZyYW1lLCB3ZQor
ICAgICAgICBjYW4ndCByZWFzb24gYWJvdXQgdGhlIGZyYW1lRXh0ZW50KCkgc28gd2UgY2hlY2sg
Zm9yIHRoYXQpLgorCisgICAgICAgIFRoaXMgYWxzbyBub3cgbWVhbnMgdGhhdCB0aGUgR0Mgb25s
eSBtYXJrcyB0aGUgcG9ydGlvbiBvZiB0aGUKKyAgICAgICAgUmVnaXN0ZXJGaWxlIHRoYXQgaXMg
YWN0dWFsbHkgaW4gdXNlLCBhbmQgdGhhdCBWTSByZS1lbnRyeSBkb2Vzbid0CisgICAgICAgIGV4
aGF1c3QgdGhlIFJlZ2lzdGVyRmlsZSBhcyByYXBpZGx5LgorCisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6Okhl
YXA6OmdldENvbnNlcnZhdGl2ZVJlZ2lzdGVyUm9vdHMpOgorICAgICAgICAoSlNDOjpIZWFwOjpt
YXJrUm9vdHMpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAo
SlNDOjpFeGVjU3RhdGU6OmluaXQpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6OnN0YXJ0T2ZS
ZXVzYWJsZVJlZ2lzdGVyRmlsZSk6CisgICAgICAgIChFeGVjU3RhdGUpOgorICAgICAgICAqIGlu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAqIGludGVy
cHJldGVyL1JlZ2lzdGVyRmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRp
dmVSb290cyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmg6CisgICAgICAg
IChKU0M6OlJlZ2lzdGVyRmlsZTo6Y29tbWl0RW5kKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJG
aWxlOjphZGRyZXNzT2ZFbmQpOgorICAgICAgICAoUmVnaXN0ZXJGaWxlKToKKyAgICAgICAgKEpT
Qzo6UmVnaXN0ZXJGaWxlOjpSZWdpc3RlckZpbGUpOgorICAgICAgICAoSlNDOjpSZWdpc3RlckZp
bGU6OnNocmluayk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6Z3Jvdyk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04p
OgorICAgICAgICAoSlNDOjpqaXRDb21waWxlRm9yKToKKyAgICAgICAgKEpTQzo6bGF6eUxpbmtG
b3IpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6
TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmhhbmRs
ZUhvc3RDYWxsKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAg
ICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21tb25T
bG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorCiAyMDEyLTA0LTI2ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIEFSTXY3IGJhY2tlbmQgc2hvdWxkIG9wdGlt
aXplIEZsb2F0MzIgYXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAppbmRleCAyZjkzOTI5NWEwMTFiMGQxNmJiMGYwOGVlZWM4Nzc2OGNhM2QxZGUzLi5h
NmRiMDFiZGQ1Y2NmZjE5YThlMTViN2RiMDZiZDQ0M2ZlNzZmZmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTc4Myw2ICs3ODMsNyBAQCBzdGF0
aWMgdm9pZCogaGFuZGxlSG9zdENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU1ZhbHVlIGNh
bGxlZSwgQ29kZVNwZWNpYWxpegogICAgICAgICB9CiAgICAgCiAgICAgICAgIEFTU0VSVChjYWxs
VHlwZSA9PSBDYWxsVHlwZU5vbmUpOworICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkuZXhjZXB0
aW9uID0gY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoZXhlYywgY2FsbGVlKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtODA1LDYgKzgwNiw3IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0
Q2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTVmFsdWUgY2FsbGVlLCBDb2RlU3BlY2lhbGl6
CiAgICAgfQogICAgIAogICAgIEFTU0VSVChjb25zdHJ1Y3RUeXBlID09IENvbnN0cnVjdFR5cGVO
b25lKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMp
OwogICAgIGV4ZWMtPmdsb2JhbERhdGEoKS5leGNlcHRpb24gPSBjcmVhdGVOb3RBQ29uc3RydWN0
b3JFcnJvcihleGVjLCBjYWxsZWUpOwogICAgIHJldHVybiAwOwogfQpAQCAtODEzLDEzICs4MTUs
MTQgQEAgaW5saW5lIHZvaWQqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIENvZGUKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBl
eGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9
ICZleGVjLT5nbG9iYWxEYXRhKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcihn
bG9iYWxEYXRhLCBleGVjKTsKKyAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdHJhY2VyKCpnbG9iYWxE
YXRhLCBleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVl
LT5jYWxsZWVBc1ZhbHVlKCk7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdl
dEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFs
dWUsIGtpbmQpOwotCisgICAgCisgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIGNhbGxlZVRyYWNlcigq
Z2xvYmFsRGF0YSwgZXhlY0NhbGxlZSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0
PEpTRnVuY3Rpb24qPihjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CiAgICAgZXhlY0NhbGxlZS0+c2V0
U2NvcGVDaGFpbihjYWxsZWUtPnNjb3BlVW5jaGVja2VkKCkpOwogICAgIEV4ZWN1dGFibGVCYXNl
KiBleGVjdXRhYmxlID0gY2FsbGVlLT5leGVjdXRhYmxlKCk7CkBAIC04MzIsNiArODM1LDcgQEAg
aW5saW5lIHZvaWQqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIENvZGUKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRh
YmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb21w
aWxlRm9yKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAgICAgIGlmIChl
cnJvcikgeworICAgICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRyYWNlcigqZ2xvYmFsRGF0
YSwgZXhlYyk7CiAgICAgICAgICAgICBnbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFj
a092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAzNDQ0MThiYjUzZmIxZGFhOTA0ZjE3
NDZkNGQzY2E2MWNmYWVjYjY1Li5iOTYyMGNhNWJiMDBlZTMyN2RkOTIwYTVlMTE1YzAzNGVhMjVm
ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNTY3LDcgKzU2Nyw3IEBA
IHZvaWQgSGVhcDo6Z2V0Q29uc2VydmF0aXZlUmVnaXN0ZXJSb290cyhIYXNoU2V0PEpTQ2VsbCo+
JiByb290cykKICAgICAgICAgQ1JBU0goKTsKICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBD
b2xsZWN0aW9uOwogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHJlZ2lzdGVyRmlsZVJvb3RzKCZtX29i
amVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwotICAgIHJlZ2lzdGVyRmlsZSgp
LmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKHJlZ2lzdGVyRmlsZVJvb3RzKTsKKyAgICByZWdpc3Rl
ckZpbGUoKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cygqbV9nbG9iYWxEYXRhLCByZWdpc3RlckZp
bGVSb290cyk7CiAgICAgc2l6ZV90IHJlZ2lzdGVyRmlsZVJvb3RDb3VudCA9IHJlZ2lzdGVyRmls
ZVJvb3RzLnNpemUoKTsKICAgICBKU0NlbGwqKiByZWdpc3RlclJvb3RzID0gcmVnaXN0ZXJGaWxl
Um9vdHMucm9vdHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlZ2lzdGVyRmlsZVJv
b3RDb3VudDsgaSsrKSB7CkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMo
Ym9vbCBmdWxsR0MpCiAgICAgbV9kZmdDb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB7CiAg
ICAgICAgIEdDUEhBU0UoR2F0aGVyUmVnaXN0ZXJGaWxlUm9vdHMpOwotICAgICAgICByZWdpc3Rl
ckZpbGUoKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhyZWdpc3RlckZpbGVSb290cywgbV9kZmdD
b2RlQmxvY2tzKTsKKyAgICAgICAgcmVnaXN0ZXJGaWxlKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMoKm1fZ2xvYmFsRGF0YSwgcmVnaXN0ZXJGaWxlUm9vdHMsIG1fZGZnQ29kZUJsb2Nrcyk7CiAg
ICAgfQogI2lmIEVOQUJMRShHR0MpCiAgICAgTWFya2VkQmxvY2s6OkRpcnR5Q2VsbFZlY3RvciBk
aXJ0eUNlbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5oCmluZGV4IDRlYzNkZTdmM2Q2ZjFlMDY1YTMxZmUyNmVkOTNmNzZjYzA5ZTYyZmIuLjM2YzBl
MThiYTE4M2Y2ZjM1YTQ2MjM5N2ZhNzE3ZmNjMWU4NTI0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE3MSw3ICsxNzEsNyBAQCBuYW1l
c3BhY2UgSlNDICB7CiAgICAgICAgICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lLCBpbnQgYXJn
YywgSlNPYmplY3QqIGNhbGxlZSkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGNhbGxl
ckZyYW1lKTsgLy8gVXNlIG5vQ2FsbGVyKCkgcmF0aGVyIHRoYW4gMCBmb3IgdGhlIG91dGVyIGhv
c3QgY2FsbCBmcmFtZSBjYWxsZXIuCi0gICAgICAgICAgICBBU1NFUlQoY2FsbGVyRnJhbWUgPT0g
bm9DYWxsZXIoKSB8fCBjYWxsZXJGcmFtZS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZsYWcoKS0+cmVn
aXN0ZXJGaWxlKCktPmVuZCgpID49IHRoaXMpOworICAgICAgICAgICAgQVNTRVJUKGNhbGxlckZy
YW1lID09IG5vQ2FsbGVyKCkgfHwgY2FsbGVyRnJhbWUtPnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFn
KCktPnJlZ2lzdGVyRmlsZSgpLT5jb21taXRFbmQoKSA+PSB0aGlzKTsKIAogICAgICAgICAgICAg
c2V0Q29kZUJsb2NrKGNvZGVCbG9jayk7CiAgICAgICAgICAgICBzZXRTY29wZUNoYWluKHNjb3Bl
Q2hhaW4pOwpAQCAtMjU0LDE0ICsyNTQsMjEgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAv
LyBoYXBwZW5pbmcuCiAgICAgICAgIENhbGxGcmFtZSogdHJ1ZUNhbGxGcmFtZUZyb21WTUNvZGUo
KSB7IHJldHVybiB0cnVlQ2FsbEZyYW1lKEFic3RyYWN0UEMoKSk7IH0KIAorICAgICAgICBSZWdp
c3Rlciogc3RhcnRPZlJldXNhYmxlUmVnaXN0ZXJGaWxlKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgQ2FsbEZyYW1lKiByZXN1bHQgPSBnbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lOworICAgICAg
ICAgICAgaWYgKHJlc3VsdCA9PSBub0NhbGxlcigpIHx8IHJlc3VsdCA9PSByZWdpc3RlckZpbGUo
KS0+YmVnaW4oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJGaWxlKCktPmJlZ2lu
KCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LT5mcmFtZUV4dGVudCgpOworICAgICAgICB9
CisgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBI
b3N0Q2FsbEZyYW1lRmxhZyA9IDE7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc190aGlzQXJn
dW1lbnRPZmZzZXQgPSAtMSAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBzX2ZpcnN0QXJndW1lbnRPZmZzZXQgPSBzX3RoaXNBcmd1
bWVudE9mZnNldCAtIDE7CiAKLSNpZm5kZWYgTkRFQlVHCiAgICAgICAgIFJlZ2lzdGVyRmlsZSog
cmVnaXN0ZXJGaWxlKCk7Ci0jZW5kaWYKKwogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBi
b29sIGlzSW5saW5lQ2FsbEZyYW1lU2xvdygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCAwOGYzNjQzZTljMmI5
ZGI2ZGVkNmMxNTc1YTA5NTRhOGNhN2JjNzU0Li4wYzU4MWY1NjU4YTM3ZDAzOWUzZmQyYWI5ZTVk
MzM2NzEwODNmNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIGZhaWxlZEpTT05QOgogICAg
ICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd0Vycm9yKGNhbGxGcmFtZSwgZXJyb3IpKTsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9ICZwcm9ncmFtLT5nZW5lcmF0ZWRCeXRlY29kZSgp
OwogCi0gICAgUmVnaXN0ZXIqIG9sZEVuZCA9IG1fcmVnaXN0ZXJGaWxlLmVuZCgpOworICAgIFJl
Z2lzdGVyKiBvbGRFbmQgPSBjYWxsRnJhbWUtPnN0YXJ0T2ZSZXVzYWJsZVJlZ2lzdGVyRmlsZSgp
OwogICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBvbGRFbmQgKyBjb2RlQmxvY2stPm51bVBhcmFtZXRl
cnMoKSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGNvZGVCbG9jay0+bV9u
dW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5ncm93KG5ld0VuZCkp
CiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSkpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhl
Y3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQK
ICAgICBpZiAobV9yZWVudHJ5RGVwdGggPj0gTWF4U21hbGxUaHJlYWRSZWVudHJ5RGVwdGggJiYg
bV9yZWVudHJ5RGVwdGggPj0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkubWF4UmVlbnRyeURlcHRo
KQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihj
YWxsRnJhbWUpKTsKIAotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQo
KTsKKyAgICBSZWdpc3Rlciogb2xkRW5kID0gY2FsbEZyYW1lLT5zdGFydE9mUmV1c2FibGVSZWdp
c3RlckZpbGUoKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5mcmFtZUV4dGVudCgpIDw9IG9sZEVu
ZCB8fCBjYWxsRnJhbWUgPT0gY2FsbEZyYW1lLT5zY29wZUNoYWluKCktPmdsb2JhbE9iamVjdC0+
Z2xvYmFsRXhlYygpKTsKICAgICBpbnQgYXJnQ291bnQgPSAxICsgYXJncy5zaXplKCk7IC8vIGlt
cGxpY2l0ICJ0aGlzIiBwYXJhbWV0ZXIKICAgICBzaXplX3QgcmVnaXN0ZXJPZmZzZXQgPSBhcmdD
b3VudCArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKQEAgLTEzNDcsNyArMTM0
Nyw3IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgaWYgKG1fcmVlbnRyeURlcHRoID49
IE1heFNtYWxsVGhyZWFkUmVlbnRyeURlcHRoICYmIG1fcmVlbnRyeURlcHRoID49IGNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLm1heFJlZW50cnlEZXB0aCkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRS
ZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKLSAgICBSZWdpc3Rl
ciogb2xkRW5kID0gbV9yZWdpc3RlckZpbGUuZW5kKCk7CisgICAgUmVnaXN0ZXIqIG9sZEVuZCA9
IGNhbGxGcmFtZS0+c3RhcnRPZlJldXNhYmxlUmVnaXN0ZXJGaWxlKCk7CiAgICAgaW50IGFyZ0Nv
dW50ID0gMSArIGFyZ3Muc2l6ZSgpOyAvLyBpbXBsaWNpdCAidGhpcyIgcGFyYW1ldGVyCiAgICAg
c2l6ZV90IHJlZ2lzdGVyT2Zmc2V0ID0gYXJnQ291bnQgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFt
ZUhlYWRlclNpemU7CiAKQEAgLTE0NDksNyArMTQ0OSw3IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50
ZXJwcmV0ZXI6OnByZXBhcmVGb3JSZXBlYXRDYWxsKEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rp
b25FCiAgICAgICAgIHJldHVybiBDYWxsRnJhbWVDbG9zdXJlKCk7CiAgICAgfQogCi0gICAgUmVn
aXN0ZXIqIG9sZEVuZCA9IG1fcmVnaXN0ZXJGaWxlLmVuZCgpOworICAgIFJlZ2lzdGVyKiBvbGRF
bmQgPSBjYWxsRnJhbWUtPnN0YXJ0T2ZSZXVzYWJsZVJlZ2lzdGVyRmlsZSgpOwogICAgIHNpemVf
dCByZWdpc3Rlck9mZnNldCA9IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgUmVnaXN0ZXJG
aWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogCiAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUg
PSBDYWxsRnJhbWU6OmNyZWF0ZShvbGRFbmQgKyByZWdpc3Rlck9mZnNldCk7CkBAIC0xNTc1LDcg
KzE1NzUsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBl
dmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgUmVnaXN0ZXIqIG9sZEVuZCA9IG1fcmVnaXN0ZXJGaWxlLmVuZCgpOwogICAgIFJlZ2lzdGVy
KiBuZXdFbmQgPSBtX3JlZ2lzdGVyRmlsZS5iZWdpbigpICsgZ2xvYmFsUmVnaXN0ZXJPZmZzZXQg
KyBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOwogICAgIGlmICghbV9yZWdpc3RlckZp
bGUuZ3JvdyhuZXdFbmQpKSB7CiAgICAgICAgIGlmIChwdXNoZWRTY29wZSkKQEAgLTE2MTksNyAr
MTYxOCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2
YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAgaWYgKCpwcm9maWxlcikKICAg
ICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VVUkwo
KSwgZXZhbC0+bGluZU5vKCkpOwogCi0gICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKG9sZEVuZCk7
CiAgICAgaWYgKHB1c2hlZFNjb3BlKQogICAgICAgICBzY29wZUNoYWluLT5wb3AoKTsKICAgICBy
ZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwpAQCAtNDUxMCw2ICs0NTA4LDcgQEAgc2tpcF9p
ZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIGNhbGxGcmFtZSA9IHNsaWRlUmVnaXN0ZXJXaW5k
b3dGb3JDYWxsKG5ld0NvZGVCbG9jaywgcmVnaXN0ZXJGaWxlLCBjYWxsRnJhbWUsIHJlZ2lzdGVy
T2Zmc2V0LCBhcmdDb3VudCk7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWNhbGxGcmFtZSkp
IHsKICAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBwcmV2aW91c0NhbGxGcmFtZTsKKyAgICAg
ICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgICAg
ICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwog
ICAgICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgICAgICAgICB9CkBAIC00NTg4LDYg
KzQ1ODcsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgQ29kZUJsb2NrKiBu
ZXdDb2RlQmxvY2sgPSAmY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRC
eXRlY29kZUZvckNhbGwoKTsKICAgICAgICAgICAgIG5ld0NhbGxGcmFtZSA9IHNsaWRlUmVnaXN0
ZXJXaW5kb3dGb3JDYWxsKG5ld0NvZGVCbG9jaywgcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUs
IDAsIGFyZ0NvdW50KTsKICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghbmV3Q2FsbEZyYW1lKSkg
eworICAgICAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2FsbEZyYW1lOwogICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxG
cmFtZSk7CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJvdzsKICAgICAgICAgICAgIH0KQEAg
LTQ5MDksNiArNDkwOSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBjYWxs
RnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVy
RmlsZSwgY2FsbEZyYW1lLCByZWdpc3Rlck9mZnNldCwgYXJnQ291bnQpOwogICAgICAgICAgICAg
aWYgKFVOTElLRUxZKCFjYWxsRnJhbWUpKSB7CiAgICAgICAgICAgICAgICAgY2FsbEZyYW1lID0g
cHJldmlvdXNDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBj
YWxsRnJhbWU7CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVTdGFja092
ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgICAgICBnb3RvIHZtX3Rocm93Owog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAppbmRleCBhZGIyM2YyMzcyMzg0ZGFmODgzYjE0ZWZmOGJhZjVkYzVmZTZkZjQx
Li5iYjVlYjU4NTJhZTQxNWI1YmE0NjhjNWYxMzYzN2JkYWIxMWRiNWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMjk0LDcgKzI5
NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlIHRoaXNWYWx1ZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgewotICAgICAg
ICByZXR1cm4gZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgc2NvcGVDaGFpbiwg
bV9yZWdpc3RlckZpbGUuc2l6ZSgpICsgMSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVy
U2l6ZSk7CisgICAgICAgIHJldHVybiBleGVjdXRlKGV2YWwsIGNhbGxGcmFtZSwgdGhpc1ZhbHVl
LCBzY29wZUNoYWluLCAoY2FsbEZyYW1lLT5zdGFydE9mUmV1c2FibGVSZWdpc3RlckZpbGUoKSAt
IG1fcmVnaXN0ZXJGaWxlLmJlZ2luKCkpICsgMSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSk7CiAgICAgfQogCiAgICAgSlNWYWx1ZSBldmFsKENhbGxGcmFtZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmNwcAppbmRl
eCBiNzIzNTI3ODFhMWJiNjZhNjQyZWI1OTVkMWRmNDIyYTM4OGQ1MTA2Li4xNzNjMzM1OTBmNGI5
MTc5NjI1ZjY3ZTk3ZTliNTQ5ZWJiNWI3NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmNwcApAQCAtNTIsMTAgKzUyLDcgQEAgUmVn
aXN0ZXJGaWxlOjp+UmVnaXN0ZXJGaWxlKCkKIAogYm9vbCBSZWdpc3RlckZpbGU6Omdyb3dTbG93
Q2FzZShSZWdpc3RlciogbmV3RW5kKQogewotICAgIGlmIChuZXdFbmQgPD0gbV9jb21taXRFbmQp
IHsKLSAgICAgICAgbV9lbmQgPSBuZXdFbmQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
KyAgICBBU1NFUlQobmV3RW5kID4gbV9jb21taXRFbmQpOwogCiAgICAgbG9uZyBkZWx0YSA9IHJv
dW5kVXBBbGxvY2F0aW9uU2l6ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihuZXdFbmQpIC0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpLCBjb21taXRTaXplKTsKICAgICBpZiAo
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpICsgZGVsdGEgPiBzdGF0aWNfY2Fz
dDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlvbi5zaXplKCkpCkBA
IC02NCwxOCArNjEsMjEgQEAgYm9vbCBSZWdpc3RlckZpbGU6Omdyb3dTbG93Q2FzZShSZWdpc3Rl
ciogbmV3RW5kKQogICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KG1fY29tbWl0RW5kLCBkZWx0YSk7
CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoZGVsdGEpOwogICAgIG1fY29tbWl0RW5kID0g
cmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihyZWludGVycHJldF9jYXN0PGNoYXIqPiht
X2NvbW1pdEVuZCkgKyBkZWx0YSk7Ci0gICAgbV9lbmQgPSBuZXdFbmQ7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgUmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25z
ZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCit2b2lkIFJlZ2lzdGVyRmlsZTo6Z2F0
aGVyQ29uc2VydmF0aXZlUm9vdHMoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBDb25zZXJ2YXRp
dmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRk
KGJlZ2luKCksIGVuZCgpKTsKKyAgICBpZiAoZ2xvYmFsRGF0YS50b3BDYWxsRnJhbWUgPT0gQ2Fs
bEZyYW1lOjpub0NhbGxlcigpKQorICAgICAgICByZXR1cm47CisgICAgY29uc2VydmF0aXZlUm9v
dHMuYWRkKGJlZ2luKCksIGdsb2JhbERhdGEudG9wQ2FsbEZyYW1lLT5mcmFtZUV4dGVudCgpKTsK
IH0KIAotdm9pZCBSZWdpc3RlckZpbGU6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZh
dGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgREZHQ29kZUJsb2NrcyYgZGZnQ29kZUJsb2Nr
cykKK3ZvaWQgUmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgREZH
Q29kZUJsb2NrcyYgZGZnQ29kZUJsb2NrcykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQo
YmVnaW4oKSwgZW5kKCksIGRmZ0NvZGVCbG9ja3MpOworICAgIGlmIChnbG9iYWxEYXRhLnRvcENh
bGxGcmFtZSA9PSBDYWxsRnJhbWU6Om5vQ2FsbGVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBj
b25zZXJ2YXRpdmVSb290cy5hZGQoYmVnaW4oKSwgZ2xvYmFsRGF0YS50b3BDYWxsRnJhbWUtPmZy
YW1lRXh0ZW50KCksIGRmZ0NvZGVCbG9ja3MpOwogfQogCiB2b2lkIFJlZ2lzdGVyRmlsZTo6cmVs
ZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9SZWdpc3RlckZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9SZWdpc3RlckZpbGUuaAppbmRleCAyMWFkN2ZiYWVhNTk2ZmQ2ZTgxZDVlMTNhNmFkM2Iw
MjA5NzczZTA3Li5iNjEzZjI4MTU4MjAxZTM5MmJlN2RmZDk2YzAwM2EwODdjMjM3Mjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oCkBA
IC02MywxMiArNjMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVyRmlsZShz
aXplX3QgY2FwYWNpdHkgPSBkZWZhdWx0Q2FwYWNpdHkpOwogICAgICAgICB+UmVnaXN0ZXJGaWxl
KCk7CiAgICAgICAgIAotICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJik7Ci0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29u
c2VydmF0aXZlUm9vdHMmLCBERkdDb2RlQmxvY2tzJik7CisgICAgICAgIHZvaWQgZ2F0aGVyQ29u
c2VydmF0aXZlUm9vdHMoSlNHbG9iYWxEYXRhJiwgQ29uc2VydmF0aXZlUm9vdHMmKTsKKyAgICAg
ICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhKU0dsb2JhbERhdGEmLCBDb25zZXJ2YXRp
dmVSb290cyYsIERGR0NvZGVCbG9ja3MmKTsKIAogICAgICAgICBSZWdpc3RlciogYmVnaW4oKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgp
KTsgfQotICAgICAgICBSZWdpc3RlciogZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KLSAg
ICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBlbmQoKSAtIGJlZ2luKCk7IH0KKyAg
ICAgICAgUmVnaXN0ZXIqIGNvbW1pdEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWl0RW5kOyB9
CiAKICAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKik7CiAgICAgICAgIHZvaWQgc2hyaW5rKFJl
Z2lzdGVyKik7CkBAIC03OCw3ICs3Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFJl
Z2lzdGVyKiBjb25zdCAqIGFkZHJlc3NPZkVuZCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiAmbV9lbmQ7CisgICAgICAgICAgICByZXR1cm4gJm1fY29tbWl0RW5kOwogICAg
ICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtODcsMzMgKzg2LDI4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdpc3RlciopOwogICAgICAgICB2b2lkIHJl
bGVhc2VFeGNlc3NDYXBhY2l0eSgpOwogICAgICAgICB2b2lkIGFkZFRvQ29tbWl0dGVkQnl0ZUNv
dW50KGxvbmcpOwotICAgICAgICBSZWdpc3RlciogbV9lbmQ7CiAgICAgICAgIFJlZ2lzdGVyKiBt
X2NvbW1pdEVuZDsKICAgICAgICAgUGFnZVJlc2VydmF0aW9uIG1fcmVzZXJ2YXRpb247CiAgICAg
fTsKIAogICAgIGlubGluZSBSZWdpc3RlckZpbGU6OlJlZ2lzdGVyRmlsZShzaXplX3QgY2FwYWNp
dHkpCi0gICAgICAgIDogbV9lbmQoMCkKICAgICB7CiAgICAgICAgIEFTU0VSVChjYXBhY2l0eSAm
JiBpc1BhZ2VBbGlnbmVkKGNhcGFjaXR5KSk7CiAKICAgICAgICAgbV9yZXNlcnZhdGlvbiA9IFBh
Z2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShyb3VuZFVwQWxsb2NhdGlvblNpemUoY2FwYWNpdHkgKiBz
aXplb2YoUmVnaXN0ZXIpLCBjb21taXRTaXplKSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2Vz
KTsKLSAgICAgICAgbV9lbmQgPSBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KG1fcmVzZXJ2YXRpb24u
YmFzZSgpKTsKICAgICAgICAgbV9jb21taXRFbmQgPSBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KG1f
cmVzZXJ2YXRpb24uYmFzZSgpKTsKICAgICB9CiAKICAgICBpbmxpbmUgdm9pZCBSZWdpc3RlckZp
bGU6OnNocmluayhSZWdpc3RlciogbmV3RW5kKQogICAgIHsKLSAgICAgICAgaWYgKG5ld0VuZCA+
PSBtX2VuZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9lbmQgPSBuZXdFbmQ7Ci0g
ICAgICAgIGlmIChtX2VuZCA9PSBtX3Jlc2VydmF0aW9uLmJhc2UoKSAmJiAobV9jb21taXRFbmQg
LSBiZWdpbigpKSA+PSBtYXhFeGNlc3NDYXBhY2l0eSkKKyAgICAgICAgQVNTRVJUKG5ld0VuZCA8
PSBtX2NvbW1pdEVuZCk7CisgICAgICAgIGlmIChuZXdFbmQgPT0gbV9yZXNlcnZhdGlvbi5iYXNl
KCkgJiYgKG1fY29tbWl0RW5kIC0gYmVnaW4oKSkgPj0gbWF4RXhjZXNzQ2FwYWNpdHkpCiAgICAg
ICAgICAgICByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAgICB9CiAKICAgICBpbmxpbmUgYm9v
bCBSZWdpc3RlckZpbGU6Omdyb3coUmVnaXN0ZXIqIG5ld0VuZCkKICAgICB7Ci0gICAgICAgIGlm
IChuZXdFbmQgPD0gbV9lbmQpCisgICAgICAgIGlmIChuZXdFbmQgPD0gbV9jb21taXRFbmQpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdF
bmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggMzc0
YzI5ODlhNjk0YzVkOWI3ZWNkZDFmMmE3MGNkZmY3N2ZhNDM1YS4uMjYxNGNlNzJiM2M5ZWZiYzQ2
ZTAyOWMzZTVkYWYxYTMyMTJmY2M5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKQEAgLTEzNjksOCArMTM2OSwxNCBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkKiwg
cmVnaXN0ZXJfZmlsZV9jaGVjaykKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFt
ZSk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKIAot
ICAgIGlmIChVTkxJS0VMWSghc3RhY2tGcmFtZS5yZWdpc3RlckZpbGUtPmdyb3coJmNhbGxGcmFt
ZS0+cmVnaXN0ZXJzKClbY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnNdKSkpCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGw8dm9pZCo+KHN0
YWNrRnJhbWUsIGNhbGxGcmFtZSwgU1RVQl9SRVRVUk5fQUREUkVTUywgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSkpOworICAgIGlmIChVTkxJS0VMWSgh
c3RhY2tGcmFtZS5yZWdpc3RlckZpbGUtPmdyb3coJmNhbGxGcmFtZS0+cmVnaXN0ZXJzKClbY2Fs
bEZyYW1lLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnNdKSkpIHsKKyAgICAgICAg
SlNWYWx1ZSB2YWx1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVy
IHRyYWNlcihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgp
KTsKKyAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFt
ZS0+Y2FsbGVyRnJhbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0
aW9uRnJvbU9wQ2FsbDx2b2lkKj4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVSTl9B
RERSRVNTLCB2YWx1ZSk7CisgICAgfQogCiAgICAgcmV0dXJuIGNhbGxGcmFtZTsKIH0KQEAgLTIx
NTMsNiArMjE1OSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEpTT2JqZWN0Kiwgb3BfbmV3X2Z1
bmMpCiBpbmxpbmUgdm9pZCogaml0Q29tcGlsZUZvcihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogewogICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0g
anNDYXN0PEpTRnVuY3Rpb24qPihjYWxsRnJhbWUtPmNhbGxlZSgpKTsKKyAgICBjYWxsRnJhbWUt
PnNldENvZGVCbG9jaygwKTsKICAgICBBU1NFUlQoIWZ1bmN0aW9uLT5pc0hvc3RGdW5jdGlvbigp
KTsKICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBmdW5jdGlvbi0+anNFeGVj
dXRhYmxlKCk7CiAgICAgU2NvcGVDaGFpbk5vZGUqIGNhbGxEYXRhU2NvcGVDaGFpbiA9IGZ1bmN0
aW9uLT5zY29wZSgpOwpAQCAtMjIwNCw4ICsyMjExLDE0IEBAIERFRklORV9TVFVCX0ZVTkNUSU9O
KHZvaWQqLCBvcF9jYWxsX2FyaXR5Q2hlY2spCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBz
dGFja0ZyYW1lLmNhbGxGcmFtZTsKIAogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ29t
bW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGNhbGxGcmFtZSwgc3RhY2tGcmFtZS5yZWdpc3Rl
ckZpbGUsIENvZGVGb3JDYWxsKTsKLSAgICBpZiAoIW5ld0NhbGxGcmFtZSkKLSAgICAgICAgcmV0
dXJuIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbDx2b2lkKj4oc3RhY2tGcmFtZSwgY2FsbEZyYW1l
LCBTVFVCX1JFVFVSTl9BRERSRVNTLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1l
LT5jYWxsZXJGcmFtZSgpKSk7CisgICAgaWYgKCFuZXdDYWxsRnJhbWUpIHsKKyAgICAgICAgSlNW
YWx1ZSB2YWx1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRy
YWNlcihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpKTsK
KyAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZS0+
Y2FsbGVyRnJhbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9u
RnJvbU9wQ2FsbDx2b2lkKj4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVSTl9BRERS
RVNTLCB2YWx1ZSk7CisgICAgfQogCiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0KQEAgLTIy
MTcsOCArMjIzMCwxNCBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkKiwgb3BfY29uc3RydWN0
X2FyaXR5Q2hlY2spCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNhbGxG
cmFtZTsKIAogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ29tbW9uU2xvd1BhdGhzOjph
cml0eUNoZWNrRm9yKGNhbGxGcmFtZSwgc3RhY2tGcmFtZS5yZWdpc3RlckZpbGUsIENvZGVGb3JD
b25zdHJ1Y3QpOwotICAgIGlmICghbmV3Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm4gdGhyb3dF
eGNlcHRpb25Gcm9tT3BDYWxsPHZvaWQqPihzdGFja0ZyYW1lLCBjYWxsRnJhbWUsIFNUVUJfUkVU
VVJOX0FERFJFU1MsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUtPmNhbGxlckZy
YW1lKCkpKTsKKyAgICBpZiAoIW5ld0NhbGxGcmFtZSkgeworICAgICAgICBKU1ZhbHVlIHZhbHVl
OworICAgICAgICB7CisgICAgICAgICAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdHJhY2VyKGNhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkpOworICAgICAgICAg
ICAgdmFsdWUgPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lLT5jYWxsZXJGcmFt
ZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxs
PHZvaWQqPihzdGFja0ZyYW1lLCBjYWxsRnJhbWUsIFNUVUJfUkVUVVJOX0FERFJFU1MsIHZhbHVl
KTsKKyAgICB9CiAKICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQpAQCAtMjIyNyw2ICsyMjQ2
LDcgQEAgaW5saW5lIHZvaWQqIGxhenlMaW5rRm9yKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganND
YXN0PEpTRnVuY3Rpb24qPihjYWxsRnJhbWUtPmNhbGxlZSgpKTsKICAgICBFeGVjdXRhYmxlQmFz
ZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJsZSgpOworICAgIGNhbGxGcmFtZS0+c2V0
Q29kZUJsb2NrKDApOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7CiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOwpAQCAtMjMwMiw3ICsyMzIyLDEyIEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9jYWxsX05vdEpTRnVuY3Rpb24pCiAgICAg
QVNTRVJUKGNhbGxUeXBlICE9IENhbGxUeXBlSlMpOwogICAgIGlmIChjYWxsVHlwZSAhPSBDYWxs
VHlwZUhvc3QpIHsKICAgICAgICAgQVNTRVJUKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSk7Ci0g
ICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGw8RW5jb2RlZEpTVmFsdWU+KHN0
YWNrRnJhbWUsIGNhbGxGcmFtZSwgU1RVQl9SRVRVUk5fQUREUkVTUywgY3JlYXRlTm90QUZ1bmN0
aW9uRXJyb3IoY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpLCBjYWxsZWUpKTsKKyAgICAgICAgSlNW
YWx1ZSB2YWx1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcigmY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUo
KSk7CisgICAgICAgICAgICB2YWx1ZSA9IGNyZWF0ZU5vdEFGdW5jdGlvbkVycm9yKGNhbGxGcmFt
ZS0+Y2FsbGVyRnJhbWUoKSwgY2FsbGVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb25Gcm9tT3BDYWxsPEVuY29kZWRKU1ZhbHVlPihzdGFja0ZyYW1lLCBjYWxsRnJh
bWUsIFNUVUJfUkVUVVJOX0FERFJFU1MsIHZhbHVlKTsKICAgICB9CiAKICAgICBFbmNvZGVkSlNW
YWx1ZSByZXR1cm5WYWx1ZTsKQEAgLTI0MDgsNyArMjQzMywxMiBAQCBERUZJTkVfU1RVQl9GVU5D
VElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfY29uc3RydWN0X05vdEpTQ29uc3RydWN0KQogICAgIEFT
U0VSVChjb25zdHJ1Y3RUeXBlICE9IENvbnN0cnVjdFR5cGVKUyk7CiAgICAgaWYgKGNvbnN0cnVj
dFR5cGUgIT0gQ29uc3RydWN0VHlwZUhvc3QpIHsKICAgICAgICAgQVNTRVJUKGNvbnN0cnVjdFR5
cGUgPT0gQ29uc3RydWN0VHlwZU5vbmUpOwotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb25G
cm9tT3BDYWxsPEVuY29kZWRKU1ZhbHVlPihzdGFja0ZyYW1lLCBjYWxsRnJhbWUsIFNUVUJfUkVU
VVJOX0FERFJFU1MsIGNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKGNhbGxGcmFtZS0+Y2FsbGVy
RnJhbWUoKSwgY2FsbGVlKSk7CisgICAgICAgIEpTVmFsdWUgdmFsdWU7CisgICAgICAgIHsKKyAg
ICAgICAgICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJmNhbGxGcmFtZS0+Z2xvYmFs
RGF0YSgpLCBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkpOworICAgICAgICAgICAgdmFsdWUgPSBj
cmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCksIGNhbGxl
ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbDxF
bmNvZGVkSlNWYWx1ZT4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVSTl9BRERSRVNT
LCB2YWx1ZSk7CiAgICAgfQogCiAgICAgRW5jb2RlZEpTVmFsdWUgcmV0dXJuVmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCAyYjUx
NjFmN2I4NWM4Y2MwYzZlZWU3NWM5MzhjMmRhYzg3YWVkYjQyLi40MDcyZGVlNzA4NzIyZTZhZTYz
ZmNiZmFlM2RhMmUwMGQ0NzkxMDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTM4OCwxMCArMzg4LDExIEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHJlZ2lzdGVyX2ZpbGVfY2hlY2spCiAgICAgZGF0YUxvZygiTnVtIHZhcnMgPSAldS5c
biIsIGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bVZhcnMpOwogICAgIGRhdGFMb2coIkN1cnJlbnQg
ZW5kIGlzIGF0ICVwLlxuIiwgZXhlYy0+Z2xvYmFsRGF0YSgpLmludGVycHJldGVyLT5yZWdpc3Rl
ckZpbGUoKS5lbmQoKSk7CiAjZW5kaWYKLSAgICBBU1NFUlQoJmV4ZWMtPnJlZ2lzdGVycygpW2V4
ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVyc10gPiBleGVjLT5nbG9iYWxEYXRh
KCkuaW50ZXJwcmV0ZXItPnJlZ2lzdGVyRmlsZSgpLmVuZCgpKTsKKyAgICBBU1NFUlQoJmV4ZWMt
PnJlZ2lzdGVycygpW2V4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVyc10gPiBl
eGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0ZXItPnJlZ2lzdGVyRmlsZSgpLmNvbW1pdEVuZCgp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWdsb2JhbERhdGEuaW50ZXJwcmV0ZXItPnJlZ2lzdGVyRmls
ZSgpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW2V4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxl
ZVJlZ2lzdGVyc10pKSkgewogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVyblBDID0gZXhl
Yy0+cmV0dXJuUEMoKTsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAg
ICAgIGV4ZWMtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBleGVjOwogICAgICAgICBnbG9i
YWxEYXRhLmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKICAgICAg
ICAgaW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIHJldHVyblBDKTsKICAgICAgICAgcGMg
PSByZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKGV4ZWMpOwpAQCAtNDA2LDYgKzQwNyw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCiAgICAg
aWYgKCFuZXdFeGVjKSB7CiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuUEMgPSBleGVj
LT5yZXR1cm5QQygpOwogICAgICAgICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAg
ICAgZXhlYy0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGV4ZWM7CiAgICAgICAgIGdsb2Jh
bERhdGEuZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAg
ICBpbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgcmV0dXJuUEMpOwogICAgICAgICBMTElO
VF9SRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pigx
KSksIGV4ZWMpOwpAQCAtNDIwLDYgKzQyMiw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9jb25zdHJ1Y3RfYXJpdHlDaGVjaykKICAgICBpZiAoIW5ld0V4ZWMpIHsKICAgICAgICAg
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5QQyA9IGV4ZWMtPnJldHVyblBDKCk7CiAgICAgICAgIGV4
ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkudG9w
Q2FsbEZyYW1lID0gZXhlYzsKICAgICAgICAgZ2xvYmFsRGF0YS5leGNlcHRpb24gPSBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAgIGludGVycHJldGVyVGhyb3dJbkNhbGxl
cihleGVjLCByZXR1cm5QQyk7CiAgICAgICAgIExMSU5UX1JFVFVSTl9UV08oYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSwgZXhlYyk7CkBAIC0xMjM3LDYgKzEy
NDAsNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEV4ZWNTdGF0
ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLAogI2VuZGlmCiAKICAgICAgICAgQVNTRVJU
KGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSk7CisgICAgICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJmdsb2JhbERhdGEsIGV4ZWMpOwogICAgICAgICBMTElOVF9DQUxMX1RIUk9XKGV4
ZWMsIHBjLCBjcmVhdGVOb3RBRnVuY3Rpb25FcnJvcihleGVjLCBjYWxsZWUpKTsKICAgICB9CiAK
QEAgLTEyNjAsNiArMTI2NCw3IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9z
dENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMsCiAjZW5kaWYKIAog
ICAgIEFTU0VSVChjb25zdHJ1Y3RUeXBlID09IENvbnN0cnVjdFR5cGVOb25lKTsKKyAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZnbG9iYWxEYXRhLCBleGVjKTsKICAgICBMTElOVF9D
QUxMX1RIUk9XKGV4ZWMsIHBjLCBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihleGVjLCBjYWxs
ZWUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCmluZGV4IGJiZmE4NTlmMjVmOGI2MjAwNmZiY2RlNWEwNzJhZGRmMGRk
MTdmZmIuLjIzZDI5ZDg4ZDViOTYxYzIwMDM3YWFiMzE0OTQyODAwNDU0YTUyMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
QEAgLTI3Myw3ICsyNzMsNyBAQCBtYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVB
cmdTa2lwKQogICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMg
RklYTUU6IENhbiBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1l
CiAgICAgbHNoaWZ0aSAzLCB0MAogICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRl
cnByZXRlcjo6bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5z
dGFja0hlaWdodE9LCisgICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVn
aXN0ZXJGaWxlOjptX2NvbW1pdEVuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwogCiAgICAgIyBT
dGFjayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggYzQxY2VkN2VlNmRm
ZTdhYjljYmIyNTNjNmUxNmY1ZDcxYjRhNzQ4YS4uYWFmNzFkZjI1ZDQ3MjA3MTA2NGQxZWZkODEw
YmU1ZTYyOTE4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmgKQEAgLTcwLDcgKzcwLDcgQEAgQUxXQVlTX0lOTElORSBFeGVjU3RhdGUq
IGFyaXR5Q2hlY2tGb3IoRXhlY1N0YXRlKiBleGVjLCBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmkK
ICAgICAgICAgZHN0W2ldID0ganNVbmRlZmluZWQoKTsKIAogICAgIEV4ZWNTdGF0ZSogbmV3RXhl
YyA9IEV4ZWNTdGF0ZTo6Y3JlYXRlKGRzdCk7Ci0gICAgQVNTRVJUKCh2b2lkKiluZXdFeGVjIDw9
IHJlZ2lzdGVyRmlsZS0+ZW5kKCkpOworICAgIEFTU0VSVCgodm9pZCopbmV3RXhlYyA8PSByZWdp
c3RlckZpbGUtPmNvbW1pdEVuZCgpKTsKICAgICByZXR1cm4gbmV3RXhlYzsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDMxMDVmMDJiYjA3NTJlMThlYzg0ZjNkMTM1YTM0MjBhYzg4YjFkMWUuLjA4OWE0Yzg0MWY3YmZi
MTllY2JjOTBlNjBjYmE1ZWIwZWRjZWY2NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
NC0yNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBS
ZWdpc3RlckZpbGU6OmVuZCgpL21fZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHdlIHJlY3Vyc2Ugb24gdGhlIHRvcCBvZiB0aGUgdXNl
ZCBwb3J0aW9uIG9mIHRoZSBzdGFjayB3ZQorICAgICAgICBjYW4gcHJvdmlkZSBhbiBlcnJvciBt
ZXNzYWdlIGV2ZW4gd2hlbiB0aGUgc3RhY2sgaXMgY29tcGxldGVseSBmdWxsLgorCisgICAgICAg
IEFsc28gbWFkZSBzdXJlIHdlIHdlcmUgY29uc2lzdGVudCBpbiB3aGljaCBjYWxsZnJhbWUgd2Ug
dXNlZCB3aGVuCisgICAgICAgIGNyZWF0aW5nIHN0YWNrIG92ZXJmbG93IGVycm9ycy4KKworICAg
ICAgICAqIGZhc3QvanMvZ2xvYmFsLXJlY3Vyc2lvbi1vbi1mdWxsLXN0YWNrLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2pzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0w
NC0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUg
Q2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbiBhZnRlciByMTE1MjQ0LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtcmVjdXJzaW9uLW9uLWZ1bGwtc3RhY2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtcmVjdXJzaW9uLW9uLWZ1bGwtc3RhY2st
ZXhwZWN0ZWQudHh0CmluZGV4IGM5MjI2Y2M5YTA0ZjI4NDM0ODdhMzVmOTg0YTU5OGJjZDQ2NGJl
YWUuLmIxZDk3MmE2NDkxN2FjMmY0MGUyNzAzY2VhNmI0ODk2NTVjYjZkMjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLXJlY3Vyc2lvbi1vbi1mdWxsLXN0YWNrLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1yZWN1cnNpb24tb24tZnVs
bC1zdGFjay1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IAor
Q09OU09MRSBNRVNTQUdFOiBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNl
ZWRlZC4KIFRoaXMgdGVzdHMgZ2xvYmFsIGNvZGUgcmVjdXJzaW9uIHdoZW4gdGhlIEpTIHN0YWNr
IGlzIGZ1bGwuCiBQQVNTOiBFbnRlcmluZyBnbG9iYWwgY29kZSB3aXRoIGEgZnVsbCBKUyBzdGFj
ayBkaWQgbm90IGNyYXNoLCBhbmQgZGlkIG5vdCBhbGxvdyBjb250aW51ZWQgcmVjdXJzaW9uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zdGFjay10cmFjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAppbmRleCBmNWJm
MmU3OTVkODU3ZmVjMzBmMzk1NDNkM2FjZGUxODRjMzRjNmZmLi43YmZlZWMzYzk4NDAwMTk3OTNm
YzA0NmVhZGMzMWMzNmUxZGE1YjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3N0
YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N0YWNrLXRy
YWNlLWV4cGVjdGVkLnR4dApAQCAtMTUxLDcgKzE1MSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAgICAgOTkgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczo1MgogCiAtLT4g
U3RhY2sgVHJhY2U6Ci0gICAgMCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjU4
CisgICAgMCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjYyCiAgICAgMSAgIHNl
bGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjYyCiAgICAgMiAgIHNlbGZSZWN1cnNpdmUy
IGF0IHN0YWNrLXRyYWNlLmpzOjYyCiAgICAgMyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRy
YWNlLmpzOjYyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139090</attachid>
            <date>2012-04-26 16:18:30 -0700</date>
            <delta_ts>2012-05-02 12:19:41 -0700</delta_ts>
            <desc>Remove now bogus NDEBUG ifdef</desc>
            <filename>bug-85011-20120426161829.patch</filename>
            <type>text/plain</type>
            <size>29762</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZWMzMjAzNDllYWZkNjg1Yjc3YTZhMzUxNWY2ZTRhMTVlMWQ1ZjY0Li45MzZjM2RiNmIwMThiZDZm
Mzg1Yzc2Y2Y4OWE2NWUxNmM1MTgwNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxMi0wNC0yNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSBSZWdpc3RlckZpbGU6OmVuZCgpL21fZW5kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAxMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2YgZW5kKCkgYW5kIG1f
ZW5kIGZyb20gUmVnaXN0ZXJGaWxlLiAgRnJvbSBub3cgb24KKyAgICAgICAgd2Ugb25seSBjYXJl
IGFib3V0IHRoZSBlbmQgb2YgdGhlIGNvbW1pdHRlZCByZWdpb24gd2hlbiBjYWxsaW5nCisgICAg
ICAgIGNvZGUuICBXaGVuIHJlLWVudGVyaW5nIHRoZSBWTSB3ZSBub3cgcGxhbnQgdGhlIG5ldyBD
YWxsRnJhbWUKKyAgICAgICAgaW1tZWRpYXRlbHkgYWZ0ZXIgd2hhdGV2ZXIgdGhlIGN1cnJlbnQg
dG9wQ2FsbEZyYW1lIGlzLiAgVGhpcworICAgICAgICByZXF1aXJlZCBhZGRpbmcgYSByb3V0aW5l
IHRvIENhbGxGcmFtZSB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGF0CisgICAgICAgIHdlIHNob3Vs
ZCBiZSBkb2luZyAoaW4gdGhlIGFic2VuY2Ugb2YgYW4gZXhpc3RpbmcgQ2FsbEZyYW1lLCB3ZQor
ICAgICAgICBjYW4ndCByZWFzb24gYWJvdXQgdGhlIGZyYW1lRXh0ZW50KCkgc28gd2UgY2hlY2sg
Zm9yIHRoYXQpLgorCisgICAgICAgIFRoaXMgYWxzbyBub3cgbWVhbnMgdGhhdCB0aGUgR0Mgb25s
eSBtYXJrcyB0aGUgcG9ydGlvbiBvZiB0aGUKKyAgICAgICAgUmVnaXN0ZXJGaWxlIHRoYXQgaXMg
YWN0dWFsbHkgaW4gdXNlLCBhbmQgdGhhdCBWTSByZS1lbnRyeSBkb2Vzbid0CisgICAgICAgIGV4
aGF1c3QgdGhlIFJlZ2lzdGVyRmlsZSBhcyByYXBpZGx5LgorCisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6Okhl
YXA6OmdldENvbnNlcnZhdGl2ZVJlZ2lzdGVyUm9vdHMpOgorICAgICAgICAoSlNDOjpIZWFwOjpt
YXJrUm9vdHMpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAo
SlNDOjpFeGVjU3RhdGU6OmluaXQpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6OnN0YXJ0T2ZS
ZXVzYWJsZVJlZ2lzdGVyRmlsZSk6CisgICAgICAgIChFeGVjU3RhdGUpOgorICAgICAgICAqIGlu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAqIGludGVy
cHJldGVyL1JlZ2lzdGVyRmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRp
dmVSb290cyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmg6CisgICAgICAg
IChKU0M6OlJlZ2lzdGVyRmlsZTo6Y29tbWl0RW5kKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJG
aWxlOjphZGRyZXNzT2ZFbmQpOgorICAgICAgICAoUmVnaXN0ZXJGaWxlKToKKyAgICAgICAgKEpT
Qzo6UmVnaXN0ZXJGaWxlOjpSZWdpc3RlckZpbGUpOgorICAgICAgICAoSlNDOjpSZWdpc3RlckZp
bGU6OnNocmluayk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6Z3Jvdyk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04p
OgorICAgICAgICAoSlNDOjpqaXRDb21waWxlRm9yKToKKyAgICAgICAgKEpTQzo6bGF6eUxpbmtG
b3IpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6
TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmhhbmRs
ZUhvc3RDYWxsKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAg
ICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21tb25T
bG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorCiAyMDEyLTA0LTI2ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIEFSTXY3IGJhY2tlbmQgc2hvdWxkIG9wdGlt
aXplIEZsb2F0MzIgYXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAppbmRleCAyZjkzOTI5NWEwMTFiMGQxNmJiMGYwOGVlZWM4Nzc2OGNhM2QxZGUzLi5h
NmRiMDFiZGQ1Y2NmZjE5YThlMTViN2RiMDZiZDQ0M2ZlNzZmZmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTc4Myw2ICs3ODMsNyBAQCBzdGF0
aWMgdm9pZCogaGFuZGxlSG9zdENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU1ZhbHVlIGNh
bGxlZSwgQ29kZVNwZWNpYWxpegogICAgICAgICB9CiAgICAgCiAgICAgICAgIEFTU0VSVChjYWxs
VHlwZSA9PSBDYWxsVHlwZU5vbmUpOworICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkuZXhjZXB0
aW9uID0gY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoZXhlYywgY2FsbGVlKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtODA1LDYgKzgwNiw3IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0
Q2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTVmFsdWUgY2FsbGVlLCBDb2RlU3BlY2lhbGl6
CiAgICAgfQogICAgIAogICAgIEFTU0VSVChjb25zdHJ1Y3RUeXBlID09IENvbnN0cnVjdFR5cGVO
b25lKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMp
OwogICAgIGV4ZWMtPmdsb2JhbERhdGEoKS5leGNlcHRpb24gPSBjcmVhdGVOb3RBQ29uc3RydWN0
b3JFcnJvcihleGVjLCBjYWxsZWUpOwogICAgIHJldHVybiAwOwogfQpAQCAtODEzLDEzICs4MTUs
MTQgQEAgaW5saW5lIHZvaWQqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIENvZGUKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBl
eGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9
ICZleGVjLT5nbG9iYWxEYXRhKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcihn
bG9iYWxEYXRhLCBleGVjKTsKKyAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdHJhY2VyKCpnbG9iYWxE
YXRhLCBleGVjKTsKICAgICAKICAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVl
LT5jYWxsZWVBc1ZhbHVlKCk7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdl
dEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFs
dWUsIGtpbmQpOwotCisgICAgCisgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIGNhbGxlZVRyYWNlcigq
Z2xvYmFsRGF0YSwgZXhlY0NhbGxlZSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0
PEpTRnVuY3Rpb24qPihjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CiAgICAgZXhlY0NhbGxlZS0+c2V0
U2NvcGVDaGFpbihjYWxsZWUtPnNjb3BlVW5jaGVja2VkKCkpOwogICAgIEV4ZWN1dGFibGVCYXNl
KiBleGVjdXRhYmxlID0gY2FsbGVlLT5leGVjdXRhYmxlKCk7CkBAIC04MzIsNiArODM1LDcgQEAg
aW5saW5lIHZvaWQqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIENvZGUKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRh
YmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb21w
aWxlRm9yKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAgICAgIGlmIChl
cnJvcikgeworICAgICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRyYWNlcigqZ2xvYmFsRGF0
YSwgZXhlYyk7CiAgICAgICAgICAgICBnbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVTdGFj
a092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAzNDQ0MThiYjUzZmIxZGFhOTA0ZjE3
NDZkNGQzY2E2MWNmYWVjYjY1Li5iOTYyMGNhNWJiMDBlZTMyN2RkOTIwYTVlMTE1YzAzNGVhMjVm
ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNTY3LDcgKzU2Nyw3IEBA
IHZvaWQgSGVhcDo6Z2V0Q29uc2VydmF0aXZlUmVnaXN0ZXJSb290cyhIYXNoU2V0PEpTQ2VsbCo+
JiByb290cykKICAgICAgICAgQ1JBU0goKTsKICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBD
b2xsZWN0aW9uOwogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHJlZ2lzdGVyRmlsZVJvb3RzKCZtX29i
amVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwotICAgIHJlZ2lzdGVyRmlsZSgp
LmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKHJlZ2lzdGVyRmlsZVJvb3RzKTsKKyAgICByZWdpc3Rl
ckZpbGUoKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cygqbV9nbG9iYWxEYXRhLCByZWdpc3RlckZp
bGVSb290cyk7CiAgICAgc2l6ZV90IHJlZ2lzdGVyRmlsZVJvb3RDb3VudCA9IHJlZ2lzdGVyRmls
ZVJvb3RzLnNpemUoKTsKICAgICBKU0NlbGwqKiByZWdpc3RlclJvb3RzID0gcmVnaXN0ZXJGaWxl
Um9vdHMucm9vdHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlZ2lzdGVyRmlsZVJv
b3RDb3VudDsgaSsrKSB7CkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMo
Ym9vbCBmdWxsR0MpCiAgICAgbV9kZmdDb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB7CiAg
ICAgICAgIEdDUEhBU0UoR2F0aGVyUmVnaXN0ZXJGaWxlUm9vdHMpOwotICAgICAgICByZWdpc3Rl
ckZpbGUoKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhyZWdpc3RlckZpbGVSb290cywgbV9kZmdD
b2RlQmxvY2tzKTsKKyAgICAgICAgcmVnaXN0ZXJGaWxlKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMoKm1fZ2xvYmFsRGF0YSwgcmVnaXN0ZXJGaWxlUm9vdHMsIG1fZGZnQ29kZUJsb2Nrcyk7CiAg
ICAgfQogI2lmIEVOQUJMRShHR0MpCiAgICAgTWFya2VkQmxvY2s6OkRpcnR5Q2VsbFZlY3RvciBk
aXJ0eUNlbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZy
YW1lLmNwcAppbmRleCBhNWZmYWVlOGQ2MTQ5OWY0ZDY5NjU3NTYyM2FjOGQzZDMwOTNhNDhjLi45
N2Q1ZWEzZTI4ZDg3ZjAxODI2NWNlZWU0NzY3OTVkNjUyNjliYjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcApAQCAtNDIsMTQgKzQyLDEz
IEBAIHZvaWQgQ2FsbEZyYW1lOjpkdW1wQ2FsbGVyKCkKICAgICBpbnRlcnByZXRlcigpLT5yZXRy
aWV2ZUxhc3RDYWxsZXIodGhpcywgc2lnbmVkTGluZU51bWJlciwgc291cmNlSUQsIHVybFN0cmlu
ZywgZnVuY3Rpb24pOwogICAgIGRhdGFMb2coIkNhbGxwb2ludCA9PiAlczolZFxuIiwgdXJsU3Ry
aW5nLnV0ZjgoKS5kYXRhKCksIHNpZ25lZExpbmVOdW1iZXIpOwogfQorI2VuZGlmCiAKIFJlZ2lz
dGVyRmlsZSogQ2FsbEZyYW1lOjpyZWdpc3RlckZpbGUoKQogewogICAgIHJldHVybiAmaW50ZXJw
cmV0ZXIoKS0+cmVnaXN0ZXJGaWxlKCk7CiB9CiAKLSNlbmRpZgotCiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKIHVuc2lnbmVkIENhbGxGcmFtZTo6Ynl0ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
aAppbmRleCA0ZWMzZGU3ZjNkNmYxZTA2NWEzMWZlMjZlZDkzZjc2Y2MwOWU2MmZiLi4zNmMwZTE4
YmExODNmNmYzNWE0NjIzOTdmYTcxN2ZjYzFlODUyNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNzEsNyArMTcxLDcgQEAgbmFtZXNw
YWNlIEpTQyAgewogICAgICAgICAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSwgaW50IGFyZ2Ms
IEpTT2JqZWN0KiBjYWxsZWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChjYWxsZXJG
cmFtZSk7IC8vIFVzZSBub0NhbGxlcigpIHJhdGhlciB0aGFuIDAgZm9yIHRoZSBvdXRlciBob3N0
IGNhbGwgZnJhbWUgY2FsbGVyLgotICAgICAgICAgICAgQVNTRVJUKGNhbGxlckZyYW1lID09IG5v
Q2FsbGVyKCkgfHwgY2FsbGVyRnJhbWUtPnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFnKCktPnJlZ2lz
dGVyRmlsZSgpLT5lbmQoKSA+PSB0aGlzKTsKKyAgICAgICAgICAgIEFTU0VSVChjYWxsZXJGcmFt
ZSA9PSBub0NhbGxlcigpIHx8IGNhbGxlckZyYW1lLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygp
LT5yZWdpc3RlckZpbGUoKS0+Y29tbWl0RW5kKCkgPj0gdGhpcyk7CiAKICAgICAgICAgICAgIHNl
dENvZGVCbG9jayhjb2RlQmxvY2spOwogICAgICAgICAgICAgc2V0U2NvcGVDaGFpbihzY29wZUNo
YWluKTsKQEAgLTI1NCwxNCArMjU0LDIxIEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8g
aGFwcGVuaW5nLgogICAgICAgICBDYWxsRnJhbWUqIHRydWVDYWxsRnJhbWVGcm9tVk1Db2RlKCkg
eyByZXR1cm4gdHJ1ZUNhbGxGcmFtZShBYnN0cmFjdFBDKCkpOyB9CiAKKyAgICAgICAgUmVnaXN0
ZXIqIHN0YXJ0T2ZSZXVzYWJsZVJlZ2lzdGVyRmlsZSgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IENhbGxGcmFtZSogcmVzdWx0ID0gZ2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZTsKKyAgICAgICAg
ICAgIGlmIChyZXN1bHQgPT0gbm9DYWxsZXIoKSB8fCByZXN1bHQgPT0gcmVnaXN0ZXJGaWxlKCkt
PmJlZ2luKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRmlsZSgpLT5iZWdpbigp
OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC0+ZnJhbWVFeHRlbnQoKTsKKyAgICAgICAgfQor
ICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgSG9z
dENhbGxGcmFtZUZsYWcgPSAxOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNfdGhpc0FyZ3Vt
ZW50T2Zmc2V0ID0gLTEgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgc19maXJzdEFyZ3VtZW50T2Zmc2V0ID0gc190aGlzQXJndW1l
bnRPZmZzZXQgLSAxOwogCi0jaWZuZGVmIE5ERUJVRwogICAgICAgICBSZWdpc3RlckZpbGUqIHJl
Z2lzdGVyRmlsZSgpOwotI2VuZGlmCisKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgYm9v
bCBpc0lubGluZUNhbGxGcmFtZVNsb3coKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggMDhmMzY0M2U5YzJiOWRi
NmRlZDZjMTU3NWEwOTU0YThjYTdiYzc1NC4uMGM1ODFmNTY1OGEzN2QwMzllM2ZkMmFiOWU1ZDMz
NjcxMDgzZjRiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCkBAIC0xMjAxLDcgKzEyMDEsNyBAQCBmYWlsZWRKU09OUDoKICAgICAg
ICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dFcnJvcihjYWxsRnJhbWUsIGVycm9yKSk7CiAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAmcHJvZ3JhbS0+Z2VuZXJhdGVkQnl0ZWNvZGUoKTsK
IAotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQoKTsKKyAgICBSZWdp
c3Rlciogb2xkRW5kID0gY2FsbEZyYW1lLT5zdGFydE9mUmV1c2FibGVSZWdpc3RlckZpbGUoKTsK
ICAgICBSZWdpc3RlciogbmV3RW5kID0gb2xkRW5kICsgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBjb2RlQmxvY2stPm1fbnVt
Q2FsbGVlUmVnaXN0ZXJzOwogICAgIGlmICghbV9yZWdpc3RlckZpbGUuZ3JvdyhuZXdFbmQpKQog
ICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpKTsKQEAgLTEyNTAsNyArMTI1MCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1
dGVDYWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAg
ICAgaWYgKG1fcmVlbnRyeURlcHRoID49IE1heFNtYWxsVGhyZWFkUmVlbnRyeURlcHRoICYmIG1f
cmVlbnRyeURlcHRoID49IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLm1heFJlZW50cnlEZXB0aCkK
ICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2Fs
bEZyYW1lKSk7CiAKLSAgICBSZWdpc3Rlciogb2xkRW5kID0gbV9yZWdpc3RlckZpbGUuZW5kKCk7
CisgICAgUmVnaXN0ZXIqIG9sZEVuZCA9IGNhbGxGcmFtZS0+c3RhcnRPZlJldXNhYmxlUmVnaXN0
ZXJGaWxlKCk7CiAgICAgQVNTRVJUKGNhbGxGcmFtZS0+ZnJhbWVFeHRlbnQoKSA8PSBvbGRFbmQg
fHwgY2FsbEZyYW1lID09IGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKSk7CiAgICAgaW50IGFyZ0NvdW50ID0gMSArIGFyZ3Muc2l6ZSgpOyAvLyBpbXBs
aWNpdCAidGhpcyIgcGFyYW1ldGVyCiAgICAgc2l6ZV90IHJlZ2lzdGVyT2Zmc2V0ID0gYXJnQ291
bnQgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7CkBAIC0xMzQ3LDcgKzEzNDcs
NyBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgIGlmIChtX3JlZW50cnlEZXB0aCA+PSBN
YXhTbWFsbFRocmVhZFJlZW50cnlEZXB0aCAmJiBtX3JlZW50cnlEZXB0aCA+PSBjYWxsRnJhbWUt
Pmdsb2JhbERhdGEoKS5tYXhSZWVudHJ5RGVwdGgpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0
dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCi0gICAgUmVnaXN0ZXIq
IG9sZEVuZCA9IG1fcmVnaXN0ZXJGaWxlLmVuZCgpOworICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBj
YWxsRnJhbWUtPnN0YXJ0T2ZSZXVzYWJsZVJlZ2lzdGVyRmlsZSgpOwogICAgIGludCBhcmdDb3Vu
dCA9IDEgKyBhcmdzLnNpemUoKTsgLy8gaW1wbGljaXQgInRoaXMiIHBhcmFtZXRlcgogICAgIHNp
emVfdCByZWdpc3Rlck9mZnNldCA9IGFyZ0NvdW50ICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVI
ZWFkZXJTaXplOwogCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCBDYWxsRnJhbWVDbG9zdXJlIEludGVy
cHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbChGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9u
RQogICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgpOwogICAgIH0KIAotICAgIFJlZ2lz
dGVyKiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQoKTsKKyAgICBSZWdpc3Rlciogb2xkRW5k
ID0gY2FsbEZyYW1lLT5zdGFydE9mUmV1c2FibGVSZWdpc3RlckZpbGUoKTsKICAgICBzaXplX3Qg
cmVnaXN0ZXJPZmZzZXQgPSBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFJlZ2lzdGVyRmls
ZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKIAogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
Q2FsbEZyYW1lOjpjcmVhdGUob2xkRW5kICsgcmVnaXN0ZXJPZmZzZXQpOwpAQCAtMTU3NSw3ICsx
NTc1LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZh
bCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUKICAgICAgICAgfQogICAgIH0KIAotICAg
IFJlZ2lzdGVyKiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQoKTsKICAgICBSZWdpc3Rlciog
bmV3RW5kID0gbV9yZWdpc3RlckZpbGUuYmVnaW4oKSArIGdsb2JhbFJlZ2lzdGVyT2Zmc2V0ICsg
Y29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICBpZiAoIW1fcmVnaXN0ZXJGaWxl
Lmdyb3cobmV3RW5kKSkgewogICAgICAgICBpZiAocHVzaGVkU2NvcGUpCkBAIC0xNjE5LDcgKzE2
MTgsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBldmFs
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZQogICAgIGlmICgqcHJvZmlsZXIpCiAgICAg
ICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCks
IGV2YWwtPmxpbmVObygpKTsKIAotICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwog
ICAgIGlmIChwdXNoZWRTY29wZSkKICAgICAgICAgc2NvcGVDaGFpbi0+cG9wKCk7CiAgICAgcmV0
dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKQEAgLTQ1MTAsNiArNDUwOCw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVyV2luZG93
Rm9yQ2FsbChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCByZWdpc3Rlck9m
ZnNldCwgYXJnQ291bnQpOwogICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFjYWxsRnJhbWUpKSB7
CiAgICAgICAgICAgICAgICAgY2FsbEZyYW1lID0gcHJldmlvdXNDYWxsRnJhbWU7CisgICAgICAg
ICAgICAgICAgKnRvcENhbGxGcmFtZVNsb3QgPSBjYWxsRnJhbWU7CiAgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAg
ICAgICAgICAgICAgICBnb3RvIHZtX3Rocm93OwogICAgICAgICAgICAgfQpAQCAtNDU4OCw2ICs0
NTg3LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIENvZGVCbG9jayogbmV3
Q29kZUJsb2NrID0gJmNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkQnl0
ZWNvZGVGb3JDYWxsKCk7CiAgICAgICAgICAgICBuZXdDYWxsRnJhbWUgPSBzbGlkZVJlZ2lzdGVy
V2luZG93Rm9yQ2FsbChuZXdDb2RlQmxvY2ssIHJlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCAw
LCBhcmdDb3VudCk7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIW5ld0NhbGxGcmFtZSkpIHsK
KyAgICAgICAgICAgICAgICAqdG9wQ2FsbEZyYW1lU2xvdCA9IGNhbGxGcmFtZTsKICAgICAgICAg
ICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJh
bWUpOwogICAgICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgICAgICAgICB9CkBAIC00
OTA5LDYgKzQ5MDksNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgY2FsbEZy
YW1lID0gc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwobmV3Q29kZUJsb2NrLCByZWdpc3RlckZp
bGUsIGNhbGxGcmFtZSwgcmVnaXN0ZXJPZmZzZXQsIGFyZ0NvdW50KTsKICAgICAgICAgICAgIGlm
IChVTkxJS0VMWSghY2FsbEZyYW1lKSkgewogICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9IHBy
ZXZpb3VzQ2FsbEZyYW1lOworICAgICAgICAgICAgICAgICp0b3BDYWxsRnJhbWVTbG90ID0gY2Fs
bEZyYW1lOwogICAgICAgICAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICAgICAgZ290byB2bV90aHJvdzsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmgKaW5kZXggYWRiMjNmMjM3MjM4NGRhZjg4M2IxNGVmZjhiYWY1ZGM1ZmU2ZGY0MS4u
YmI1ZWI1ODUyYWU0MTViNWJhNDY4YzVmMTM2MzdiZGFiMTFkYjVkNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKQEAgLTI5NCw3ICsyOTQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1
ZSB0aGlzVmFsdWUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGV4ZWN1dGUoZXZhbCwgY2FsbEZyYW1lLCB0aGlzVmFsdWUsIHNjb3BlQ2hhaW4sIG1f
cmVnaXN0ZXJGaWxlLnNpemUoKSArIDEgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNp
emUpOworICAgICAgICByZXR1cm4gZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwg
c2NvcGVDaGFpbiwgKGNhbGxGcmFtZS0+c3RhcnRPZlJldXNhYmxlUmVnaXN0ZXJGaWxlKCkgLSBt
X3JlZ2lzdGVyRmlsZS5iZWdpbigpKSArIDEgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
clNpemUpOwogICAgIH0KIAogICAgIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3RlckZpbGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAKaW5kZXgg
YjcyMzUyNzgxYTFiYjY2YTY0MmViNTk1ZDFkZjQyMmEzODhkNTEwNi4uMTczYzMzNTkwZjRiOTE3
OTYyNWY2N2U5N2U5YjU0OWViYjViNzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAKQEAgLTUyLDEwICs1Miw3IEBAIFJlZ2lz
dGVyRmlsZTo6flJlZ2lzdGVyRmlsZSgpCiAKIGJvb2wgUmVnaXN0ZXJGaWxlOjpncm93U2xvd0Nh
c2UoUmVnaXN0ZXIqIG5ld0VuZCkKIHsKLSAgICBpZiAobmV3RW5kIDw9IG1fY29tbWl0RW5kKSB7
Ci0gICAgICAgIG1fZW5kID0gbmV3RW5kOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Cisg
ICAgQVNTRVJUKG5ld0VuZCA+IG1fY29tbWl0RW5kKTsKIAogICAgIGxvbmcgZGVsdGEgPSByb3Vu
ZFVwQWxsb2NhdGlvblNpemUocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3RW5kKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5kKSwgY29tbWl0U2l6ZSk7CiAgICAgaWYgKHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5kKSArIGRlbHRhID4gc3RhdGljX2Nhc3Q8
Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKSArIG1fcmVzZXJ2YXRpb24uc2l6ZSgpKQpAQCAt
NjQsMTggKzYxLDIxIEBAIGJvb2wgUmVnaXN0ZXJGaWxlOjpncm93U2xvd0Nhc2UoUmVnaXN0ZXIq
IG5ld0VuZCkKICAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChtX2NvbW1pdEVuZCwgZGVsdGEpOwog
ICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGRlbHRhKTsKICAgICBtX2NvbW1pdEVuZCA9IHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9j
b21taXRFbmQpICsgZGVsdGEpOwotICAgIG1fZW5kID0gbmV3RW5kOwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIFJlZ2lzdGVyRmlsZTo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2Vy
dmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQordm9pZCBSZWdpc3RlckZpbGU6OmdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogewotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChi
ZWdpbigpLCBlbmQoKSk7CisgICAgaWYgKGdsb2JhbERhdGEudG9wQ2FsbEZyYW1lID09IENhbGxG
cmFtZTo6bm9DYWxsZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGNvbnNlcnZhdGl2ZVJvb3Rz
LmFkZChiZWdpbigpLCBnbG9iYWxEYXRhLnRvcENhbGxGcmFtZS0+ZnJhbWVFeHRlbnQoKSk7CiB9
CiAKLXZvaWQgUmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRp
dmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIERGR0NvZGVCbG9ja3MmIGRmZ0NvZGVCbG9ja3Mp
Cit2b2lkIFJlZ2lzdGVyRmlsZTo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIERGR0Nv
ZGVCbG9ja3MmIGRmZ0NvZGVCbG9ja3MpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGJl
Z2luKCksIGVuZCgpLCBkZmdDb2RlQmxvY2tzKTsKKyAgICBpZiAoZ2xvYmFsRGF0YS50b3BDYWxs
RnJhbWUgPT0gQ2FsbEZyYW1lOjpub0NhbGxlcigpKQorICAgICAgICByZXR1cm47CisgICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKGJlZ2luKCksIGdsb2JhbERhdGEudG9wQ2FsbEZyYW1lLT5mcmFt
ZUV4dGVudCgpLCBkZmdDb2RlQmxvY2tzKTsKIH0KIAogdm9pZCBSZWdpc3RlckZpbGU6OnJlbGVh
c2VFeGNlc3NDYXBhY2l0eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvUmVnaXN0ZXJGaWxlLmgKaW5kZXggMjFhZDdmYmFlYTU5NmZkNmU4MWQ1ZTEzYTZhZDNiMDIw
OTc3M2UwNy4uYjYxM2YyODE1ODIwMWUzOTJiZTdkZmQ5NmMwMDNhMDg3YzIzNzI3OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaApAQCAt
NjMsMTIgKzYzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlckZpbGUoc2l6
ZV90IGNhcGFjaXR5ID0gZGVmYXVsdENhcGFjaXR5KTsKICAgICAgICAgflJlZ2lzdGVyRmlsZSgp
OwogICAgICAgICAKLSAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2
YXRpdmVSb290cyYpOwotICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJiwgREZHQ29kZUJsb2NrcyYpOworICAgICAgICB2b2lkIGdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKEpTR2xvYmFsRGF0YSYsIENvbnNlcnZhdGl2ZVJvb3RzJik7CisgICAgICAg
IHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoSlNHbG9iYWxEYXRhJiwgQ29uc2VydmF0aXZl
Um9vdHMmLCBERkdDb2RlQmxvY2tzJik7CiAKICAgICAgICAgUmVnaXN0ZXIqIGJlZ2luKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSk7
IH0KLSAgICAgICAgUmVnaXN0ZXIqIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kOyB9Ci0gICAg
ICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gZW5kKCkgLSBiZWdpbigpOyB9CisgICAg
ICAgIFJlZ2lzdGVyKiBjb21taXRFbmQoKSBjb25zdCB7IHJldHVybiBtX2NvbW1pdEVuZDsgfQog
CiAgICAgICAgIGJvb2wgZ3JvdyhSZWdpc3RlciopOwogICAgICAgICB2b2lkIHNocmluayhSZWdp
c3RlciopOwpAQCAtNzgsNyArNzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBSZWdp
c3RlciogY29uc3QgKiBhZGRyZXNzT2ZFbmQoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gJm1fZW5kOworICAgICAgICAgICAgcmV0dXJuICZtX2NvbW1pdEVuZDsKICAgICAg
ICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTg3LDMzICs4NiwyOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgYm9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqKTsKICAgICAgICAgdm9pZCByZWxl
YXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAgICAgICAgdm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3Vu
dChsb25nKTsKLSAgICAgICAgUmVnaXN0ZXIqIG1fZW5kOwogICAgICAgICBSZWdpc3RlciogbV9j
b21taXRFbmQ7CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jlc2VydmF0aW9uOwogICAgIH07
CiAKICAgICBpbmxpbmUgUmVnaXN0ZXJGaWxlOjpSZWdpc3RlckZpbGUoc2l6ZV90IGNhcGFjaXR5
KQotICAgICAgICA6IG1fZW5kKDApCiAgICAgewogICAgICAgICBBU1NFUlQoY2FwYWNpdHkgJiYg
aXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOwogCiAgICAgICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdl
UmVzZXJ2YXRpb246OnJlc2VydmUocm91bmRVcEFsbG9jYXRpb25TaXplKGNhcGFjaXR5ICogc2l6
ZW9mKFJlZ2lzdGVyKSwgY29tbWl0U2l6ZSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7
Ci0gICAgICAgIG1fZW5kID0gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihtX3Jlc2VydmF0aW9uLmJh
c2UoKSk7CiAgICAgICAgIG1fY29tbWl0RW5kID0gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihtX3Jl
c2VydmF0aW9uLmJhc2UoKSk7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgUmVnaXN0ZXJGaWxl
OjpzaHJpbmsoUmVnaXN0ZXIqIG5ld0VuZCkKICAgICB7Ci0gICAgICAgIGlmIChuZXdFbmQgPj0g
bV9lbmQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fZW5kID0gbmV3RW5kOwotICAg
ICAgICBpZiAobV9lbmQgPT0gbV9yZXNlcnZhdGlvbi5iYXNlKCkgJiYgKG1fY29tbWl0RW5kIC0g
YmVnaW4oKSkgPj0gbWF4RXhjZXNzQ2FwYWNpdHkpCisgICAgICAgIEFTU0VSVChuZXdFbmQgPD0g
bV9jb21taXRFbmQpOworICAgICAgICBpZiAobmV3RW5kID09IG1fcmVzZXJ2YXRpb24uYmFzZSgp
ICYmIChtX2NvbW1pdEVuZCAtIGJlZ2luKCkpID49IG1heEV4Y2Vzc0NhcGFjaXR5KQogICAgICAg
ICAgICAgcmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7CiAgICAgfQogCiAgICAgaW5saW5lIGJvb2wg
UmVnaXN0ZXJGaWxlOjpncm93KFJlZ2lzdGVyKiBuZXdFbmQpCiAgICAgewotICAgICAgICBpZiAo
bmV3RW5kIDw9IG1fZW5kKQorICAgICAgICBpZiAobmV3RW5kIDw9IG1fY29tbWl0RW5kKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBncm93U2xvd0Nhc2UobmV3RW5k
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDM3NGMy
OTg5YTY5NGM1ZDliN2VjZGQxZjJhNzBjZGZmNzdmYTQzNWEuLjI2MTRjZTcyYjNjOWVmYmM0NmUw
MjljM2U1ZGFmMWEzMjEyZmNjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCkBAIC0xMzY5LDggKzEzNjksMTQgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIHJl
Z2lzdGVyX2ZpbGVfY2hlY2spCiAgICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAKLSAg
ICBpZiAoVU5MSUtFTFkoIXN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KCZjYWxsRnJhbWUt
PnJlZ2lzdGVycygpW2NhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJz
XSkpKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsPHZvaWQqPihzdGFj
a0ZyYW1lLCBjYWxsRnJhbWUsIFNUVUJfUkVUVVJOX0FERFJFU1MsIGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvcihjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXN0
YWNrRnJhbWUucmVnaXN0ZXJGaWxlLT5ncm93KCZjYWxsRnJhbWUtPnJlZ2lzdGVycygpW2NhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzXSkpKSB7CisgICAgICAgIEpT
VmFsdWUgdmFsdWU7CisgICAgICAgIHsKKyAgICAgICAgICAgIFRvcENhbGxGcmFtZVNldHRlciB0
cmFjZXIoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSk7
CisgICAgICAgICAgICB2YWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUt
PmNhbGxlckZyYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bkZyb21PcENhbGw8dm9pZCo+KHN0YWNrRnJhbWUsIGNhbGxGcmFtZSwgU1RVQl9SRVRVUk5fQURE
UkVTUywgdmFsdWUpOworICAgIH0KIAogICAgIHJldHVybiBjYWxsRnJhbWU7CiB9CkBAIC0yMTUz
LDYgKzIxNTksNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihKU09iamVjdCosIG9wX25ld19mdW5j
KQogaW5saW5lIHZvaWQqIGppdENvbXBpbGVGb3IoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oY2FsbEZyYW1lLT5jYWxsZWUoKSk7CisgICAgY2FsbEZyYW1lLT5z
ZXRDb2RlQmxvY2soMCk7CiAgICAgQVNTRVJUKCFmdW5jdGlvbi0+aXNIb3N0RnVuY3Rpb24oKSk7
CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZnVuY3Rpb24tPmpzRXhlY3V0
YWJsZSgpOwogICAgIFNjb3BlQ2hhaW5Ob2RlKiBjYWxsRGF0YVNjb3BlQ2hhaW4gPSBmdW5jdGlv
bi0+c2NvcGUoKTsKQEAgLTIyMDQsOCArMjIxMSwxNCBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2
b2lkKiwgb3BfY2FsbF9hcml0eUNoZWNrKQogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3Rh
Y2tGcmFtZS5jYWxsRnJhbWU7CiAKICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENvbW1v
blNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihjYWxsRnJhbWUsIHN0YWNrRnJhbWUucmVnaXN0ZXJG
aWxlLCBDb2RlRm9yQ2FsbCk7Ci0gICAgaWYgKCFuZXdDYWxsRnJhbWUpCi0gICAgICAgIHJldHVy
biB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGw8dm9pZCo+KHN0YWNrRnJhbWUsIGNhbGxGcmFtZSwg
U1RVQl9SRVRVUk5fQUREUkVTUywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZS0+
Y2FsbGVyRnJhbWUoKSkpOworICAgIGlmICghbmV3Q2FsbEZyYW1lKSB7CisgICAgICAgIEpTVmFs
dWUgdmFsdWU7CisgICAgICAgIHsKKyAgICAgICAgICAgIFRvcENhbGxGcmFtZVNldHRlciB0cmFj
ZXIoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSk7Cisg
ICAgICAgICAgICB2YWx1ZSA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUtPmNh
bGxlckZyYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbkZy
b21PcENhbGw8dm9pZCo+KHN0YWNrRnJhbWUsIGNhbGxGcmFtZSwgU1RVQl9SRVRVUk5fQUREUkVT
UywgdmFsdWUpOworICAgIH0KIAogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CkBAIC0yMjE3
LDggKzIyMzAsMTQgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIG9wX2NvbnN0cnVjdF9h
cml0eUNoZWNrKQogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJh
bWU7CiAKICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENvbW1vblNsb3dQYXRoczo6YXJp
dHlDaGVja0ZvcihjYWxsRnJhbWUsIHN0YWNrRnJhbWUucmVnaXN0ZXJGaWxlLCBDb2RlRm9yQ29u
c3RydWN0KTsKLSAgICBpZiAoIW5ld0NhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhj
ZXB0aW9uRnJvbU9wQ2FsbDx2b2lkKj4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lLT5jYWxsZXJGcmFt
ZSgpKSk7CisgICAgaWYgKCFuZXdDYWxsRnJhbWUpIHsKKyAgICAgICAgSlNWYWx1ZSB2YWx1ZTsK
KyAgICAgICAgeworICAgICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRyYWNlcihjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpKTsKKyAgICAgICAgICAg
IHZhbHVlID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUo
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbDx2
b2lkKj4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVSTl9BRERSRVNTLCB2YWx1ZSk7
CisgICAgfQogCiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0KQEAgLTIyMjcsNiArMjI0Niw3
IEBAIGlubGluZSB2b2lkKiBsYXp5TGlua0ZvcihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kKQogewogICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2Fz
dDxKU0Z1bmN0aW9uKj4oY2FsbEZyYW1lLT5jYWxsZWUoKSk7CiAgICAgRXhlY3V0YWJsZUJhc2Uq
IGV4ZWN1dGFibGUgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKTsKKyAgICBjYWxsRnJhbWUtPnNldENv
ZGVCbG9jaygwKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwogICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gMDsKQEAgLTIzMDIsNyArMjMyMiwxMiBAQCBERUZJTkVfU1RV
Ql9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKQogICAgIEFT
U0VSVChjYWxsVHlwZSAhPSBDYWxsVHlwZUpTKTsKICAgICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5
cGVIb3N0KSB7CiAgICAgICAgIEFTU0VSVChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpOwotICAg
ICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsPEVuY29kZWRKU1ZhbHVlPihzdGFj
a0ZyYW1lLCBjYWxsRnJhbWUsIFNUVUJfUkVUVVJOX0FERFJFU1MsIGNyZWF0ZU5vdEFGdW5jdGlv
bkVycm9yKGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSwgY2FsbGVlKSk7CisgICAgICAgIEpTVmFs
dWUgdmFsdWU7CisgICAgICAgIHsKKyAgICAgICAgICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkp
OworICAgICAgICAgICAgdmFsdWUgPSBjcmVhdGVOb3RBRnVuY3Rpb25FcnJvcihjYWxsRnJhbWUt
PmNhbGxlckZyYW1lKCksIGNhbGxlZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uRnJvbU9wQ2FsbDxFbmNvZGVkSlNWYWx1ZT4oc3RhY2tGcmFtZSwgY2FsbEZyYW1l
LCBTVFVCX1JFVFVSTl9BRERSRVNTLCB2YWx1ZSk7CiAgICAgfQogCiAgICAgRW5jb2RlZEpTVmFs
dWUgcmV0dXJuVmFsdWU7CkBAIC0yNDA4LDcgKzI0MzMsMTIgQEAgREVGSU5FX1NUVUJfRlVOQ1RJ
T04oRW5jb2RlZEpTVmFsdWUsIG9wX2NvbnN0cnVjdF9Ob3RKU0NvbnN0cnVjdCkKICAgICBBU1NF
UlQoY29uc3RydWN0VHlwZSAhPSBDb25zdHJ1Y3RUeXBlSlMpOwogICAgIGlmIChjb25zdHJ1Y3RU
eXBlICE9IENvbnN0cnVjdFR5cGVIb3N0KSB7CiAgICAgICAgIEFTU0VSVChjb25zdHJ1Y3RUeXBl
ID09IENvbnN0cnVjdFR5cGVOb25lKTsKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uRnJv
bU9wQ2FsbDxFbmNvZGVkSlNWYWx1ZT4oc3RhY2tGcmFtZSwgY2FsbEZyYW1lLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihjYWxsRnJhbWUtPmNhbGxlckZy
YW1lKCksIGNhbGxlZSkpOworICAgICAgICBKU1ZhbHVlIHZhbHVlOworICAgICAgICB7CisgICAg
ICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZjYWxsRnJhbWUtPmdsb2JhbERh
dGEoKSwgY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpKTsKKyAgICAgICAgICAgIHZhbHVlID0gY3Jl
YXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpLCBjYWxsZWUp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGw8RW5j
b2RlZEpTVmFsdWU+KHN0YWNrRnJhbWUsIGNhbGxGcmFtZSwgU1RVQl9SRVRVUk5fQUREUkVTUywg
dmFsdWUpOwogICAgIH0KIAogICAgIEVuY29kZWRKU1ZhbHVlIHJldHVyblZhbHVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggMmI1MTYx
ZjdiODVjOGNjMGM2ZWVlNzVjOTM4YzJkYWM4N2FlZGI0Mi4uNDA3MmRlZTcwODcyMmU2YWU2M2Zj
YmZhZTNkYTJlMDBkNDc5MTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCkBAIC0zODgsMTAgKzM4OCwxMSBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChyZWdpc3Rlcl9maWxlX2NoZWNrKQogICAgIGRhdGFMb2coIk51bSB2YXJzID0gJXUuXG4i
LCBleGVjLT5jb2RlQmxvY2soKS0+bV9udW1WYXJzKTsKICAgICBkYXRhTG9nKCJDdXJyZW50IGVu
ZCBpcyBhdCAlcC5cbiIsIGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+cmVnaXN0ZXJG
aWxlKCkuZW5kKCkpOwogI2VuZGlmCi0gICAgQVNTRVJUKCZleGVjLT5yZWdpc3RlcnMoKVtleGVj
LT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnNdID4gZXhlYy0+Z2xvYmFsRGF0YSgp
LmludGVycHJldGVyLT5yZWdpc3RlckZpbGUoKS5lbmQoKSk7CisgICAgQVNTRVJUKCZleGVjLT5y
ZWdpc3RlcnMoKVtleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnNdID4gZXhl
Yy0+Z2xvYmFsRGF0YSgpLmludGVycHJldGVyLT5yZWdpc3RlckZpbGUoKS5jb21taXRFbmQoKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFnbG9iYWxEYXRhLmludGVycHJldGVyLT5yZWdpc3RlckZpbGUo
KS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVtleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVS
ZWdpc3RlcnNdKSkpIHsKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5QQyA9IGV4ZWMt
PnJldHVyblBDKCk7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAg
ICBleGVjLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZyYW1lID0gZXhlYzsKICAgICAgICAgZ2xvYmFs
RGF0YS5leGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAg
IGludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCByZXR1cm5QQyk7CiAgICAgICAgIHBjID0g
cmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKQEAgLTQwNiw2ICs0MDcsNyBA
QCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQogICAgIGlm
ICghbmV3RXhlYykgewogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVyblBDID0gZXhlYy0+
cmV0dXJuUEMoKTsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAg
IGV4ZWMtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBleGVjOwogICAgICAgICBnbG9iYWxE
YXRhLmV4Y2VwdGlvbiA9IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKICAgICAgICAg
aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIHJldHVyblBDKTsKICAgICAgICAgTExJTlRf
UkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkp
LCBleGVjKTsKQEAgLTQyMCw2ICs0MjIsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfY29uc3RydWN0X2FyaXR5Q2hlY2spCiAgICAgaWYgKCFuZXdFeGVjKSB7CiAgICAgICAgIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuUEMgPSBleGVjLT5yZXR1cm5QQygpOwogICAgICAgICBleGVj
ID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgZXhlYy0+Z2xvYmFsRGF0YSgpLnRvcENh
bGxGcmFtZSA9IGV4ZWM7CiAgICAgICAgIGdsb2JhbERhdGEuZXhjZXB0aW9uID0gY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICBpbnRlcnByZXRlclRocm93SW5DYWxsZXIo
ZXhlYywgcmV0dXJuUEMpOwogICAgICAgICBMTElOVF9SRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2
b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSksIGV4ZWMpOwpAQCAtMTIzNyw2ICsxMjQw
LDcgQEAgc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUsIEluc3RydWN0aW9uKiBwYywKICNlbmRpZgogCiAgICAgICAgIEFTU0VSVChj
YWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpOworICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKCZnbG9iYWxEYXRhLCBleGVjKTsKICAgICAgICAgTExJTlRfQ0FMTF9USFJPVyhleGVj
LCBwYywgY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoZXhlYywgY2FsbGVlKSk7CiAgICAgfQogCkBA
IC0xMjYwLDYgKzEyNjQsNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RD
YWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLAogI2VuZGlmCiAKICAg
ICBBU1NFUlQoY29uc3RydWN0VHlwZSA9PSBDb25zdHJ1Y3RUeXBlTm9uZSk7CisgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmZ2xvYmFsRGF0YSwgZXhlYyk7CiAgICAgTExJTlRfQ0FM
TF9USFJPVyhleGVjLCBwYywgY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoZXhlYywgY2FsbGVl
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQppbmRleCBiYmZhODU5ZjI1ZjhiNjIwMDZmYmNkZTVhMDcyYWRkZjBkZDE3
ZmZiLi4yM2QyOWQ4OGQ1Yjk2MWMyMDAzN2FhYjMxNDk0MjgwMDQ1NGE1MjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBA
IC0yNzMsNyArMjczLDcgQEAgbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxlQXJn
U2tpcCkKICAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJldGVyW3QyXSwgdDIgICAjIEZJ
WE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0aGUgSklUU3RhY2tGcmFtZQog
ICAgIGxzaGlmdGkgMywgdDAKICAgICBhZGRwIHQwLCBjZnIsIHQwCi0gICAgYnBhZXEgSW50ZXJw
cmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjptX2VuZFt0Ml0sIHQwLCAuc3Rh
Y2tIZWlnaHRPSworICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmlsZSArIFJlZ2lz
dGVyRmlsZTo6bV9jb21taXRFbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKIAogICAgICMgU3Rh
Y2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KICAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGM0MWNlZDdlZTZkZmU3
YWI5Y2JiMjUzYzZlMTZmNWQ3MWI0YTc0OGEuLmFhZjcxZGYyNWQ0NzIwNzEwNjRkMWVmZDgxMGJl
NWU2MjkxOGQzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5oCkBAIC03MCw3ICs3MCw3IEBAIEFMV0FZU19JTkxJTkUgRXhlY1N0YXRlKiBh
cml0eUNoZWNrRm9yKEV4ZWNTdGF0ZSogZXhlYywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpCiAg
ICAgICAgIGRzdFtpXSA9IGpzVW5kZWZpbmVkKCk7CiAKICAgICBFeGVjU3RhdGUqIG5ld0V4ZWMg
PSBFeGVjU3RhdGU6OmNyZWF0ZShkc3QpOwotICAgIEFTU0VSVCgodm9pZCopbmV3RXhlYyA8PSBy
ZWdpc3RlckZpbGUtPmVuZCgpKTsKKyAgICBBU1NFUlQoKHZvaWQqKW5ld0V4ZWMgPD0gcmVnaXN0
ZXJGaWxlLT5jb21taXRFbmQoKSk7CiAgICAgcmV0dXJuIG5ld0V4ZWM7CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
MTA1ZjAyYmIwNzUyZTE4ZWM4NGYzZDEzNWEzNDIwYWM4OGIxZDFlLi4wODlhNGM4NDFmN2JmYjE5
ZWNiYzkwZTYwY2JhNWViMGVkY2VmNjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDQt
MjYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUmVn
aXN0ZXJGaWxlOjplbmQoKS9tX2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODUwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOb3cgdGhhdCB3ZSByZWN1cnNlIG9uIHRoZSB0b3Agb2YgdGhlIHVzZWQg
cG9ydGlvbiBvZiB0aGUgc3RhY2sgd2UKKyAgICAgICAgY2FuIHByb3ZpZGUgYW4gZXJyb3IgbWVz
c2FnZSBldmVuIHdoZW4gdGhlIHN0YWNrIGlzIGNvbXBsZXRlbHkgZnVsbC4KKworICAgICAgICBB
bHNvIG1hZGUgc3VyZSB3ZSB3ZXJlIGNvbnNpc3RlbnQgaW4gd2hpY2ggY2FsbGZyYW1lIHdlIHVz
ZWQgd2hlbgorICAgICAgICBjcmVhdGluZyBzdGFjayBvdmVyZmxvdyBlcnJvcnMuCisKKyAgICAg
ICAgKiBmYXN0L2pzL2dsb2JhbC1yZWN1cnNpb24tb24tZnVsbC1zdGFjay1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9qcy9zdGFjay10cmFjZS1leHBlY3RlZC50eHQ6CisKIDIwMTItMDQt
MjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIENo
cm9taXVtIHRlc3QgZXhwZWN0YXRpb24gYWZ0ZXIgcjExNTI0NC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLXJlY3Vyc2lvbi1vbi1mdWxsLXN0YWNrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLXJlY3Vyc2lvbi1vbi1mdWxsLXN0YWNrLWV4
cGVjdGVkLnR4dAppbmRleCBjOTIyNmNjOWEwNGYyODQzNDg3YTM1Zjk4NGE1OThiY2Q0NjRiZWFl
Li5iMWQ5NzJhNjQ5MTdhYzJmNDBlMjcwM2NlYTZiNDg5NjU1Y2I2ZDI3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1yZWN1cnNpb24tb24tZnVsbC1zdGFjay1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtcmVjdXJzaW9uLW9uLWZ1bGwt
c3RhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiAKK0NP
TlNPTEUgTUVTU0FHRTogUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVk
ZWQuCiBUaGlzIHRlc3RzIGdsb2JhbCBjb2RlIHJlY3Vyc2lvbiB3aGVuIHRoZSBKUyBzdGFjayBp
cyBmdWxsLgogUEFTUzogRW50ZXJpbmcgZ2xvYmFsIGNvZGUgd2l0aCBhIGZ1bGwgSlMgc3RhY2sg
ZGlkIG5vdCBjcmFzaCwgYW5kIGRpZCBub3QgYWxsb3cgY29udGludWVkIHJlY3Vyc2lvbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3RhY2stdHJhY2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9zdGFjay10cmFjZS1leHBlY3RlZC50eHQKaW5kZXggZjViZjJl
Nzk1ZDg1N2ZlYzMwZjM5NTQzZDNhY2RlMTg0YzM0YzZmZi4uN2JmZWVjM2M5ODQwMDE5NzkzZmMw
NDZlYWRjMzFjMzZlMWRhNWIzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zdGFj
ay10cmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zdGFjay10cmFj
ZS1leHBlY3RlZC50eHQKQEAgLTE1MSw3ICsxNTEsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RQogICAgIDk5ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6NTIKIAogLS0+IFN0
YWNrIFRyYWNlOgotICAgIDAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczo1OAor
ICAgIDAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczo2MgogICAgIDEgICBzZWxm
UmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczo2MgogICAgIDIgICBzZWxmUmVjdXJzaXZlMiBh
dCBzdGFjay10cmFjZS5qczo2MgogICAgIDMgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFj
ZS5qczo2Mgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>