<?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>154900</bug_id>
          
          <creation_ts>2016-03-01 19:35:54 -0800</creation_ts>
          <short_desc>The most aggressive form of RegExpTest/RegExpExec should speculate more aggressively than just cell</short_desc>
          <delta_ts>2016-03-05 16:48: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>JavaScriptCore</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>155070</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169690</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-01 19:35:54 -0800</bug_when>
    <thetext>Things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171269</commentid>
    <comment_count>1</comment_count>
      <attachid>273098</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-05 14:23:54 -0800</bug_when>
    <thetext>Created attachment 273098
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171277</commentid>
    <comment_count>2</comment_count>
      <attachid>273100</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-05 15:12:07 -0800</bug_when>
    <thetext>Created attachment 273100
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171278</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-05 15:13:52 -0800</bug_when>
    <thetext>Attachment 273100 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOperations.cpp:629:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171285</commentid>
    <comment_count>4</comment_count>
      <attachid>273100</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-05 15:28:18 -0800</bug_when>
    <thetext>Comment on attachment 273100
the patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171301</commentid>
    <comment_count>5</comment_count>
      <attachid>273107</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-05 16:16:36 -0800</bug_when>
    <thetext>Created attachment 273107
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171303</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-05 16:19:17 -0800</bug_when>
    <thetext>Attachment 273107 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOperations.cpp:629:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171310</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-05 16:48:32 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/197622</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273098</attachid>
            <date>2016-03-05 14:23:54 -0800</date>
            <delta_ts>2016-03-05 15:12:07 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12769</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2
aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODc5LDEzICs4NzksMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgICAgIGNhc2UgUmVnRXhwVGVz
dDogewotICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBwcm9iYWJseSBzcGVjdWxh
dGUgc29tZXRoaW5nIHN0cm9uZ2VyIHRoYW4gY2VsbC4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MDAKLSAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQ2VsbCgpCi0gICAgICAgICAgICAgICAgJiYg
bm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZUNlbGwoKSkgewotICAgICAgICAgICAgICAg
IGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIGZpeEVk
Z2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVSZWdFeHBPYmplY3Qo
KSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8UmVnRXhwT2JqZWN0VXNlPihub2RlLT5jaGls
ZDEoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1
bGF0ZVN0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1VzZT4obm9k
ZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAko
cmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE5LDIzICs2MTksMjUgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXJyYXktPnBvcChleGVjKSk7CiB9CiAgICAgICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBK
U0NlbGwqIGFyZ3VtZW50KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBFeGVjU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmpl
Y3QsIEpTU3RyaW5nKiBhcmd1bWVudCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICAKLSAgICBpZiAo
IWJhc2UtPmluaGVyaXRzKFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBP
YmplY3QtPmV4ZWMoZXhlYywgYXJndW1lbnQpKTsKK30KKyAgICAgICAgCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoRXhlY1N0YXRlKiBleGVjLCBSZWdF
eHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KQor
eworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgYXJndW1lbnQgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKIAotICAgIEpTU3RyaW5nKiBpbnB1dDsKLSAgICBpZiAo
YXJndW1lbnQtPmlzU3RyaW5nKCkpCi0gICAgICAgIGlucHV0ID0gYXNTdHJpbmcoYXJndW1lbnQp
OwotICAgIGVsc2UgewotICAgICAgICBpbnB1dCA9IEpTVmFsdWUoYXJndW1lbnQpLnRvU3RyaW5n
T3JOdWxsKGV4ZWMpOwotICAgICAgICBpZiAoIWlucHV0KQotICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBpbnB1dCkpOworICAgIEpT
U3RyaW5nKiBpbnB1dCA9IGFyZ3VtZW50LnRvU3RyaW5nT3JOdWxsKGV4ZWMpOworICAgIGlmICgh
aW5wdXQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3QtPmV4ZWMoZXhlYywgaW5wdXQp
KTsKIH0KICAgICAgICAgCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJl
Z0V4cEV4ZWNHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxOTc2MTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTAx
LDcgKzEwMSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXIKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlKEV4ZWNT
dGF0ZSosIGRvdWJsZSB2YWx1ZSwgSlNBcnJheSopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3AoRXhlY1N0YXRlKiwgSlNBcnJheSop
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJy
YXlQb3BBbmRSZWNvdmVyTGVuZ3RoKEV4ZWNTdGF0ZSosIEpTQXJyYXkqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEV4ZWNTdGF0ZSosIFJlZ0V4cE9i
amVjdCosIEpTU3RyaW5nKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEV4ZWNTdGF0ZSosIFJlZ0V4cE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cEV4ZWNHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogLy8gVGhlc2UgY29tcGFyaXNvbnMgcmV0dXJuIGEg
Ym9vbGVhbiB3aXRoaW4gYSBzaXplX3Qgc3VjaCB0aGF0IHRoZSB2YWx1ZSBpcyB6ZXJvIGV4dGVu
ZGVkIHRvIGZpbGwgdGhlIHJlZ2lzdGVyLgogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UmVnRXhwVGVzdChFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MzYsMjAg
KzI4MzYsNDMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
IH0KIAogICAgIGNhc2UgUmVnRXhwRXhlYzogewotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpID09IENlbGxVc2UKLSAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLnVzZUtp
bmQoKSA9PSBDZWxsVXNlKSB7CisgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gUmVnRXhwT2JqZWN0VXNlKSB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCkudXNl
S2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAg
ICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgICAgICAgICAgICAgR1BSUmVn
IGFyZ3VtZW50R1BSID0gYXJndW1lbnQuZ3ByKCk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRl
UmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBiYXNlR1BSKTsKKyAgICAgICAgICAgICAgICBz
cGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQyKCksIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAgICAgICAg
IEdQUkZsdXNoZWRDYWxsUmVzdWx0MiByZXN1bHRUYWcodGhpcyk7CisgICAgICAgICAgICAgICAg
R1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0UGF5bG9hZCh0aGlzKTsKKyAgICAgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25SZWdFeHBFeGVj
U3RyaW5nLCByZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIGJhc2VHUFIsCisg
ICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGpzVmFs
dWVSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJSZWcgYXJndW1lbnRH
UFIgPSBhcmd1bWVudC5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudFRhZ0dQUiA9
IGFyZ3VtZW50LnRhZ0dQUigpOworICAgICAgICAgICAgR1BSUmVnIGFyZ3VtZW50UGF5bG9hZEdQ
UiA9IGFyZ3VtZW50LnBheWxvYWRHUFIoKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9i
amVjdChub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CiAgICAgICAgIAogICAgICAgICAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0MiByZXN1bHRU
YWcodGhpcyk7CiAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHRQYXlsb2Fk
KHRoaXMpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBFeGVjLCBy
ZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIGJhc2VHUFIsIGFyZ3VtZW50R1BS
KTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgb3BlcmF0aW9u
UmVnRXhwRXhlYywgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBiYXNlR1BS
LCBhcmd1bWVudFRhZ0dQUiwKKyAgICAgICAgICAgICAgICByZXN1bHRQYXlsb2FkR1BSKTsKICAg
ICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIAotICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIG5vZGUp
OworICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE5NzYx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5NjIsMTIgKzI5NjIsMjkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNhc2UgUmVnRXhwRXhlYzogewot
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UKLSAgICAgICAg
ICAgICYmIG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7CisgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2JqZWN0VXNlKSB7CisgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAg
ICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3By
KCk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGFyZ3VtZW50R1BSID0gYXJndW1lbnQuZ3ByKCk7
CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBi
YXNlR1BSKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQyKCks
IGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOworICAgICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0
aGlzKTsKKyAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cEV4ZWNT
dHJpbmcsIHJlc3VsdC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRHUFIpOworICAgICAgICAgICAg
ICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAgICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKICAg
ICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQUlJl
ZyBhcmd1bWVudEdQUiA9IGFyZ3VtZW50LmdwcigpOworICAgICAgICAgICAgc3BlY3VsYXRlUmVn
RXhwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBiYXNlR1BSKTsKICAgICAgICAgCiAgICAgICAgICAg
ICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjE3LDYgKzEyMTcsMTgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQogCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FUmVvSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKworICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVJlb0pzcyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVdzIG9wZXJhdGlvbiwgV2F0Y2hw
b2ludFNldCogd2F0Y2hwb2ludFNldCkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHdhdGNocG9pbnRTZXQpKTsKQEAgLTE3MDAs
NiArMTcxMiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tUHRyKGNlbGwpLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBh
cmcyUGF5bG9hZCwgYXJnMlRhZyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0
KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FUmVvSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcs
IEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJl
ZyBhcmcyUGF5bG9hZCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CisgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKKyAg
ICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
UmVvSnNzIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOworICAgIH0K
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VTc2lD
SSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyBhcmcxLCBjb25zdCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBhcmcxLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAko
cmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDQwLDEwICs2NDQwLDE4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbXBpbGVSZWdFeHBFeGVjKCkKICAgICB7Ci0gICAgICAgIGlmIChtX25v
ZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlCi0gICAgICAgICAgICAmJiBtX25vZGUt
PmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7Ci0gICAgICAgICAgICBMVmFsdWUgYmFz
ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgYXJndW1l
bnQgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBpZiAobV9ub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2JqZWN0KSB7CisgICAgICAgICAgICBMVmFsdWUgYmFz
ZSA9IGxvd1JlZ0V4cE9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgewor
ICAgICAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudCA9IGxvd1N0cmluZyhtX25vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxsKAorICAgICAgICAg
ICAgICAgICAgICBJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJp
bmcpLCBtX2NhbGxGcmFtZSwgYmFzZSwgYXJndW1lbnQpOworICAgICAgICAgICAgICAgIHNldEpT
VmFsdWUocmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudCA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBzZXRKU1ZhbHVlKAogICAgICAgICAgICAgICAg
IHZtQ2FsbChJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cEV4ZWMpLCBtX2Nh
bGxGcmFtZSwgYmFzZSwgYXJndW1lbnQpKTsKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxOTc2MTYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0LDYgKzE0NCw4IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3Bl
cmF0aW9uX0VQYykoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc2NDKShFeGVjU3RhdGUqLCBK
U1Njb3BlKiwgSlNDZWxsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
KCpKX0pJVE9wZXJhdGlvbl9FSnNjQ0opKEV4ZWNTdGF0ZSosIEpTU2NvcGUqLCBKU0NlbGwqLCBF
bmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FUmVvSikoRXhlY1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVy
YXRpb25fRVJlb0pzcykoRXhlY1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VTUyko
RXhlY1N0YXRlKiwgc2l6ZV90LCBzaXplX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVNzaUNJKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FU3NpSkkpKEV4ZWNTdGF0ZSos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273100</attachid>
            <date>2016-03-05 15:12:07 -0800</date>
            <delta_ts>2016-03-05 16:16:36 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26574</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE2LTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIG1vc3QgYWdncmVzc2l2ZSBmb3JtIG9mIFJlZ0V4cFRlc3QvUmVnRXhwRXhlYyBzaG91bGQg
c3BlY3VsYXRlIG1vcmUgYWdncmVzc2l2ZWx5IHRoYW4ganVzdCBjZWxsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MDAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBvbGQgb3BlcmF0aW9ucyB1
c2VkIHRvIHNwZWN1bGF0ZSBjZWxsLiBUaGF0J3Mgd2hhdCB0aGV5IGRpZCB3aGVuIHRoZXkgd2Vy
ZSBmaXJzdAorICAgICAgICBpbnRyb2R1Y2VkLiBUaGF0IHdhcyBwcm9iYWJseSBhYm91dCBhcyBn
b29kIGFzIHRoZXkgY291bGQgZG8gYmFjayB0aGVuIGJlY2F1c2Ugd2UgZGlkbid0IGhhdmUKKyAg
ICAgICAgdmVyeSBwb3dlcmZ1bCBjaGVja3MuIE5vdyB3ZSBoYXZlIHBvd2VyZnVsIGNoZWNrcywg
c28gd2UgY2FuIGRvIHRoaXMgcmlnaHQuCisKKyAgICAgICAgVGhlIG1vc3QgcHJvZml0YWJsZSB0
aGluZyB0byBjaGVjayBpcyB0aGF0IGNoaWxkMSBpcyBhIFJlZ0V4cE9iamVjdCBhbmQgY2hpbGQy
IGlzIGEgSlNTdHJpbmcuCisgICAgICAgIFNvbWV0aW1lcyB0aG91Z2gsIHdlIHdpbGwgbm90IGtu
b3cgd2hhdCBjaGlsZDIgaXMgZXZlbiB0aG91Z2ggd2Uga25vdyB0aGF0IGNoaWxkMSBpcyBhCisg
ICAgICAgIFJlZ0V4cE9iamVjdC4gU28sIHRoaXMgcGF0Y2ggbWVhbnMgdGhhdCBSZWdFeHBFeGVj
L1JlZ0V4cFRlc3QgaGF2ZSB0aGUgZm9sbG93aW5nIG92ZXJsb2FkczoKKworICAgICAgICAgICAg
UmVnRXhwRXhlYyhSZWdFeHBPYmplY3Q6LCBTdHJpbmc6KQorICAgICAgICAgICAgUmVnRXhwRXhl
YyhSZWdFeHBPYmplY3Q6LCBVbnR5cGVkOikKKyAgICAgICAgICAgIFJlZ0V4cEV4ZWMoVW50eXBl
ZDosIFVudHlwZWQ6KQorCisgICAgICAgIFRoaXMgc2hhdmVzIG9mZiBzb21lIHR5cGUgY2hlY2tz
IGluIE9jdGFuZS9yZWdleHAuIEl0IGFsc28gY2xlYW5zIHVwIHNvbWUgcHJvYmxlbXMgaW4gb3Vy
CisgICAgICAgIG1vZGVsaW5nIG9mIHRoZSBlZmZlY3RmdWxuZXNzIG9mIHRoZXNlIG9wZXJhdGlv
bnMuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICog
ZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZVJlZ0V4cEV4ZWMpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlUmVnRXhwVGVzdCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKwogMjAxNi0w
My0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
RVM2XSBTdXBwb3J0IFJlZmxlY3QuY29uc3RydWN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShy
ZXZpc2lvbiAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NTQsMTAgKzE1NTQsMjAg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIH0KICAgICAg
ICAgICAgIAogICAgIGNhc2UgUmVnRXhwRXhlYzoKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LnVzZUtpbmQoKSA9PSBSZWdFeHBPYmplY3RVc2UKKyAgICAgICAgICAgICYmIG5vZGUtPmNoaWxk
MigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgZG9lc24n
dCBjbG9iYmVyIHRoZSB3b3JsZCBzaW5jZSB0aGVyZSBhcmUgbm8gY29udmVyc2lvbnMgdG8gcGVy
Zm9ybS4KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBjbG9iYmVyTGltaXQpOwogICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VI
ZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSZWdFeHBUZXN0OgorICAgICAg
ICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZQorICAgICAg
ICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAg
ICAgICAgLy8gVGhpcyBkb2Vzbid0IGNsb2JiZXIgdGhlIHdvcmxkIHNpbmNlIHRoZXJlIGFyZSBu
byBjb252ZXJzaW9ucyB0byBwZXJmb3JtLgorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNs
b2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAg
IGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAkocmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNzgsOCArMTA3OCwxNCBAQCB2b2lkIGNsb2Ji
ZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAg
ICAgY2FzZSBSZWdFeHBUZXN0OgotICAgICAgICByZWFkKFJlZ0V4cFN0YXRlKTsKLSAgICAgICAg
d3JpdGUoUmVnRXhwU3RhdGUpOworICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
ID09IFJlZ0V4cE9iamVjdFVzZQorICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2lu
ZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgcmVhZChSZWdFeHBTdGF0ZSk7CisgICAg
ICAgICAgICB3cml0ZShSZWdFeHBTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICBy
ZXR1cm47CiAKICAgICBjYXNlIFN0cmluZ1JlcGxhY2U6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg3OSwxMyArODc5LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBS
ZWdFeHBFeGVjOgogICAgICAgICBjYXNlIFJlZ0V4cFRlc3Q6IHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBUaGVzZSBzaG91bGQgcHJvYmFibHkgc3BlY3VsYXRlIHNvbWV0aGluZyBzdHJvbmdlciB0
aGFuIGNlbGwuCi0gICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU0OTAwCi0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNw
ZWN1bGF0ZUNlbGwoKQotICAgICAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLT5zaG91bGRT
cGVjdWxhdGVDZWxsKCkpIHsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxk
MigpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlUmVnRXhwT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBm
aXhFZGdlPFJlZ0V4cE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYxOSwyMyArNjE5LDI1IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5LT5wb3AoZXhlYykpOwogfQog
ICAgICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhl
YyhFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiBhcmd1bWVudCkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogYXJndW1lbnQp
CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgCi0gICAgaWYgKCFiYXNlLT5pbmhlcml0cyhSZWdFeHBP
YmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwT2JqZWN0LT5leGVjKGV4ZWMsIGFyZ3Vt
ZW50KSk7Cit9CisgICAgICAgIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25SZWdFeHBFeGVjKEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52
bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICAK
KyAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7
CiAKLSAgICBKU1N0cmluZyogaW5wdXQ7Ci0gICAgaWYgKGFyZ3VtZW50LT5pc1N0cmluZygpKQot
ICAgICAgICBpbnB1dCA9IGFzU3RyaW5nKGFyZ3VtZW50KTsKLSAgICBlbHNlIHsKLSAgICAgICAg
aW5wdXQgPSBKU1ZhbHVlKGFyZ3VtZW50KS50b1N0cmluZ09yTnVsbChleGVjKTsKLSAgICAgICAg
aWYgKCFpbnB1dCkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Ci0gICAgfQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBPYmplY3Qo
YmFzZSktPmV4ZWMoZXhlYywgaW5wdXQpKTsKKyAgICBKU1N0cmluZyogaW5wdXQgPSBhcmd1bWVu
dC50b1N0cmluZ09yTnVsbChleGVjKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVnRXhwT2JqZWN0LT5leGVjKGV4ZWMsIGlucHV0KSk7CiB9CiAgICAgICAgIAogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQXJndW1lbnQpCkBAIC02NTUsMjUgKzY1NywyNSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cE9i
amVjdChiYXNlKS0+ZXhlYyhleGVjLCBpbnB1dCkpOwogfQogICAgICAgICAKLXNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIEpTQ2VsbCogYXJndW1lbnQpCitzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdF
eHBUZXN0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3Qs
IEpTU3RyaW5nKiBpbnB1dCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIGlmICghYmFzZS0+aW5o
ZXJpdHMoUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4
ZWMpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiByZWdFeHBPYmpl
Y3QtPnRlc3QoZXhlYywgaW5wdXQpOworfQogCi0gICAgSlNTdHJpbmcqIGlucHV0OwotICAgIGlm
IChhcmd1bWVudC0+aXNTdHJpbmcoKSkKLSAgICAgICAgaW5wdXQgPSBhc1N0cmluZyhhcmd1bWVu
dCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlucHV0ID0gSlNWYWx1ZShhcmd1bWVudCkudG9TdHJp
bmdPck51bGwoZXhlYyk7Ci0gICAgICAgIGlmICghaW5wdXQpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChiYXNlKS0+dGVzdChleGVj
LCBpbnB1dCk7CitzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0KEV4ZWNT
dGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRBcmd1bWVudCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKworICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKKworICAgIEpTU3RyaW5nKiBpbnB1
dCA9IGFyZ3VtZW50LnRvU3RyaW5nT3JOdWxsKGV4ZWMpOworICAgIGlmICghaW5wdXQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcmVnRXhwT2JqZWN0LT50ZXN0KGV4ZWMsIGlu
cHV0KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVy
aWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsMTAgKzEwMSwxMiBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZShFeGVjU3RhdGUqLCBkb3Vi
bGUgdmFsdWUsIEpTQXJyYXkqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wKEV4ZWNTdGF0ZSosIEpTQXJyYXkqKSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wQW5kUmVj
b3Zlckxlbmd0aChFeGVjU3RhdGUqLCBKU0FycmF5KikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEV4ZWNTdGF0ZSosIEpTQ2Vs
bCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZyhFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3QqLCBKU1N0
cmluZyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwRXhlYyhFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdF
eHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0
aGluIGEgc2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxs
IHRoZSByZWdpc3Rlci4KLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3Qo
RXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZyhFeGVjU3RhdGUqLCBSZWdFeHBPYmpl
Y3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RH
ZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2Vs
bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b21wYXJlU3RyaWN0RXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZp
c2lvbiAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODM2LDIwICsyODM2LDQzIEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9CiAKICAgICBjYXNlIFJl
Z0V4cEV4ZWM6IHsKLSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxs
VXNlCi0gICAgICAgICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkg
eworICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVz
ZSkgeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdV
c2UpIHsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1
bWVudCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VH
UFIgPSBiYXNlLmdwcigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFy
Z3VtZW50LmdwcigpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2Rl
LT5jaGlsZDEoKSwgYmFzZUdQUik7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5v
ZGUtPmNoaWxkMigpLCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJl
c3VsdDIgcmVzdWx0VGFnKHRoaXMpOworICAgICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVz
dWx0IHJlc3VsdFBheWxvYWQodGhpcyk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigK
KyAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZywgcmVzdWx0VGFn
LmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgICAg
ICBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJndW1lbnQo
dGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1l
bnQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBi
YXNlLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIGFyZ3VtZW50R1BSID0gYXJndW1lbnQuZ3By
KCk7CisgICAgICAgICAgICBHUFJSZWcgYXJndW1lbnRUYWdHUFIgPSBhcmd1bWVudC50YWdHUFIo
KTsKKyAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudFBheWxvYWRHUFIgPSBhcmd1bWVudC5wYXls
b2FkR1BSKCk7CisgICAgICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qobm9kZS0+Y2hpbGQx
KCksIGJhc2VHUFIpOwogICAgICAgICAKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAg
ICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdDIgcmVzdWx0VGFnKHRoaXMpOwogICAgICAg
ICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0UGF5bG9hZCh0aGlzKTsKLSAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVnRXhwRXhlYywgcmVzdWx0VGFnLmdwcigpLCBy
ZXN1bHRQYXlsb2FkLmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgIG9wZXJhdGlvblJlZ0V4cEV4ZWMsIHJlc3Vs
dFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRUYWdHUFIs
CisgICAgICAgICAgICAgICAgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgICAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOwogICAgICAgICAKLSAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVz
dWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBub2RlKTsKKyAgICAgICAgICAgIGpz
VmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtMjg3MSwxNiArMjg5NCwzNSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFJlZ0V4
cFRlc3Q6IHsKLSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNl
Ci0gICAgICAgICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewor
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZSkg
eworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2Up
IHsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVu
dCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIg
PSBiYXNlLmdwcigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3Vt
ZW50LmdwcigpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5j
aGlsZDEoKSwgYmFzZUdQUik7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUt
PmNoaWxkMigpLCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3Vs
dCByZXN1bHQodGhpcyk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25S
ZWdFeHBUZXN0U3RyaW5nLCByZXN1bHQuZ3ByKCksIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKKyAg
ICAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDIo
KSk7CisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7CiAgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAg
ICAgICBHUFJSZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVudC5ncHIoKTsKKyAgICAgICAgICAgIEdQ
UlJlZyBhcmd1bWVudFRhZ0dQUiA9IGFyZ3VtZW50LnRhZ0dQUigpOworICAgICAgICAgICAgR1BS
UmVnIGFyZ3VtZW50UGF5bG9hZEdQUiA9IGFyZ3VtZW50LnBheWxvYWRHUFIoKTsKKyAgICAgICAg
ICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CiAgICAg
ICAgIAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uUmVnRXhwVGVzdCwgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7Cisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgIG9wZXJhdGlvblJlZ0V4
cFRlc3QsIHJlc3VsdC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRUYWdHUFIsIHJlc3VsdFBheWxv
YWRHUFIpOwogICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgCiAg
ICAgICAgICAgICBib29sZWFuUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJl
dmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NjIsMTIgKzI5NjIsMjkgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNhc2UgUmVn
RXhwRXhlYzogewotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxV
c2UKLSAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7
CisgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2JqZWN0VXNl
KSB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFN0cmluZ1Vz
ZSkgeworICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZ3Vt
ZW50KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgYmFzZUdQ
UiA9IGJhc2UuZ3ByKCk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGFyZ3VtZW50R1BSID0gYXJn
dW1lbnQuZ3ByKCk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUt
PmNoaWxkMSgpLCBiYXNlR1BSKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcobm9k
ZS0+Y2hpbGQyKCksIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVz
dWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blJlZ0V4cEV4ZWNTdHJpbmcsIHJlc3VsdC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRHUFIpOwor
ICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAg
ICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAg
ICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3VtZW50LmdwcigpOworICAgICAgICAgICAg
c3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBiYXNlR1BSKTsKICAgICAgICAg
CiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgR1BSRmx1c2hlZENh
bGxSZXN1bHQgcmVzdWx0KHRoaXMpOwpAQCAtMjk5MywyMSArMzAxMCwzOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAgY2FzZSBSZWdFeHBU
ZXN0OiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZQot
ICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IENlbGxVc2UpIHsKKyAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBSZWdFeHBPYmplY3RVc2UpIHsK
KyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7
CisgICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJndW1lbnQo
dGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0g
YmFzZS5ncHIoKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVu
dC5ncHIoKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qobm9kZS0+Y2hp
bGQxKCksIGJhc2VHUFIpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5j
aGlsZDIoKSwgYXJndW1lbnRHUFIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQg
cmVzdWx0KHRoaXMpOworICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVn
RXhwVGVzdFN0cmluZywgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAg
ICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0
LmdwcigpKTsKKyAgICAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9k
ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAK
ICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9k
ZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywg
bm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwogICAgICAgICAgICAgR1BSUmVnIGFyZ3VtZW50R1BSID0gYXJndW1lbnQuZ3ByKCk7CisgICAg
ICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOwog
ICAgICAgICAKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBHUFJG
bHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblJlZ0V4cFRlc3QsIHJlc3VsdC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRHUFIp
OwogICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgCi0gICAgICAg
ICAgICAvLyBJZiB3ZSBhZGQgYSBEYXRhRm9ybWF0Qm9vbCwgd2Ugc2hvdWxkIHVzZSBpdCBoZXJl
LgogICAgICAgICAgICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dC5ncHIoKSk7Ci0gICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwg
RGF0YUZvcm1hdEpTQm9vbGVhbik7CisgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTMwMjEsNyArMzA1NSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYywgcmVz
dWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CiAgICAgICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CiAgICAgICAgIAotICAgICAgICAvLyBJZiB3ZSBhZGQgYSBEYXRhRm9ybWF0Qm9v
bCwgd2Ugc2hvdWxkIHVzZSBpdCBoZXJlLgogICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0z
MihWYWx1ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1
bHQuZ3ByKCksIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICBicmVhazsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJl
dmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxNyw2ICsxMjE3LDE4IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAg
IH0KIAorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RVJlb0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMik7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVz
dWx0KTsKKyAgICB9CisKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VSZW9Kc3Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwg
R1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMik7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CisKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VXcyBvcGVyYXRpb24sIFdhdGNocG9pbnRTZXQqIHdhdGNo
cG9pbnRTZXQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoVHJ1c3RlZEltbVB0cih3YXRjaHBvaW50U2V0KSk7CkBAIC0xNDM0LDYgKzE0NDYsMTYgQEAg
cHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMik7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVz
dWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9w
ZXJhdGlvbl9FUmVvSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJS
ZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0
aW9uLCByZXN1bHQpOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFNfSklUT3BlcmF0aW9uX0VSZW9Kc3Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcg
YXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVz
dWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VQUCBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CkBAIC0xNzAwLDYgKzE3MjIsMTYgQEAg
cHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
VHJ1c3RlZEltbVB0cihjZWxsKSwgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFy
ZzJUYWcpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJl
c3VsdCk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRVJlb0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0
UGF5bG9hZCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQp
CisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMlBheWxvYWQsIGFyZzJUYWcpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3Vs
dChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CisgICAgfQorICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVJlb0pzcyBvcGVyYXRp
b24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMSwg
R1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMik7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKKyAgICB9CiAgICAgSklUQ29tcGls
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FU3NpQ0kgb3BlcmF0aW9uLCBH
UFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBHUFJSZWcgYXJnMSwgY29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKICAg
ICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1t
UHRyKHN0dWJJbmZvKSwgYXJnMSwgVHJ1c3RlZEltbVB0cih1aWQpKTsKQEAgLTE3OTcsNiArMTgy
OSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RV
TU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
U2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FUmVvSiBvcGVyYXRpb24sIEdQUlJlZyBy
ZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQor
ICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzJQYXlsb2FkLCBhcmcyVGFnKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFNfSklUT3BlcmF0aW9uX0VSZW9Kc3Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBH
UFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
U2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVz
dWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcx
UGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKICAgICB7CiAgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwg
YXJnMlRhZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCShyZXZpc2lvbiAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NDAsMTAgKzY0NDAsMTgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcGlsZVJlZ0V4cEV4ZWMoKQogICAgIHsKLSAgICAg
ICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UKLSAgICAgICAgICAg
ICYmIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IENlbGxVc2UpIHsKLSAgICAgICAgICAg
IExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExW
YWx1ZSBhcmd1bWVudCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIGlmICht
X25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBSZWdFeHBPYmplY3RVc2UpIHsKKyAgICAgICAg
ICAgIExWYWx1ZSBiYXNlID0gbG93UmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0g
U3RyaW5nVXNlKSB7CisgICAgICAgICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0gbG93U3RyaW5n
KG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNh
bGwoCisgICAgICAgICAgICAgICAgICAgIEludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9u
UmVnRXhwRXhlY1N0cmluZyksIG1fY2FsbEZyYW1lLCBiYXNlLCBhcmd1bWVudCk7CisgICAgICAg
ICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIHNldEpTVmFsdWUoCiAg
ICAgICAgICAgICAgICAgdm1DYWxsKEludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uUmVn
RXhwRXhlYyksIG1fY2FsbEZyYW1lLCBiYXNlLCBhcmd1bWVudCkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtNjQ1NywxMCArNjQ2NSwxOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21waWxl
UmVnRXhwVGVzdCgpCiAgICAgewotICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gQ2VsbFVzZQotICAgICAgICAgICAgJiYgbV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkg
PT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGFyZ3VtZW50ID0gbG93Q2VsbChtX25vZGUt
PmNoaWxkMigpKTsKKyAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJl
Z0V4cE9iamVjdFVzZSkgeworICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dSZWdFeHBPYmpl
Y3QobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtX25v
ZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICBM
VmFsdWUgYXJndW1lbnQgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IHZtQ2FsbCgKKyAgICAgICAgICAgICAgICAgICAgSW50MzIs
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nKSwgbV9jYWxsRnJhbWUs
IGJhc2UsIGFyZ3VtZW50KTsKKyAgICAgICAgICAgICAgICBzZXRCb29sZWFuKHJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMVmFs
dWUgYXJndW1lbnQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAg
c2V0Qm9vbGVhbigKICAgICAgICAgICAgICAgICB2bUNhbGwoSW50MzIsIG1fb3V0Lm9wZXJhdGlv
bihvcGVyYXRpb25SZWdFeHBUZXN0KSwgbV9jYWxsRnJhbWUsIGJhc2UsIGFyZ3VtZW50KSk7CiAg
ICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAkocmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQsOCBAQCB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKCiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUGMpKEV4ZWNTdGF0ZSosIEluc3Ry
dWN0aW9uKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSnNjQykoRXhlY1N0YXRlKiwgSlNTY29wZSosIEpTQ2VsbCopOwogdHlwZWRlZiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzY0NKKShFeGVj
U3RhdGUqLCBKU1Njb3BlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVJlb0opKEV4ZWNTdGF0
ZSosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VSZW9Kc3MpKEV4ZWNTdGF0ZSosIFJl
Z0V4cE9iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FU1MpKEV4ZWNTdGF0ZSosIHNpemVfdCwgc2l6ZV90KTsK
IHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VT
c2lDSSkoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBKU0NlbGwqLCBVbmlxdWVkU3Ry
aW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRVNzaUpJKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwpAQCAtMjAyLDYgKzIwNCw4IEBAIHR5cGVkZWYg
c2l6ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXIKIHR5cGVkZWYgc2l6ZV90IEpJVF9PUEVS
QVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwog
dHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VKSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IEpJ
VF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FT0pzcykoRXhlY1N0YXRlKiwgSlNPYmplY3Qq
LCBKU1N0cmluZyopOwordHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0
aW9uX0VSZW9KKShFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7Cit0
eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fRVJlb0pzcykoRXhl
Y1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgc2l6ZV90IEpJVF9P
UEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9KKShFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIFNs
b3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OICgqU3BydF9KSVRPcGVyYXRpb25fRVopKEV4
ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbikoKTsK
</data>
<flag name="review"
          id="297708"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273107</attachid>
            <date>2016-03-05 16:16:36 -0800</date>
            <delta_ts>2016-03-05 16:16:36 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26510</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE2LTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIG1vc3QgYWdncmVzc2l2ZSBmb3JtIG9mIFJlZ0V4cFRlc3QvUmVnRXhwRXhlYyBzaG91bGQg
c3BlY3VsYXRlIG1vcmUgYWdncmVzc2l2ZWx5IHRoYW4ganVzdCBjZWxsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MDAKKworICAgICAgICBSZXZp
ZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBUaGVzZSBvbGQgb3BlcmF0aW9ucyB1c2Vk
IHRvIHNwZWN1bGF0ZSBjZWxsLiBUaGF0J3Mgd2hhdCB0aGV5IGRpZCB3aGVuIHRoZXkgd2VyZSBm
aXJzdAorICAgICAgICBpbnRyb2R1Y2VkLiBUaGF0IHdhcyBwcm9iYWJseSBhYm91dCBhcyBnb29k
IGFzIHRoZXkgY291bGQgZG8gYmFjayB0aGVuIGJlY2F1c2Ugd2UgZGlkbid0IGhhdmUKKyAgICAg
ICAgdmVyeSBwb3dlcmZ1bCBjaGVja3MuIE5vdyB3ZSBoYXZlIHBvd2VyZnVsIGNoZWNrcywgc28g
d2UgY2FuIGRvIHRoaXMgcmlnaHQuCisKKyAgICAgICAgVGhlIG1vc3QgcHJvZml0YWJsZSB0aGlu
ZyB0byBjaGVjayBpcyB0aGF0IGNoaWxkMSBpcyBhIFJlZ0V4cE9iamVjdCBhbmQgY2hpbGQyIGlz
IGEgSlNTdHJpbmcuCisgICAgICAgIFNvbWV0aW1lcyB0aG91Z2gsIHdlIHdpbGwgbm90IGtub3cg
d2hhdCBjaGlsZDIgaXMgZXZlbiB0aG91Z2ggd2Uga25vdyB0aGF0IGNoaWxkMSBpcyBhCisgICAg
ICAgIFJlZ0V4cE9iamVjdC4gU28sIHRoaXMgcGF0Y2ggbWVhbnMgdGhhdCBSZWdFeHBFeGVjL1Jl
Z0V4cFRlc3QgaGF2ZSB0aGUgZm9sbG93aW5nIG92ZXJsb2FkczoKKworICAgICAgICAgICAgUmVn
RXhwRXhlYyhSZWdFeHBPYmplY3Q6LCBTdHJpbmc6KQorICAgICAgICAgICAgUmVnRXhwRXhlYyhS
ZWdFeHBPYmplY3Q6LCBVbnR5cGVkOikKKyAgICAgICAgICAgIFJlZ0V4cEV4ZWMoVW50eXBlZDos
IFVudHlwZWQ6KQorCisgICAgICAgIFRoaXMgc2hhdmVzIG9mZiBzb21lIHR5cGUgY2hlY2tzIGlu
IE9jdGFuZS9yZWdleHAuIEl0IGFsc28gY2xlYW5zIHVwIHNvbWUgcHJvYmxlbXMgaW4gb3VyCisg
ICAgICAgIG1vZGVsaW5nIG9mIHRoZSBlZmZlY3RmdWxuZXNzIG9mIHRoZXNlIG9wZXJhdGlvbnMu
CisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZn
L0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVJl
Z0V4cEV4ZWMpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
UmVnRXhwVGVzdCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKwogMjAxNi0wMy0w
NSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2
XSBTdXBwb3J0IFJlZmxlY3QuY29uc3RydWN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZp
c2lvbiAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NTQsMTAgKzE1NTQsMjAgQEAg
Ym9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIH0KICAgICAgICAg
ICAgIAogICAgIGNhc2UgUmVnRXhwRXhlYzoKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBSZWdFeHBPYmplY3RVc2UKKyAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigp
LnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgZG9lc24ndCBj
bG9iYmVyIHRoZSB3b3JsZCBzaW5jZSB0aGVyZSBhcmUgbm8gY29udmVyc2lvbnMgdG8gcGVyZm9y
bS4KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2lu
LnNlbWFudGljLCBjbG9iYmVyTGltaXQpOwogICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VIZWFw
VG9wKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSZWdFeHBUZXN0OgorICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZQorICAgICAgICAg
ICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAg
ICAgLy8gVGhpcyBkb2Vzbid0IGNsb2JiZXIgdGhlIHdvcmxkIHNpbmNlIHRoZXJlIGFyZSBubyBj
b252ZXJzaW9ucyB0byBwZXJmb3JtLgorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNsb2Ji
ZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGZv
ck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAko
cmV2aXNpb24gMTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNzgsOCArMTA3OCwxNCBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAg
Y2FzZSBSZWdFeHBUZXN0OgotICAgICAgICByZWFkKFJlZ0V4cFN0YXRlKTsKLSAgICAgICAgd3Jp
dGUoUmVnRXhwU3RhdGUpOworICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09
IFJlZ0V4cE9iamVjdFVzZQorICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgp
ID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgcmVhZChSZWdFeHBTdGF0ZSk7CisgICAgICAg
ICAgICB3cml0ZShSZWdFeHBTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICByZXR1
cm47CiAKICAgICBjYXNlIFN0cmluZ1JlcGxhY2U6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3
OSwxMyArODc5LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBSZWdF
eHBFeGVjOgogICAgICAgICBjYXNlIFJlZ0V4cFRlc3Q6IHsKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGVzZSBzaG91bGQgcHJvYmFibHkgc3BlY3VsYXRlIHNvbWV0aGluZyBzdHJvbmdlciB0aGFu
IGNlbGwuCi0gICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0OTAwCi0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUNlbGwoKQotICAgICAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVj
dWxhdGVDZWxsKCkpIHsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigp
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlUmVnRXhwT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBmaXhF
ZGdlPFJlZ0V4cE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgICAgICAgICAg
aWYgKG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKKyAgICAgICAgICAg
ICAgICAgICAgZml4RWRnZTxTdHJpbmdVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYxOSwyMyArNjE5LDI1IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5LT5wb3AoZXhlYykpOwogfQogICAg
ICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlYyhF
eGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiBhcmd1bWVudCkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZyhFeGVjU3RhdGUq
IGV4ZWMsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogYXJndW1lbnQpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CiAgICAgCi0gICAgaWYgKCFiYXNlLT5pbmhlcml0cyhSZWdFeHBPYmpl
Y3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwT2JqZWN0LT5leGVjKGV4ZWMsIGFyZ3VtZW50
KSk7Cit9CisgICAgICAgIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBFeGVjKEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgp
OworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICAKKyAg
ICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAK
LSAgICBKU1N0cmluZyogaW5wdXQ7Ci0gICAgaWYgKGFyZ3VtZW50LT5pc1N0cmluZygpKQotICAg
ICAgICBpbnB1dCA9IGFzU3RyaW5nKGFyZ3VtZW50KTsKLSAgICBlbHNlIHsKLSAgICAgICAgaW5w
dXQgPSBKU1ZhbHVlKGFyZ3VtZW50KS50b1N0cmluZ09yTnVsbChleGVjKTsKLSAgICAgICAgaWYg
KCFpbnB1dCkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgfQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBPYmplY3QoYmFz
ZSktPmV4ZWMoZXhlYywgaW5wdXQpKTsKKyAgICBKU1N0cmluZyogaW5wdXQgPSBhcmd1bWVudC50
b1N0cmluZ09yTnVsbChleGVjKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVnRXhwT2JqZWN0LT5leGVjKGV4ZWMsIGlucHV0KSk7CiB9CiAgICAgICAgIAogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QXJndW1lbnQpCkBAIC02NTUsMjUgKzY1NywyNSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblJlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cE9iamVj
dChiYXNlKS0+ZXhlYyhleGVjLCBpbnB1dCkpOwogfQogICAgICAgICAKLXNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2Us
IEpTQ2VsbCogYXJndW1lbnQpCitzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBU
ZXN0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpT
U3RyaW5nKiBpbnB1dCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIGlmICghYmFzZS0+aW5oZXJp
dHMoUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiByZWdFeHBPYmplY3Qt
PnRlc3QoZXhlYywgaW5wdXQpOworfQogCi0gICAgSlNTdHJpbmcqIGlucHV0OwotICAgIGlmIChh
cmd1bWVudC0+aXNTdHJpbmcoKSkKLSAgICAgICAgaW5wdXQgPSBhc1N0cmluZyhhcmd1bWVudCk7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlucHV0ID0gSlNWYWx1ZShhcmd1bWVudCkudG9TdHJpbmdP
ck51bGwoZXhlYyk7Ci0gICAgICAgIGlmICghaW5wdXQpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChiYXNlKS0+dGVzdChleGVjLCBp
bnB1dCk7CitzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0KEV4ZWNTdGF0
ZSogZXhlYywgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRBcmd1bWVudCkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKworICAgIEpTVmFsdWUgYXJndW1lbnQgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKKworICAgIEpTU3RyaW5nKiBpbnB1dCA9
IGFyZ3VtZW50LnRvU3RyaW5nT3JOdWxsKGV4ZWMpOworICAgIGlmICghaW5wdXQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcmVnRXhwT2JqZWN0LT50ZXN0KGV4ZWMsIGlucHV0
KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEFyZ3VtZW50KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsMTAgKzEwMSwxMiBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZShFeGVjU3RhdGUqLCBkb3VibGUg
dmFsdWUsIEpTQXJyYXkqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFycmF5UG9wKEV4ZWNTdGF0ZSosIEpTQXJyYXkqKSBXVEZfSU5URVJOQUw7
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zl
ckxlbmd0aChFeGVjU3RhdGUqLCBKU0FycmF5KikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEV4ZWNTdGF0ZSosIEpTQ2VsbCos
IEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVnRXhwRXhlY1N0cmluZyhFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmlu
ZyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UmVnRXhwRXhlYyhFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBF
eGVjR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdU
Rl9JTlRFUk5BTDsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0aGlu
IGEgc2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxsIHRo
ZSByZWdpc3Rlci4KLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworc2l6ZV90IEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZyhFeGVjU3RhdGUqLCBSZWdFeHBPYmplY3Qq
LCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlZ0V4cFRlc3QoRXhlY1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdU
Rl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5l
cmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaWN0RXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lv
biAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODM2LDE3ICsyODM2LDQwIEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9CiAKICAgICBjYXNlIFJlZ0V4
cEV4ZWM6IHsKLSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNl
Ci0gICAgICAgICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewor
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZSkg
eworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2Up
IHsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVu
dCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIg
PSBiYXNlLmdwcigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3Vt
ZW50LmdwcigpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5j
aGlsZDEoKSwgYmFzZUdQUik7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUt
PmNoaWxkMigpLCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3Vs
dDIgcmVzdWx0VGFnKHRoaXMpOworICAgICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0
IHJlc3VsdFBheWxvYWQodGhpcyk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAg
ICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZywgcmVzdWx0VGFnLmdw
cigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgICAgICBh
cmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZy5n
cHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgbm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxP
cGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIGFyZ3Vt
ZW50R1BSID0gYXJndW1lbnQuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcgYXJndW1lbnRUYWdH
UFIgPSBhcmd1bWVudC50YWdHUFIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudFBheWxv
YWRHUFIgPSBhcmd1bWVudC5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBzcGVjdWxhdGVSZWdF
eHBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOwogICAgICAgICAKICAgICAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdDIgcmVz
dWx0VGFnKHRoaXMpOwogICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0UGF5
bG9hZCh0aGlzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVnRXhwRXhl
YywgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBiYXNlR1BSLCBhcmd1bWVu
dEdQUik7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgIG9wZXJh
dGlvblJlZ0V4cEV4ZWMsIHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgYmFz
ZUdQUiwgYXJndW1lbnRUYWdHUFIsCisgICAgICAgICAgICAgICAgYXJndW1lbnRQYXlsb2FkR1BS
KTsKICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIAogICAgICAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCks
IG5vZGUpOwpAQCAtMjg3MSwxNiArMjg5NCwzNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFJlZ0V4cFRlc3Q6IHsK
LSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlCi0gICAgICAg
ICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgeworICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZSkgeworICAgICAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAg
ICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3VtZW50Lmdwcigp
OworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDEoKSwg
YmFzZUdQUik7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMigp
LCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBUZXN0
U3RyaW5nLCByZXN1bHQuZ3ByKCksIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAg
ICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAg
ICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVudC5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBhcmd1
bWVudFRhZ0dQUiA9IGFyZ3VtZW50LnRhZ0dQUigpOworICAgICAgICAgICAgR1BSUmVnIGFyZ3Vt
ZW50UGF5bG9hZEdQUiA9IGFyZ3VtZW50LnBheWxvYWRHUFIoKTsKKyAgICAgICAgICAgIHNwZWN1
bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CiAgICAgICAgIAogICAg
ICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVz
dWx0IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVn
RXhwVGVzdCwgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgIG9wZXJhdGlvblJlZ0V4cFRlc3QsIHJl
c3VsdC5ncHIoKSwgYmFzZUdQUiwgYXJndW1lbnRUYWdHUFIsIGFyZ3VtZW50UGF5bG9hZEdQUik7
CiAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICAKICAgICAgICAg
ICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24g
MTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2MiwxMiArMjk2MiwyOSBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAgY2FzZSBSZWdFeHBFeGVj
OiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZQotICAg
ICAgICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IENlbGxVc2UpIHsKKyAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBSZWdFeHBPYmplY3RVc2UpIHsKKyAg
ICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7Cisg
ICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJndW1lbnQodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFz
ZS5ncHIoKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVudC5n
cHIoKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qobm9kZS0+Y2hpbGQx
KCksIGJhc2VHUFIpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGls
ZDIoKSwgYXJndW1lbnRHUFIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZs
dXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOworICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVnRXhw
RXhlY1N0cmluZywgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CisgICAgICAg
ICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKICAgICAgICAgICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwor
ICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgICAgICAgICAg
R1BSUmVnIGFyZ3VtZW50R1BSID0gYXJndW1lbnQuZ3ByKCk7CisgICAgICAgICAgICBzcGVjdWxh
dGVSZWdFeHBPYmplY3Qobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOwogICAgICAgICAKICAgICAg
ICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3Vs
dCByZXN1bHQodGhpcyk7CkBAIC0yOTkzLDIxICszMDEwLDM4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9CiAKICAgICBjYXNlIFJlZ0V4cFRlc3Q6IHsK
LSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlCi0gICAgICAg
ICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgeworICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZSkgeworICAgICAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAg
ICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3VtZW50Lmdwcigp
OworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDEoKSwg
YmFzZUdQUik7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMigp
LCBhcmd1bWVudEdQUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBUZXN0
U3RyaW5nLCByZXN1bHQuZ3ByKCksIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKKyAgICAgICAgICAg
ICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkp
OworICAgICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7CisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5j
aGlsZDIoKSk7CiAgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAg
ICAgICAgICBHUFJSZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVudC5ncHIoKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CiAgICAgICAg
IAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIEdQUkZsdXNoZWRD
YWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uUmVnRXhwVGVzdCwgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBhcmd1bWVudEdQUik7CiAgICAg
ICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICAKLSAgICAgICAgICAgIC8v
IElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91bGQgdXNlIGl0IGhlcmUuCiAgICAg
ICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0Lmdwcigp
KTsKLSAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlLCBEYXRhRm9y
bWF0SlNCb29sZWFuKTsKKyAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBu
b2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMzAyMSw3
ICszMDU1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCByZXN1bHQuZ3By
KCksIGJhc2VHUFIsIGFyZ3VtZW50R1BSKTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2so
KTsKICAgICAgICAgCi0gICAgICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBz
aG91bGQgdXNlIGl0IGhlcmUuCiAgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVl
RmFsc2UpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIo
KSwgbm9kZSwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24g
MTk3NjE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjE3LDYgKzEyMTcsMTggQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogCisg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FUmVvSiBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7
CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwor
ICAgIH0KKworICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRVJlb0pzcyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcg
YXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9u
LCByZXN1bHQpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVdzIG9wZXJhdGlvbiwgV2F0Y2hwb2ludFNldCogd2F0Y2hwb2ludFNl
dCkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVz
dGVkSW1tUHRyKHdhdGNocG9pbnRTZXQpKTsKQEAgLTE0MzQsNiArMTQ0NiwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9u
X0VSZW9KIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJl
c3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRP
cGVyYXRpb25fRVJlb0pzcyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3Bl
cmF0aW9uLCByZXN1bHQpOworICAgIH0KIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRVBQIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVn
IGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKQEAgLTE3MDAsNiArMTcyMiwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVk
SW1tUHRyKGNlbGwpLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7
CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsK
ICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FUmVvSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2Fk
LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKKyAgICB7
CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyUGF5
bG9hZCwgYXJnMlRhZyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FUmVvSnNzIG9wZXJhdGlvbiwgR1BS
UmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxLCBHUFJSZWcg
YXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9u
LCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOworICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VTc2lDSSBvcGVyYXRpb24sIEdQUlJlZyBy
ZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIEdQUlJlZyBhcmcxLCBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1
YkluZm8pLCBhcmcxLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpAQCAtMTc5Nyw2ICsxODI5LDE2IEBA
IHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklf
MzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBTSDRfMzJCSVRfRFVNTVlfQVJH
IGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1
bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VSZW9KIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwg
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCisgICAgewor
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxv
YWQsIGFyZzJUYWcpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRp
b24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
U19KSVRPcGVyYXRpb25fRVJlb0pzcyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1
bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcs
IEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2Fk
LCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogICAgIHsKICAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQ
YXlsb2FkLCBhcmcxVGFnLCBTSDRfMzJCSVRfRFVNTVlfQVJHIGFyZzJQYXlsb2FkLCBhcmcyVGFn
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAJKHJldmlzaW9uIDE5NzYxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ0MCwxMCArNjQ0MCwxOCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBjb21waWxlUmVnRXhwRXhlYygpCiAgICAgewotICAgICAgICBpZiAo
bV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZQotICAgICAgICAgICAgJiYgbV9u
b2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgTFZhbHVl
IGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGFy
Z3VtZW50ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgaWYgKG1fbm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVzZSkgeworICAgICAgICAgICAgTFZh
bHVlIGJhc2UgPSBsb3dSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBTdHJpbmdV
c2UpIHsKKyAgICAgICAgICAgICAgICBMVmFsdWUgYXJndW1lbnQgPSBsb3dTdHJpbmcobV9ub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IHZtQ2FsbCgKKyAg
ICAgICAgICAgICAgICAgICAgSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBF
eGVjU3RyaW5nKSwgbV9jYWxsRnJhbWUsIGJhc2UsIGFyZ3VtZW50KTsKKyAgICAgICAgICAgICAg
ICBzZXRKU1ZhbHVlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYXJndW1lbnQgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgc2V0SlNWYWx1ZSgKICAgICAgICAg
ICAgICAgICB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25SZWdFeHBFeGVj
KSwgbV9jYWxsRnJhbWUsIGJhc2UsIGFyZ3VtZW50KSk7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC02NDU3LDEwICs2NDY1LDE4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbXBpbGVSZWdFeHBU
ZXN0KCkKICAgICB7Ci0gICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBD
ZWxsVXNlCi0gICAgICAgICAgICAmJiBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxs
VXNlKSB7Ci0gICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEo
KSk7Ci0gICAgICAgICAgICBMVmFsdWUgYXJndW1lbnQgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQy
KCkpOworICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2Jq
ZWN0VXNlKSB7CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd1JlZ0V4cE9iamVjdChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hp
bGQyKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgIExWYWx1ZSBh
cmd1bWVudCA9IGxvd1N0cmluZyhtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBM
VmFsdWUgcmVzdWx0ID0gdm1DYWxsKAorICAgICAgICAgICAgICAgICAgICBJbnQzMiwgbV9vdXQu
b3BlcmF0aW9uKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcpLCBtX2NhbGxGcmFtZSwgYmFzZSwg
YXJndW1lbnQpOworICAgICAgICAgICAgICAgIHNldEJvb2xlYW4ocmVzdWx0KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIExWYWx1ZSBhcmd1
bWVudCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBzZXRCb29s
ZWFuKAogICAgICAgICAgICAgICAgIHZtQ2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvblJlZ0V4cFRlc3QpLCBtX2NhbGxGcmFtZSwgYmFzZSwgYXJndW1lbnQpKTsKICAgICAgICAg
ICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAxOTc2MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw4IEBAIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VQYykoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24q
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VKc2NDKShFeGVjU3RhdGUqLCBKU1Njb3BlKiwgSlNDZWxsKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNjQ0opKEV4ZWNTdGF0ZSos
IEpTU2NvcGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUmVvSikoRXhlY1N0YXRlKiwgUmVn
RXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVJlb0pzcykoRXhlY1N0YXRlKiwgUmVnRXhwT2Jq
ZWN0KiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAo
KkpfSklUT3BlcmF0aW9uX0VTUykoRXhlY1N0YXRlKiwgc2l6ZV90LCBzaXplX3QpOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVNzaUNJKShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBs
Kik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlv
bl9FU3NpSkkpKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IFVuaXF1ZWRTdHJpbmdJbXBsKik7CkBAIC0yMDIsNiArMjA0LDggQEAgdHlwZWRlZiBzaXplX3Qg
SklUX09QRVJBVElPTiAoKlNfSklUT3BlcgogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAo
KlNfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVm
IHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJB
VElPTiAoKlNfSklUT3BlcmF0aW9uX0VPSnNzKShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTU3Ry
aW5nKik7Cit0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fRVJl
b0opKEV4ZWNTdGF0ZSosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYg
c2l6ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FUmVvSnNzKShFeGVjU3RhdGUq
LCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElP
TiAoKlNfSklUT3BlcmF0aW9uX0opKEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgU2xvd1BhdGhS
ZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gKCpTcHJ0X0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRl
KiwgaW50MzJfdCk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9u
KSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>