<?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>60810</bug_id>
          
          <creation_ts>2011-05-13 15:05:57 -0700</creation_ts>
          <short_desc>NPN_GetURL with a javascript: URL doesn&apos;t send back the result in the stream</short_desc>
          <delta_ts>2011-05-14 01:42:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>
          <dependson>60834</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403901</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-05-13 15:05:57 -0700</bug_when>
    <thetext>NPN_GetURL with a javascript: URL doesn&apos;t send back the result in the stream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403909</commentid>
    <comment_count>1</comment_count>
      <attachid>93522</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-05-13 15:18:25 -0700</bug_when>
    <thetext>Created attachment 93522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403918</commentid>
    <comment_count>2</comment_count>
      <attachid>93522</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-13 15:35:14 -0700</bug_when>
    <thetext>Comment on attachment 93522
Patch

Attachment 93522 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8695257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403919</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-05-13 15:37:41 -0700</bug_when>
    <thetext>Committed r86467: &lt;http://trac.webkit.org/changeset/86467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403920</commentid>
    <comment_count>4</comment_count>
      <attachid>93522</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-13 15:37:49 -0700</bug_when>
    <thetext>Comment on attachment 93522
Patch

Attachment 93522 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8695258</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93522</attachid>
            <date>2011-05-13 15:18:25 -0700</date>
            <delta_ts>2011-05-13 15:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60810-20110513151824.patch</filename>
            <type>text/plain</type>
            <size>36797</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2NDYzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDUtMTMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOUE5fR2V0VVJMIHdpdGggYSBqYXZhc2NyaXB0OiBVUkwg
ZG9lc24ndCBzZW5kIGJhY2sgdGhlIHJlc3VsdCBpbiB0aGUgc3RyZWFtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgxMAorCisgICAgICAgIEluIE5l
dHNjYXBlUGx1Z2luU3RyZWFtOjpzZW5kSmF2YVNjcmlwdFN0cmVhbSwgd2Ugd2VyZSBpbmNvcnJl
Y3RseSBwYXNzaW5nIHRoZSByZXN1bHQgVVJMCisgICAgICAgIHRvIHRoZSBzdHJlYW0sIGluc3Rl
YWQgb2YgdGhlIHJlc3VsdC4gQWxzbywgc3RvcmUgdGhlIHJlcXVlc3QgVVJMIGluIHRoZSBOZXRz
Y2FwZVBsdWdpblN0cmVhbSBvYmplY3QKKyAgICAgICAgdG8gYXZvaWQgc2VuZGluZyBpdCBvdmVy
IHRoZSB3aXJlLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmRpZEV2YWx1
YXRlSmF2YVNjcmlwdCk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bG9hZFVSTCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQp
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bWFudWFsU3RyZWFtRGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpblN0cmVh
bTo6TmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
blN0cmVhbTo6c2VuZEphdmFTY3JpcHRTdHJlYW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpblN0cmVhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5WaWV3OjpwZXJmb3JtSmF2YVNjcmlwdFVSTFJlcXVlc3QpOgorCiAyMDExLTA1LTEzICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDg2NDM5KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDIsOSArNDAyLDkgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6Omdlb21ldHJ5
RGlkQwogICAgIG1fcGx1Z2luLT5nZW9tZXRyeURpZENoYW5nZShmcmFtZVJlY3QsIGNsaXBSZWN0
KTsKIH0KIAotdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlw
dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgcmVxdWVzdFVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXN1bHQpCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGlkRXZhbHVh
dGVKYXZhU2NyaXB0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7
Ci0gICAgbV9wbHVnaW4tPmRpZEV2YWx1YXRlSmF2YVNjcmlwdChyZXF1ZXN0SUQsIHJlcXVlc3RV
UkxTdHJpbmcsIHJlc3VsdCk7CisgICAgbV9wbHVnaW4tPmRpZEV2YWx1YXRlSmF2YVNjcmlwdChy
ZXF1ZXN0SUQsIHJlc3VsdCk7CiB9CiAKIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzdHJl
YW1EaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IFN0cmluZyYgcmVz
cG9uc2VVUkxTdHJpbmcsIHVpbnQzMl90IHN0cmVhbUxlbmd0aCwgdWludDMyX3QgbGFzdE1vZGlm
aWVkVGltZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBoZWFkZXJzKQpJ
bmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5oCShyZXZpc2lvbiA4NjQzOSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsx
MTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVEaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90
IHJlcXVlc3RJRCk7CiAgICAgdm9pZCBmcmFtZURpZEZhaWwodWludDY0X3QgcmVxdWVzdElELCBi
b29sIHdhc0NhbmNlbGxlZCk7CiAgICAgdm9pZCBnZW9tZXRyeURpZENoYW5nZShjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgYmFja2luZ1N0b3JlSGFuZGxlKTsKLSAg
ICB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0
cmluZyYgcmVxdWVzdFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBy
ZXN1bHQpOwogICAgIHZvaWQgc3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHN0cmVh
bUlELCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVVJMU3RyaW5nLCB1aW50MzJfdCBzdHJlYW1MZW5n
dGgsIHVpbnQzMl90IGxhc3RNb2RpZmllZFRpbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgaGVhZGVycyk7CiAgICAgdm9pZCBzdHJlYW1EaWRSZWNlaXZlRGF0YSh1aW50
NjRfdCBzdHJlYW1JRCwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSk7CiAgICAg
dm9pZCBzdHJlYW1EaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IHN0cmVhbUlEKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4NjQzOSkKKysrIFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xsZXJQ
cm94eSB7CiAgICAgRnJhbWVEaWRGYWlsKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCB3YXNDYW5j
ZWxsZWQpCiAKICAgICAjIFNlbnQgd2hlbiBKYXZhU2NyaXB0IHRoYXQgdGhlIHBsdWctaW4gYXNr
ZWQgdG8gYmUgZXZhbHVhdGVkIGhhcyBiZWVuIGV2YWx1YXRlZC4KLSAgICBEaWRFdmFsdWF0ZUph
dmFTY3JpcHQodWludDY0X3QgcmVxdWVzdElELCBXVEY6OlN0cmluZyByZXF1ZXN0VVJMU3RyaW5n
LCBXVEY6OlN0cmluZyByZXN1bHQpCisgICAgRGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90
IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgcmVzdWx0KQogCiAgICAgIyBTZW50IHdoZW4gdGhlIHBs
dWctaW4gcmVjZWl2ZXMgYSByZXNwb25zZSBmb3IgYSBzdHJlYW0uCiAgICAgU3RyZWFtRGlkUmVj
ZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHN0cmVhbUlELCBXVEY6OlN0cmluZyByZXNwb25zZVVSTFN0
cmluZywgdWludDMyX3Qgc3RyZWFtTGVuZ3RoLCB1aW50MzJfdCBsYXN0TW9kaWZpZWRUaW1lLCBX
VEY6OlN0cmluZyBtaW1lVHlwZSwgV1RGOjpTdHJpbmcgaGVhZGVycykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgJKHJldmlzaW9uIDg2NDM5KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGVsbHMgdGhlIHBsdWctaW4g
dGhhdCBhIHJlcXVlc3QgdG8gZXZhbHVhdGUgSmF2YVNjcmlwdCAodXNpbmcgUGx1Z2luQ29udHJv
bGxlcjo6bG9hZFVSTCkgaGFzIGJlZW4gZnVsZmlsbGVkIGFuZCBwYXNzZXMKICAgICAvLyBiYWNr
IHRoZSByZXN1bHQuIElmIGV2YWx1YXRpbmcgdGhlIHNjcmlwdCBmYWlsZWQsIHJlc3VsdCB3aWxs
IGJlIG51bGwuCi0gICAgdmlydHVhbCB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgcmVxdWVzdFVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQpID0gMDsKIAogICAgIC8vIFRl
bGxzIHRoZSBwbHVnLWluIHRoYXQgYSBzdHJlYW0gaGFzIHJlY2VpdmVkIGl0cyBIVFRQIHJlc3Bv
bnNlLgogICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1EaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3Qg
c3RyZWFtSUQsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHJlc3BvbnNlVVJMLCB1aW50MzJfdCBzdHJl
YW1MZW5ndGgsIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuY3BwCShyZXZpc2lvbiA4NjQzOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMyw5
ICsyMzMsOSBAQCB2b2lkIFBsdWdpblByb3h5OjpmcmFtZURpZEZhaWwodWludDY0X3QgCiAgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6RnJhbWVEaWRGYWlsKHJlcXVlc3RJRCwgd2FzQ2FuY2VsbGVkKSwgbV9wbHVnaW5J
bnN0YW5jZUlEKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV1RGOjpTdHJpbmcmIHJlcXVlc3RVUkxTdHJpbmcs
IGNvbnN0IFdURjo6U3RyaW5nJiByZXN1bHQpCit2b2lkIFBsdWdpblByb3h5OjpkaWRFdmFsdWF0
ZUphdmFTY3JpcHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXVEY6OlN0cmluZyYgcmVzdWx0
KQogewotICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQbHVn
aW5Db250cm9sbGVyUHJveHk6OkRpZEV2YWx1YXRlSmF2YVNjcmlwdChyZXF1ZXN0SUQsIHJlcXVl
c3RVUkxTdHJpbmcsIHJlc3VsdCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CisgICAgbV9jb25uZWN0
aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
RGlkRXZhbHVhdGVKYXZhU2NyaXB0KHJlcXVlc3RJRCwgcmVzdWx0KSwgbV9wbHVnaW5JbnN0YW5j
ZUlEKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm94eTo6c3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKHVp
bnQ2NF90IHN0cmVhbUlELCBjb25zdCBLVVJMJiByZXNwb25zZVVSTCwgdWludDMyX3Qgc3RyZWFt
TGVuZ3RoLCB1aW50MzJfdCBsYXN0TW9kaWZpZWRUaW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBoZWFkZXJzKQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgJKHJldmlzaW9uIDg2NDM5KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdmlz
aWJpbGl0eURpZENoYW5nZSgpOwogICAgIHZpcnR1YWwgdm9pZCBmcmFtZURpZEZpbmlzaExvYWRp
bmcodWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEaWRGYWlsKHVp
bnQ2NF90IHJlcXVlc3RJRCwgYm9vbCB3YXNDYW5jZWxsZWQpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXVEY6OlN0cmlu
ZyYgcmVxdWVzdFVSTFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlc3VsdCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0
IFN0cmluZyYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlkUmVjZWl2ZVJlc3Bv
bnNlKHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBXZWJDb3JlOjpLVVJMJiByZXNwb25zZVVSTCwg
dWludDMyX3Qgc3RyZWFtTGVuZ3RoLCB1aW50MzJfdCBsYXN0TW9kaWZpZWRUaW1lLCBjb25zdCBX
VEY6OlN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiBoZWFkZXJzKTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RyZWFtRGlkUmVjZWl2ZURhdGEodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0
IGNoYXIqIGJ5dGVzLCBpbnQgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlkRmlu
aXNoTG9hZGluZyh1aW50NjRfdCBzdHJlYW1JRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCShyZXZpc2lvbiA4NjQzOSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzkxLDcgKzc5MSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUphdmFT
Y3JpcHRVUkxSZXEKICAgICByZXN1bHQuZ2V0U3RyaW5nKHNjcmlwdFN0YXRlLCByZXN1bHRTdHJp
bmcpOwogICAKICAgICAvLyBTZW5kIHRoZSByZXN1bHQgYmFjayB0byB0aGUgcGx1Zy1pbi4KLSAg
ICBwbHVnaW4tPmRpZEV2YWx1YXRlSmF2YVNjcmlwdChyZXF1ZXN0LT5yZXF1ZXN0SUQoKSwgZGVj
b2RlVVJMRXNjYXBlU2VxdWVuY2VzKHJlcXVlc3QtPnJlcXVlc3QoKS51cmwoKSksIHJlc3VsdFN0
cmluZyk7CisgICAgcGx1Z2luLT5kaWRFdmFsdWF0ZUphdmFTY3JpcHQocmVxdWVzdC0+cmVxdWVz
dElEKCksIHJlc3VsdFN0cmluZyk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6YWRkU3RyZWFtKFN0
cmVhbSogc3RyZWFtKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCShyZXZpc2lvbiA4
NjQzOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIE5l
dHNjYXBlUGx1Z2luOjpsb2FkVVJMKGNvbnN0IFN0cmluCiAKICAgICBpZiAodGFyZ2V0LmlzTnVs
bCgpKSB7CiAgICAgICAgIC8vIFRoZSBicm93c2VyIGlzIGdvaW5nIHRvIHNlbmQgdGhlIGRhdGEg
aW4gYSBzdHJlYW0sIGNyZWF0ZSBhIHBsdWctaW4gc3RyZWFtLgotICAgICAgICBSZWZQdHI8TmV0
c2NhcGVQbHVnaW5TdHJlYW0+IHBsdWdpblN0cmVhbSA9IE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpj
cmVhdGUodGhpcywgcmVxdWVzdElELCBzZW5kTm90aWZpY2F0aW9uLCBub3RpZmljYXRpb25EYXRh
KTsKKyAgICAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBwbHVnaW5TdHJlYW0gPSBO
ZXRzY2FwZVBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIHJlcXVlc3RJRCwgdXJsU3RyaW5nLCBz
ZW5kTm90aWZpY2F0aW9uLCBub3RpZmljYXRpb25EYXRhKTsKICAgICAgICAgQVNTRVJUKCFtX3N0
cmVhbXMuY29udGFpbnMocmVxdWVzdElEKSk7CiAKICAgICAgICAgbV9zdHJlYW1zLnNldChyZXF1
ZXN0SUQsIHBsdWdpblN0cmVhbS5yZWxlYXNlKCkpOwpAQCAtNjExLDEyICs2MTEsMTIgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdpbjo6ZnJhbWVEaWRGYWlsKHVpbnQ2NAogICAgIE5QUF9VUkxOb3RpZnko
dXJsLnV0ZjgoKS5kYXRhKCksIHdhc0NhbmNlbGxlZCA/IE5QUkVTX1VTRVJfQlJFQUsgOiBOUFJF
U19ORVRXT1JLX0VSUiwgbm90aWZpY2F0aW9uRGF0YSk7CiB9CiAKLXZvaWQgTmV0c2NhcGVQbHVn
aW46OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgcmVxdWVzdFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5ldHNjYXBl
UGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBT
dHJpbmcmIHJlc3VsdCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIAogICAgIGlm
IChOZXRzY2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtID0gc3RyZWFtRnJvbUlEKHJlcXVl
c3RJRCkpCi0gICAgICAgIHBsdWdpblN0cmVhbS0+c2VuZEphdmFTY3JpcHRTdHJlYW0ocmVxdWVz
dFVSTFN0cmluZywgcmVzdWx0KTsKKyAgICAgICAgcGx1Z2luU3RyZWFtLT5zZW5kSmF2YVNjcmlw
dFN0cmVhbShyZXN1bHQpOwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpzdHJlYW1EaWRSZWNl
aXZlUmVzcG9uc2UodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IEtVUkwmIHJlc3BvbnNlVVJMLCB1
aW50MzJfdCBzdHJlYW1MZW5ndGgsIApAQCAtNjU5LDcgKzY1OSw3IEBAIHZvaWQgTmV0c2NhcGVQ
bHVnaW46Om1hbnVhbFN0cmVhbURpZFJlY2UKICAgICBBU1NFUlQobV9sb2FkTWFudWFsbHkpOwog
ICAgIEFTU0VSVCghbV9tYW51YWxTdHJlYW0pOwogICAgIAotICAgIG1fbWFudWFsU3RyZWFtID0g
TmV0c2NhcGVQbHVnaW5TdHJlYW06OmNyZWF0ZSh0aGlzLCAwLCBmYWxzZSwgMCk7CisgICAgbV9t
YW51YWxTdHJlYW0gPSBOZXRzY2FwZVBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIDAsIHJlc3Bv
bnNlVVJMLnN0cmluZygpLCBmYWxzZSwgMCk7CiAgICAgbV9tYW51YWxTdHJlYW0tPmRpZFJlY2Vp
dmVSZXNwb25zZShyZXNwb25zZVVSTCwgc3RyZWFtTGVuZ3RoLCBsYXN0TW9kaWZpZWRUaW1lLCBt
aW1lVHlwZSwgaGVhZGVycyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCShyZXZp
c2lvbiA4NjQzOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdmlzaWJpbGl0eURpZENoYW5nZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBmcmFtZURpZEZpbmlzaExvYWRpbmcodWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVEaWRGYWlsKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCB3YXNDYW5j
ZWxsZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBTdHJpbmcmIHJlcXVlc3RVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQpOwogICAgIHZpcnR1YWwgdm9pZCBzdHJl
YW1EaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IFdlYkNvcmU6OktV
UkwmIHJlc3BvbnNlVVJMLCB1aW50MzJfdCBzdHJlYW1MZW5ndGgsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbGFzdE1vZGlmaWVkVGltZSwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBoZWFkZXJzKTsKICAgICB2aXJ0dWFs
IHZvaWQgc3RyZWFtRGlkUmVjZWl2ZURhdGEodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IGNoYXIq
IGJ5dGVzLCBpbnQgbGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmNwcAkocmV2aXNpb24gODY0MzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNCw5ICszNCwxMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotTmV0c2NhcGVQbHVnaW5TdHJlYW06Ok5ldHNjYXBlUGx1Z2luU3RyZWFtKFBhc3NSZWZQ
dHI8TmV0c2NhcGVQbHVnaW4+IHBsdWdpbiwgdWludDY0X3Qgc3RyZWFtSUQsIGJvb2wgc2VuZE5v
dGlmaWNhdGlvbiwgdm9pZCogbm90aWZpY2F0aW9uRGF0YSkKK05ldHNjYXBlUGx1Z2luU3RyZWFt
OjpOZXRzY2FwZVBsdWdpblN0cmVhbShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVnaW4s
IHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBTdHJpbmcmIHJlcXVlc3RVUkxTdHJpbmcsIGJvb2wg
c2VuZE5vdGlmaWNhdGlvbiwgdm9pZCogbm90aWZpY2F0aW9uRGF0YSkKICAgICA6IG1fcGx1Z2lu
KHBsdWdpbikKICAgICAsIG1fc3RyZWFtSUQoc3RyZWFtSUQpCisgICAgLCBtX3JlcXVlc3RVUkxT
dHJpbmcocmVxdWVzdFVSTFN0cmluZykKICAgICAsIG1fc2VuZE5vdGlmaWNhdGlvbihzZW5kTm90
aWZpY2F0aW9uKQogICAgICwgbV9ub3RpZmljYXRpb25EYXRhKG5vdGlmaWNhdGlvbkRhdGEpCiAg
ICAgLCBtX25wU3RyZWFtKCkKQEAgLTkxLDIwICs5MiwyMCBAQCB2b2lkIE5ldHNjYXBlUGx1Z2lu
U3RyZWFtOjpkaWRGYWlsKGJvb2wgCiAgICAgc3RvcCh3YXNDYW5jZWxsZWQgPyBOUFJFU19VU0VS
X0JSRUFLIDogTlBSRVNfTkVUV09SS19FUlIpOwogfQogICAgIAotdm9pZCBOZXRzY2FwZVBsdWdp
blN0cmVhbTo6c2VuZEphdmFTY3JpcHRTdHJlYW0oY29uc3QgU3RyaW5nJiByZXF1ZXN0VVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OnNl
bmRKYXZhU2NyaXB0U3RyZWFtKGNvbnN0IFN0cmluZyYgcmVzdWx0KQogewogICAgIC8vIHN0YXJ0
aW5nIHRoZSBzdHJlYW0gb3IgZGVsaXZlcmluZyB0aGUgZGF0YSB0byBpdCBtaWdodCBjYXVzZSB0
aGUgcGx1Zy1pbiBzdHJlYW0gdG8gZ28gYXdheSwgc28gd2Uga2VlcAogICAgIC8vIGEgcmVmZXJl
bmNlIHRvIGl0IGhlcmUuCiAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBwcm90ZWN0
KHRoaXMpOwogCi0gICAgQ1N0cmluZyByZXN1bHRDU3RyaW5nID0gcmVxdWVzdFVSTFN0cmluZy51
dGY4KCk7CisgICAgQ1N0cmluZyByZXN1bHRDU3RyaW5nID0gcmVzdWx0LnV0ZjgoKTsKICAgICBp
ZiAocmVzdWx0Q1N0cmluZy5pc051bGwoKSkgewogICAgICAgICAvLyBUaGVyZSB3YXMgYW4gZXJy
b3IgZXZhbHVhdGluZyB0aGUgSmF2YVNjcmlwdCwgY2FsbCBOUFBfVVJMTm90aWZ5IGlmIG5lZWRl
ZCBhbmQgdGhlbiBkZXN0cm95IHRoZSBzdHJlYW0uCiAgICAgICAgIG5vdGlmeUFuZERlc3Ryb3lT
dHJlYW0oTlBSRVNfTkVUV09SS19FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKCFzdGFydChyZXF1ZXN0VVJMU3RyaW5nLCByZXN1bHRDU3RyaW5nLmxlbmd0aCgpLCAwLCAi
dGV4dC9wbGFpbiIsICIiKSkKKyAgICBpZiAoIXN0YXJ0KG1fcmVxdWVzdFVSTFN0cmluZywgcmVz
dWx0Q1N0cmluZy5sZW5ndGgoKSwgMCwgInRleHQvcGxhaW4iLCAiIikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGRlbGl2ZXJEYXRhKHJlc3VsdENTdHJpbmcuZGF0YSgpLCByZXN1bHRDU3RyaW5n
Lmxlbmd0aCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCShyZXZp
c2lvbiA4NjQzOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5IEBA
IGNsYXNzIE5ldHNjYXBlUGx1Z2luOwogCiBjbGFzcyBOZXRzY2FwZVBsdWdpblN0cmVhbSA6IHB1
YmxpYyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShQYXNzUmVmUHRyPE5l
dHNjYXBlUGx1Z2luPiBwbHVnaW4sIHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHNlbmROb3RpZmlj
YXRpb24sIHZvaWQqIG5vdGlmaWNhdGlvbkRhdGEpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0
c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVn
aW4sIHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBTdHJpbmcmIHJlcXVlc3RVUkxTdHJpbmcsIGJv
b2wgc2VuZE5vdGlmaWNhdGlvbiwgdm9pZCogbm90aWZpY2F0aW9uRGF0YSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0c2NhcGVQbHVnaW5TdHJlYW0ocGx1Z2luLCBzdHJl
YW1JRCwgc2VuZE5vdGlmaWNhdGlvbiwgbm90aWZpY2F0aW9uRGF0YSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE5ldHNjYXBlUGx1Z2luU3RyZWFtKHBsdWdpbiwgc3RyZWFtSUQsIHJl
cXVlc3RVUkxTdHJpbmcsIHNlbmROb3RpZmljYXRpb24sIG5vdGlmaWNhdGlvbkRhdGEpKTsKICAg
ICB9CiAgICAgfk5ldHNjYXBlUGx1Z2luU3RyZWFtKCk7CiAKQEAgLTYwLDEzICs2MCwxMyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCk7CiAgICAgdm9pZCBkaWRGYWlsKGJv
b2wgd2FzQ2FuY2VsbGVkKTsKIAotICAgIHZvaWQgc2VuZEphdmFTY3JpcHRTdHJlYW0oY29uc3Qg
U3RyaW5nJiByZXF1ZXN0VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlc3VsdCk7CisgICAgdm9p
ZCBzZW5kSmF2YVNjcmlwdFN0cmVhbShjb25zdCBTdHJpbmcmIHJlc3VsdCk7CiAKICAgICB2b2lk
IHN0b3AoTlBSZWFzb24pOwogICAgIE5QRXJyb3IgZGVzdHJveShOUFJlYXNvbik7CiAKIHByaXZh
dGU6Ci0gICAgTmV0c2NhcGVQbHVnaW5TdHJlYW0oUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdpbj4s
IHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmaWNh
dGlvbkRhdGEpOworICAgIE5ldHNjYXBlUGx1Z2luU3RyZWFtKFBhc3NSZWZQdHI8TmV0c2NhcGVQ
bHVnaW4+LCB1aW50NjRfdCBzdHJlYW1JRCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0VVJMU3RyaW5n
LCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmaWNhdGlvbkRhdGEpOwogCiAgICAg
Ym9vbCBzdGFydChjb25zdCBTdHJpbmcmIHJlc3BvbnNlVVJMU3RyaW5nLCB1aW50MzJfdCBzdHJl
YW1MZW5ndGgsIAogICAgICAgICAgICAgICAgdWludDMyX3QgbGFzdE1vZGlmaWVkVGltZSwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBoZWFkZXJzKTsKQEAgLTgwLDcgKzgw
LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdpbj4gbV9wbHVnaW47CiAg
ICAgdWludDY0X3QgbV9zdHJlYW1JRDsKLSAgICAKKworICAgIFN0cmluZyBtX3JlcXVlc3RVUkxT
dHJpbmc7CiAgICAgYm9vbCBtX3NlbmROb3RpZmljYXRpb247CiAgICAgdm9pZCogbV9ub3RpZmlj
YXRpb25EYXRhOwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4NjQ2MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDExLTA1LTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTlBOX0dldFVSTCB3aXRoIGEgamF2YXNjcmlwdDogVVJMIGRvZXNuJ3Qgc2VuZCBi
YWNrIHRoZSByZXN1bHQgaW4gdGhlIHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MTAKKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgY2Fs
bHMgTlBOX0dldFVSTCBvbiBhIGphdmFzY3JpcHQ6IFVSTCBhbmQgY2hlY2tzIHRoYXQgaXQgZ2V0
cyBiYWNrIHRoZSBleHBlY3RlZCByZXN1bHQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
VGVzdE5ldHNjYXBlUGx1Z0luL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4udmNwcm9qOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVn
aW4ucHJvOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICBBZGQgZmlsZXMuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5j
cHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRl
c3QuaDoKKyAgICAgICAgQWRkIG5ldyBOUE4gYW5kIE5QUCB3cmFwcGVycyBhbmQgc29ydCB0aGVt
IGFjY29yZGluZyB0byB0aGUgb3JkZXIgdGhleSBhcHBlYXIgaW4gbnBmdW5jdGlvbnMuaAorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVSTFdp
dGhKYXZhU2NyaXB0VVJMLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRVUkxXaXRoSmF2YVNjcmlw
dFVSTDo6R2V0VVJMV2l0aEphdmFTY3JpcHRVUkwpOgorICAgICAgICAoR2V0VVJMV2l0aEphdmFT
Y3JpcHRVUkw6Ok5QUF9OZXcpOgorICAgICAgICAoR2V0VVJMV2l0aEphdmFTY3JpcHRVUkw6Ok5Q
UF9OZXdTdHJlYW0pOgorICAgICAgICAoR2V0VVJMV2l0aEphdmFTY3JpcHRVUkw6Ok5QUF9EZXN0
cm95U3RyZWFtKToKKyAgICAgICAgKEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMOjpOUFBfV3JpdGVS
ZWFkeSk6CisgICAgICAgIChHZXRVUkxXaXRoSmF2YVNjcmlwdFVSTDo6TlBQX1dyaXRlKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHA6CisgICAg
ICAgIChOUFBfTmV3U3RyZWFtKToKKyAgICAgICAgKE5QUF9Xcml0ZVJlYWR5KToKKyAgICAgICAg
KE5QUF9Xcml0ZSk6CisgICAgICAgIChOUFBfVVJMTm90aWZ5KToKKyAgICAgICAgY2FsbCB0aGUg
UGx1Z2luVGVzdCBOUFAgd3JhcHBlcnMuCisKIDIwMTEtMDUtMTMgIFJvYmVydCBIb2dhbiAgPHJv
YmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4u
CkluZGV4OiBUb29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9HTlVtYWtl
ZmlsZS5hbQkocmV2aXNpb24gODY0MzkpCisrKyBUb29scy9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw3IEBAIFRlc3ROZXRzY2FwZVBsdWdpbl9saWJ0ZXN0bmV0
c2NhcGVwbHVnaW4KIAlUb29scy9EdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2FwZVBsdWdp
bi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4vVGVzdHMvRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNwcCBcCiAJVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0V2YWx1YXRlSlNBZnRl
clJlbW92aW5nUGx1Z2luRWxlbWVudC5jcHAgXAorCVRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi9UZXN0cy9HZXRVUkxXaXRoSmF2YVNjcmlwdFVSTC5jcHAgXAogCVRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9HZXRVUkxXaXRoSmF2YVNj
cmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3BwIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VXNlckFnZW50V2l0aE51bGxOUFBGcm9tTlBQTmV3LmNw
cCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QRGVh
bGxvY2F0ZUNhbGxlZEJlZm9yZU5QU2h1dGRvd24uY3BwIFwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQkocmV2aXNpb24gODY0MzkpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1
Miw3IEBACiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RPYmplY3QuaCcsCiAg
ICAgICAgICAgICAnVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0RvY3VtZW50T3BlbkluRGVzdHJv
eVN0cmVhbS5jcHAnLAogICAgICAgICAgICAgJ1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9FdmFs
dWF0ZUpTQWZ0ZXJSZW1vdmluZ1BsdWdpbkVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdUZXN0
TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEphdmFTY3JpcHRVUkwuY3BwJywKICAgICAg
ICAgICAgICdUZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEphdmFTY3JpcHRVUkxE
ZXN0cm95aW5nUGx1Z2luLmNwcCcsCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBlUGx1Z0luL1Rl
c3RzL0dldFVzZXJBZ2VudFdpdGhOdWxsTlBQRnJvbU5QUE5ldy5jcHAnLAogICAgICAgICAgICAg
J1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUFJ1bnRpbWVPYmplY3RGcm9tRGVzdHJveWVkUGx1
Z2luLmNwcCcsCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDg2NDM5
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogCQkxQTI0QkFBOTEy
MDczNEVFMDBGQkIwNTkgLyogTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI0QkFBODEy
MDczNEVFMDBGQkIwNTkgLyogTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAg
Ki87IH07CiAJCTFBMzFFQjM4MTM0NjZBQzEwMDAxNzM3MiAvKiBDb252ZXJ0UG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzMUVCMzcxMzQ2
NkFDMTAwMDE3MzcyIC8qIENvbnZlcnRQb2ludC5jcHAgKi87IH07CiAJCTFBM0UyOEFBMTMxMUQ3
M0IwMDUwMTM0OSAvKiBHZXRVUkxXaXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzRTI4QTkx
MzExRDczQjAwNTAxMzQ5IC8qIEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdp
bi5jcHAgKi87IH07CisJCTFBNUNDMUY1MTM3REQyRUMwMEE1RDdFNyAvKiBHZXRVUkxXaXRoSmF2
YVNjcmlwdFVSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQTVDQzFGMzEzN0REMkVDMDBBNUQ3RTcgLyogR2V0VVJMV2l0aEphdmFTY3JpcHRVUkwu
Y3BwICovOyB9OwogCQkxQThGMDJFODBCQjlCNEVDMDA4Q0ZBMzQgLyogVGVzdE9iamVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE4RjAyNEMwQkI5
QjA1NjAwOENGQTM0IC8qIFRlc3RPYmplY3QuaCAqLzsgfTsKIAkJMUFDNkM4NDkwRDA3NjM4NjAw
Q0QzMTYxIC8qIG1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFDNkM3N0YwRDA3NTg5QjAwQ0QzMTYxIC8qIG1haW4uY3BwICovOyB9OwogCQkx
QUM2Qzg0QTBEMDc2Mzg2MDBDRDMxNjEgLyogUGx1Z2luT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzZDNzgwMEQwNzU4OUIwMENEMzE2
MSAvKiBQbHVnaW5PYmplY3QuY3BwICovOyB9OwpAQCAtMjE1LDYgKzIxNiw3IEBACiAJCTFBMjRC
QUE4MTIwNzM0RUUwMEZCQjA1OSAvKiBOUFJ1bnRpbWVPYmplY3RGcm9tRGVzdHJveWVkUGx1Z2lu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5QUnVudGltZU9iamVj
dEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTMxRUIzNzEzNDY2QUMxMDAwMTczNzIgLyogQ29udmVydFBvaW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnZlcnRQb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBM0UyOEE5MTMxMUQ3M0IwMDUwMTM0OSAvKiBHZXRVUkxXaXRoSmF2
YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2V0VVJMV2l0aEphdmFTY3JpcHRVUkxEZXN0cm95aW5nUGx1Z2luLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE1Q0MxRjMxMzdERDJFQzAwQTVEN0U3IC8q
IEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUE4RjAyNEMwQkI5QjA1NjAwOENGQTM0IC8qIFRlc3RPYmplY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdE9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQUM2Qzc3RjBEMDc1ODlCMDBDRDMxNjEgLyogbWFpbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBtYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFDNkM3ODAwRDA3NTg5QjAwQ0QzMTYxIC8qIFBsdWdpbk9iamVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5PYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg3LDYgKzQ4OSw3IEBACiAJCQkJ
MUEzMUVCMzYxMzQ2NkFDMTAwMDE3MzcyIC8qIG1hYyAqLywKIAkJCQkxQTIxNUE3NTExRjI2MDcy
MDA4QUQwRjUgLyogRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNwcCAqLywKIAkJCQlDMEU3
MjA3NDEyODFDODI4MDA0RUY1MzMgLyogRXZhbHVhdGVKU0FmdGVyUmVtb3ZpbmdQbHVnaW5FbGVt
ZW50LmNwcCAqLywKKwkJCQkxQTVDQzFGMzEzN0REMkVDMDBBNUQ3RTcgLyogR2V0VVJMV2l0aEph
dmFTY3JpcHRVUkwuY3BwICovLAogCQkJCTFBM0UyOEE5MTMxMUQ3M0IwMDUwMTM0OSAvKiBHZXRV
UkxXaXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3BwICovLAogCQkJCTFBRDRDQjIw
MTJBNkQxMzUwMDI3QTdBRiAvKiBHZXRVc2VyQWdlbnRXaXRoTnVsbE5QUEZyb21OUFBOZXcuY3Bw
ICovLAogCQkJCTFBQ0Y4OThCMTMyRUY0MUMwMEU5MTVENCAvKiBOUERlYWxsb2NhdGVDYWxsZWRC
ZWZvcmVOUFNodXRkb3duLmNwcCAqLywKQEAgLTc5OSw2ICs4MDIsNyBAQAogCQkJCTFBQ0Y4OThE
MTMyRUY0MUMwMEU5MTVENCAvKiBOUERlYWxsb2NhdGVDYWxsZWRCZWZvcmVOUFNodXRkb3duLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzFFQjM4MTM0NjZBQzEwMDAxNzM3MiAvKiBDb252ZXJ0
UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMTE4MkIxMzRFNEEyQjAwOTE5NzU3IC8q
IE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFBNUNDMUY1MTM3REQyRUMwMEE1RDdFNyAvKiBHZXRVUkxXaXRoSmF2YVNjcmlwdFVSTC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi9QbHVnaW5UZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHAJKHJldmlzaW9uIDg2NDM5KQorKysg
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05MiwzNyArOTIsNzMgQEAgTlBFcnJvciBQbHVnaW5UZXN0OjpOUFBf
RGVzdHJveShOUFNhdmVkRAogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotTlBFcnJv
ciBQbHVnaW5UZXN0OjpOUFBfRGVzdHJveVN0cmVhbShOUFN0cmVhbSAqc3RyZWFtLCBOUFJlYXNv
biByZWFzb24pCitOUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9TZXRXaW5kb3coTlBQLCBOUFdpbmRv
dyopCiB7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCi1OUEVycm9yIFBsdWdpblRl
c3Q6Ok5QUF9HZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCitOUEVy
cm9yIFBsdWdpblRlc3Q6Ok5QUF9OZXdTdHJlYW0oTlBNSU1FVHlwZSB0eXBlLCBOUFN0cmVhbSog
c3RyZWFtLCBOUEJvb2wgc2Vla2FibGUsIHVpbnQxNl90KiBzdHlwZSkKIHsKLSAgICAvLyBXZSBk
b24ndCBrbm93IGFueXRoaW5nIGFib3V0IHBsdWctaW4gdmFsdWVzIHNvIGp1c3QgcmV0dXJuIE5Q
RVJSX0dFTkVSSUNfRVJST1IuCi0gICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAg
cmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCi1OUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9TZXRX
aW5kb3coTlBQLCBOUFdpbmRvdyopCitOUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9EZXN0cm95U3Ry
ZWFtKE5QU3RyZWFtICpzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKIHsKICAgICByZXR1cm4gTlBF
UlJfTk9fRVJST1I7CiB9CiAKK2ludDMyX3QgUGx1Z2luVGVzdDo6TlBQX1dyaXRlUmVhZHkoTlBT
dHJlYW0qKQoreworICAgIHJldHVybiA0MDk2OworfQorCitpbnQzMl90IFBsdWdpblRlc3Q6Ok5Q
UF9Xcml0ZShOUFN0cmVhbSosIGludDMyX3Qgb2Zmc2V0LCBpbnQzMl90IGxlbiwgdm9pZCogYnVm
ZmVyKQoreworICAgIHJldHVybiBsZW47Cit9CisKIGludDE2X3QgUGx1Z2luVGVzdDo6TlBQX0hh
bmRsZUV2ZW50KHZvaWQqKQogewogICAgIHJldHVybiAwOwogfQogCi12b2lkIFBsdWdpblRlc3Q6
Ok5QTl9JbnZhbGlkYXRlUmVjdChOUFJlY3QqIGludmFsaWRSZWN0KQorYm9vbCBQbHVnaW5UZXN0
OjpOUFBfVVJMTm90aWZ5KGNvbnN0IGNoYXIqIHVybCwgTlBSZWFzb24sIHZvaWQqIG5vdGlmeURh
dGEpCiB7Ci0gICAgYnJvd3Nlci0+aW52YWxpZGF0ZXJlY3QobV9ucHAsIGludmFsaWRSZWN0KTsK
KyAgICAvLyBGSVhNRTogUG9ydCB0aGUgY29kZSBmcm9tIE5QUF9VUkxOb3RpZnkgaW4gbWFpbi5j
cHAgb3ZlciB0byBhbHdheXMgdXNpbmcKKyAgICAvLyBQbHVnaW5UZXN0LCBzbyB3ZSBkb24ndCBo
YXZlIHRvIHVzZSBhIHJldHVybiB2YWx1ZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSAiZGVmYXVs
dCIgTlBQX1VSTE5vdGlmeSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgaW52b2tlZC4KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK05QRXJyb3IgUGx1Z2luVGVzdDo6TlBQX0dldFZhbHVlKE5QUFZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1ZSkKK3sKKyAgICAvLyBXZSBkb24ndCBrbm93IGFu
eXRoaW5nIGFib3V0IHBsdWctaW4gdmFsdWVzIHNvIGp1c3QgcmV0dXJuIE5QRVJSX0dFTkVSSUNf
RVJST1IuCisgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CiB9CiAKKy8vIE5QTiBmdW5j
dGlvbnMuCisKIE5QRXJyb3IgUGx1Z2luVGVzdDo6TlBOX0dldFVSTChjb25zdCBjaGFyKiB1cmws
IGNvbnN0IGNoYXIqIHRhcmdldCkKIHsKICAgICByZXR1cm4gYnJvd3Nlci0+Z2V0dXJsKG1fbnBw
LCB1cmwsIHRhcmdldCk7CiB9CiAKK05QRXJyb3IgUGx1Z2luVGVzdDo6TlBOX0dldFVSTE5vdGlm
eShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRhcmdldCwgdm9pZCAqbm90aWZ5RGF0YSkK
K3sKKyAgICByZXR1cm4gYnJvd3Nlci0+Z2V0dXJsbm90aWZ5KG1fbnBwLCB1cmwsIHRhcmdldCwg
bm90aWZ5RGF0YSk7Cit9CisKK05QRXJyb3IgUGx1Z2luVGVzdDo6TlBOX0dldFZhbHVlKE5QTlZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYnJvd3Nlci0+Z2V0
dmFsdWUobV9ucHAsIHZhcmlhYmxlLCB2YWx1ZSk7Cit9CisKK3ZvaWQgUGx1Z2luVGVzdDo6TlBO
X0ludmFsaWRhdGVSZWN0KE5QUmVjdCogaW52YWxpZFJlY3QpCit7CisgICAgYnJvd3Nlci0+aW52
YWxpZGF0ZXJlY3QobV9ucHAsIGludmFsaWRSZWN0KTsKK30KKworLy8gTlBSdW50aW1lIE5QTiBm
dW5jdGlvbnMuCisKIE5QSWRlbnRpZmllciBQbHVnaW5UZXN0OjpOUE5fR2V0U3RyaW5nSWRlbnRp
Zmllcihjb25zdCBOUFVURjggKm5hbWUpCiB7CiAgICAgcmV0dXJuIGJyb3dzZXItPmdldHN0cmlu
Z2lkZW50aWZpZXIobmFtZSk7CkBAIC0xMzMsMTEgKzE2OSw2IEBAIE5QSWRlbnRpZmllciBQbHVn
aW5UZXN0OjpOUE5fR2V0SW50SWRlbnQKICAgICByZXR1cm4gYnJvd3Nlci0+Z2V0aW50aWRlbnRp
ZmllcihpbnRpZCk7CiB9CiAKLU5QRXJyb3IgUGx1Z2luVGVzdDo6TlBOX0dldFZhbHVlKE5QTlZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gYnJvd3Nlci0+Z2V0
dmFsdWUobV9ucHAsIHZhcmlhYmxlLCB2YWx1ZSk7Ci19Ci0KIE5QT2JqZWN0KiBQbHVnaW5UZXN0
OjpOUE5fQ3JlYXRlT2JqZWN0KE5QQ2xhc3MqIG5wQ2xhc3MpCiB7CiAgICAgcmV0dXJuIGJyb3dz
ZXItPmNyZWF0ZW9iamVjdChtX25wcCwgbnBDbGFzcyk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmgJKHJldmlzaW9u
IDg2NDM5KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdp
blRlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMjAgKzU5LDI4IEBAIHB1YmxpYzoKICAgICAv
LyBOUFAgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUg
cGx1Z2luVHlwZSwgdWludDE2X3QgbW9kZSwgaW50MTZfdCBhcmdjLCBjaGFyICphcmduW10sIGNo
YXIgKmFyZ3ZbXSwgTlBTYXZlZERhdGEgKnNhdmVkKTsKICAgICB2aXJ0dWFsIE5QRXJyb3IgTlBQ
X0Rlc3Ryb3koTlBTYXZlZERhdGEqKik7Ci0gICAgdmlydHVhbCBOUEVycm9yIE5QUF9EZXN0cm95
U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbik7Ci0gICAgdmlydHVhbCBO
UEVycm9yIE5QUF9HZXRWYWx1ZShOUFBWYXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgIHZpcnR1
YWwgTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCwgTlBXaW5kb3cqKTsKKyAgICB2aXJ0dWFsIE5Q
RXJyb3IgTlBQX05ld1N0cmVhbShOUE1JTUVUeXBlLCBOUFN0cmVhbSosIE5QQm9vbCBzZWVrYWJs
ZSwgdWludDE2X3QqIHN0eXBlKTsKKyAgICB2aXJ0dWFsIE5QRXJyb3IgTlBQX0Rlc3Ryb3lTdHJl
YW0oTlBTdHJlYW0qLCBOUFJlYXNvbik7CisgICAgdmlydHVhbCBpbnQzMl90IE5QUF9Xcml0ZVJl
YWR5KE5QU3RyZWFtKik7CisgICAgdmlydHVhbCBpbnQzMl90IE5QUF9Xcml0ZShOUFN0cmVhbSos
IGludDMyX3Qgb2Zmc2V0LCBpbnQzMl90IGxlbiwgdm9pZCogYnVmZmVyKTsKKyAgICAKICAgICB2
aXJ0dWFsIGludDE2X3QgTlBQX0hhbmRsZUV2ZW50KHZvaWQqIGV2ZW50KTsKKyAgICB2aXJ0dWFs
IGJvb2wgTlBQX1VSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIE5QUmVhc29uLCB2b2lkKiBub3Rp
ZnlEYXRhKTsKKyAgICB2aXJ0dWFsIE5QRXJyb3IgTlBQX0dldFZhbHVlKE5QUFZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSk7CiAKICAgICAvLyBOUE4gZnVuY3Rpb25zLgogICAgIE5QRXJyb3IgTlBOX0dl
dFVSTChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCk7Ci0gICAgCisgICAgTlBF
cnJvciBOUE5fR2V0VVJMTm90aWZ5KGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdGFyZ2V0
LCB2b2lkKiBub3RpZnlEYXRhKTsKKyAgICBOUEVycm9yIE5QTl9HZXRWYWx1ZShOUE5WYXJpYWJs
ZSwgdm9pZCogdmFsdWUpOwogICAgIHZvaWQgTlBOX0ludmFsaWRhdGVSZWN0KE5QUmVjdCogaW52
YWxpZFJlY3QpOworCisgICAgLy8gTlBSdW50aW1lIE5QTiBmdW5jdGlvbnMuCiAgICAgTlBJZGVu
dGlmaWVyIE5QTl9HZXRTdHJpbmdJZGVudGlmaWVyKGNvbnN0IE5QVVRGOCogbmFtZSk7CiAgICAg
TlBJZGVudGlmaWVyIE5QTl9HZXRJbnRJZGVudGlmaWVyKGludDMyX3QgaW50aWQpOwotICAgIE5Q
RXJyb3IgTlBOX0dldFZhbHVlKE5QTlZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CiAgICAgTlBPYmpl
Y3QqIE5QTl9DcmVhdGVPYmplY3QoTlBDbGFzcyopOwogICAgIGJvb2wgTlBOX1JlbW92ZVByb3Bl
cnR5KE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSk7CisKICNpZmRlZiBYUF9N
QUNPU1gKICAgICBib29sIE5QTl9Db252ZXJ0UG9pbnQoZG91YmxlIHNvdXJjZVgsIGRvdWJsZSBz
b3VyY2VZLCBOUENvb3JkaW5hdGVTcGFjZSBzb3VyY2VTcGFjZSwgZG91YmxlICpkZXN0WCwgZG91
YmxlICpkZXN0WSwgTlBDb29yZGluYXRlU3BhY2UgZGVzdFNwYWNlKTsKICNlbmRpZgpJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAko
cmV2aXNpb24gODY0MzkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4vbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Niw3ICszOTYsNyBAQCBOUEVycm9yIE5Q
UF9OZXdTdHJlYW0oTlBQIGluc3RhbmNlLCBOUE1JCiAgICAgaWYgKG9iai0+b25TdHJlYW1Mb2Fk
KQogICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vblN0cmVhbUxvYWQpOwogCi0gICAg
cmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgIHJldHVybiBvYmotPnBsdWdpblRlc3QtPk5QUF9O
ZXdTdHJlYW0odHlwZSwgc3RyZWFtLCBzZWVrYWJsZSwgc3R5cGUpOwogfQogCiBOUEVycm9yIE5Q
UF9EZXN0cm95U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBTdHJlYW0gKnN0cmVhbSwgTlBSZWFzb24g
cmVhc29uKQpAQCAtNDMxLDcgKzQzMSw4IEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3lTdHJlYW0oTlBQ
IGluc3RhbmNlLCAKIAogaW50MzJfdCBOUFBfV3JpdGVSZWFkeShOUFAgaW5zdGFuY2UsIE5QU3Ry
ZWFtICpzdHJlYW0pCiB7Ci0gICAgcmV0dXJuIDQwOTY7CisgICAgUGx1Z2luT2JqZWN0KiBvYmog
PSAoUGx1Z2luT2JqZWN0KilpbnN0YW5jZS0+cGRhdGE7CisgICAgcmV0dXJuIG9iai0+cGx1Z2lu
VGVzdC0+TlBQX1dyaXRlUmVhZHkoc3RyZWFtKTsKIH0KIAogaW50MzJfdCBOUFBfV3JpdGUoTlBQ
IGluc3RhbmNlLCBOUFN0cmVhbSAqc3RyZWFtLCBpbnQzMl90IG9mZnNldCwgaW50MzJfdCBsZW4s
IHZvaWQgKmJ1ZmZlcikKQEAgLTQ0MSw3ICs0NDIsNyBAQCBpbnQzMl90IE5QUF9Xcml0ZShOUFAg
aW5zdGFuY2UsIE5QU3RyZWFtCiAgICAgaWYgKG9iai0+cmV0dXJuTmVnYXRpdmVPbmVGcm9tV3Jp
dGUpCiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIHJldHVybiBsZW47CisgICAgcmV0dXJuIG9i
ai0+cGx1Z2luVGVzdC0+TlBQX1dyaXRlKHN0cmVhbSwgb2Zmc2V0LCBsZW4sIGJ1ZmZlcik7CiB9
CiAKIHZvaWQgTlBQX1N0cmVhbUFzRmlsZShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtICpzdHJlYW0s
IGNvbnN0IGNoYXIgKmZuYW1lKQpAQCAtNzE4LDggKzcxOSwxMCBAQCBpbnQxNl90IE5QUF9IYW5k
bGVFdmVudChOUFAgaW5zdGFuY2UsIHZvCiB2b2lkIE5QUF9VUkxOb3RpZnkoTlBQIGluc3RhbmNl
LCBjb25zdCBjaGFyICp1cmwsIE5QUmVhc29uIHJlYXNvbiwgdm9pZCAqbm90aWZ5RGF0YSkKIHsK
ICAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19jYXN0PFBsdWdpbk9iamVjdCo+KGluc3Rh
bmNlLT5wZGF0YSk7Ci0gCi0gICAgIGlmIChvYmotPm9uVVJMTm90aWZ5KQorICAgIGlmIChvYmot
PnBsdWdpblRlc3QtPk5QUF9VUkxOb3RpZnkodXJsLCByZWFzb24sIG5vdGlmeURhdGEpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAob2JqLT5vblVSTE5vdGlmeSkKICAgICAgICAgIGV4ZWN1
dGVTY3JpcHQob2JqLCBvYmotPm9uVVJMTm90aWZ5KTsKIAogICAgIGhhbmRsZUNhbGxiYWNrKG9i
aiwgdXJsLCByZWFzb24sIG5vdGlmeURhdGEpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVSTFdpdGhKYXZhU2NyaXB0VVJMLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMv
R2V0VVJMV2l0aEphdmFTY3JpcHRVUkwuY3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVSTFdpdGhKYXZhU2NyaXB0VVJM
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiUGx1Z2luVGVzdC5oIgorCisjaW5jbHVkZSA8dmVjdG9yPgorCit1c2luZyBuYW1lc3BhY2Ug
c3RkOworCitjb25zdCBjaGFyICpqYXZhU2NyaXB0VVJMID0gImphdmFzY3JpcHQ6J0hlbGxvLCAn
ICsgJ1dvcmxkISciOworY29uc3QgY2hhciAqamF2YVNjcmlwdFJlc3VsdCA9ICJIZWxsbywgV29y
bGQhIjsKKworLy8gVGVzdCB0aGF0IGV2YWx1YXRpbmcgYSBqYXZhc2NyaXB0OiBVUkwgd2lsbCBz
ZW5kIGEgc3RyZWFtIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGlvbi4KKy8vIFRlc3Qg
dGhhdCBldmFsdWF0aW5nIEphdmFTY3JpcHQgdXNpbmcgTlBOX0dldFVSTCB3aWxsIGEgc3RyZWFt
IHdpdGggcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uLgorY2xhc3MgR2V0VVJMV2l0aEphdmFTY3Jp
cHRVUkwgOiBwdWJsaWMgUGx1Z2luVGVzdCB7CitwdWJsaWM6CisgICAgR2V0VVJMV2l0aEphdmFT
Y3JpcHRVUkwoTlBQIG5wcCwgY29uc3Qgc3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IFBs
dWdpblRlc3QobnBwLCBpZGVudGlmaWVyKQorICAgICAgICAsIG1fZGlkRmFpbChmYWxzZSkKKyAg
ICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgTlBFcnJvciBOUFBfTmV3KE5QTUlN
RVR5cGUgcGx1Z2luVHlwZSwgdWludDE2X3QgbW9kZSwgaW50MTZfdCBhcmdjLCBjaGFyICphcmdu
W10sIGNoYXIgKmFyZ3ZbXSwgTlBTYXZlZERhdGEgKnNhdmVkKQorICAgIHsKKyAgICAgICAgTlBO
X0dldFVSTChqYXZhU2NyaXB0VVJMLCAwKTsKKyAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9S
OworICAgIH0KKworICAgIE5QRXJyb3IgTlBQX05ld1N0cmVhbShOUE1JTUVUeXBlIHR5cGUsIE5Q
U3RyZWFtKiBzdHJlYW0sIE5QQm9vbCBzZWVrYWJsZSwgdWludDE2X3QqIHN0eXBlKQorICAgIHsK
KyAgICAgICAgc3RyZWFtLT5wZGF0YSA9IHRoaXM7CisKKyAgICAgICAgaWYgKHN0cmNtcChzdHJl
YW0tPnVybCwgamF2YVNjcmlwdFVSTCkpCisgICAgICAgICAgICBtX2RpZEZhaWwgPSB0cnVlOwor
CisgICAgICAgIGlmIChzdHJlYW0tPmVuZCAhPSBzdHJsZW4oamF2YVNjcmlwdFJlc3VsdCkpCisg
ICAgICAgICAgICBtX2RpZEZhaWwgPSB0cnVlOworCisgICAgICAgICpzdHlwZSA9IE5QX05PUk1B
TDsKKyAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgIH0KKworICAgIE5QRXJyb3Ig
TlBQX0Rlc3Ryb3lTdHJlYW0oTlBTdHJlYW0qIHN0cmVhbSwgTlBSZWFzb24gcmVhc29uKQorICAg
IHsKKyAgICAgICAgaWYgKHN0cmVhbS0+cGRhdGEgIT0gdGhpcykKKyAgICAgICAgICAgIG1fZGlk
RmFpbCA9IHRydWU7CisKKyAgICAgICAgaWYgKHJlYXNvbiAhPSBOUFJFU19ET05FKQorICAgICAg
ICAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKKworICAgICAgICBpZiAobV9kYXRhLnNpemUoKSAhPSBz
dHJlYW0tPmVuZCkKKyAgICAgICAgICAgIG1fZGlkRmFpbCA9IHRydWU7CisKKyAgICAgICAgbV9k
YXRhLnB1c2hfYmFjaygnXDAnKTsKKworICAgICAgICBpZiAoc3RyY21wKCZtX2RhdGFbMF0sIGph
dmFTY3JpcHRSZXN1bHQpKQorICAgICAgICAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKKworICAgICAg
ICBpZiAoIW1fZGlkRmFpbCkKKyAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQoInRlc3RTdWNjZWVk
ZWQoKSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBleGVjdXRlU2NyaXB0KCJub3RpZnlE
b25lKCkiKTsKKworICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisgICAgfQorCisgICAg
aW50MzJfdCBOUFBfV3JpdGVSZWFkeShOUFN0cmVhbSogc3RyZWFtKQorICAgIHsKKyAgICAgICAg
aWYgKHN0cmVhbS0+cGRhdGEgIT0gdGhpcykKKyAgICAgICAgICAgIG1fZGlkRmFpbCA9IHRydWU7
CisKKyAgICAgICAgcmV0dXJuIDI7CisgICAgfQorCisgICAgaW50MzJfdCBOUFBfV3JpdGUoTlBT
dHJlYW0qIHN0cmVhbSwgaW50MzJfdCBvZmZzZXQsIGludDMyX3QgbGVuLCB2b2lkKiBidWZmZXIp
CisgICAgeworICAgICAgICBpZiAoc3RyZWFtLT5wZGF0YSAhPSB0aGlzKQorICAgICAgICAgICAg
bV9kaWRGYWlsID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIG1fZGF0YS5pbnNlcnQobV9kYXRh
LmVuZCgpLCBzdGF0aWNfY2FzdDxjaGFyKj4oYnVmZmVyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1
ZmZlcikgKyBsZW4pOworICAgICAgICByZXR1cm4gbGVuOworICAgIH0KKworICAgIHZlY3Rvcjxj
aGFyPiBtX2RhdGE7CisgICAgYm9vbCBtX2RpZEZhaWw7Cit9OworCitzdGF0aWMgUGx1Z2luVGVz
dDo6UmVnaXN0ZXI8R2V0VVJMV2l0aEphdmFTY3JpcHRVUkw+IGdldFVSTFdpdGhKYXZhU2NyaXB0
VVJMRGVzdHJveWluZ1BsdWdpbigiZ2V0LXVybC13aXRoLWphdmFzY3JpcHQtdXJsIik7CkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vd2luL1Rlc3ROZXRzY2Fw
ZVBsdWdpbi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4udmNwcm9qCShyZXZpc2lvbiA4NjQz
OSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5l
dHNjYXBlUGx1Z2luLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk4LDYgKzM5OCwxMCBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xH
ZXRVUkxXaXRoSmF2YVNjcmlwdFVSTC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJv
eWluZ1BsdWdpbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5wcm8KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi5wcm8JKHJldmlzaW9uIDg2NDM5KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAgU09VUkNFUyA9IFBsdWdpbk9iamVjdC5jcHAgXAogICAg
ICAgICAgIFRlc3RPYmplY3QuY3BwIFwKICAgICAgICAgICBUZXN0cy9Eb2N1bWVudE9wZW5JbkRl
c3Ryb3lTdHJlYW0uY3BwIFwKICAgICAgICAgICBUZXN0cy9FdmFsdWF0ZUpTQWZ0ZXJSZW1vdmlu
Z1BsdWdpbkVsZW1lbnQuY3BwIFwKKyAgICAgICAgICBUZXN0cy9HZXRVUkxXaXRoSmF2YVNjcmlw
dFVSTC5jcHAgXAogICAgICAgICAgIFRlc3RzL0dldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJv
eWluZ1BsdWdpbi5jcHAgXAogICAgICAgICAgIFRlc3RzL0dldFVzZXJBZ2VudFdpdGhOdWxsTlBQ
RnJvbU5QUE5ldy5jcHAgXAogICAgICAgICAgIFRlc3RzL05QRGVhbGxvY2F0ZUNhbGxlZEJlZm9y
ZU5QU2h1dGRvd24uY3BwIFwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2NDYzKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMTMg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOUE5fR2V0VVJMIHdpdGggYSBqYXZhc2Ny
aXB0OiBVUkwgZG9lc24ndCBzZW5kIGJhY2sgdGhlIHJlc3VsdCBpbiB0aGUgc3RyZWFtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgxMAorCisgICAg
ICAgIEFkZCBhIHRlc3QgdGhhdCBjYWxscyBOUE5fR2V0VVJMIG9uIGEgamF2YXNjcmlwdDogVVJM
IGFuZCBjaGVja3MgdGhhdCBpdCBnZXRzIGJhY2sgdGhlIGV4cGVjdGVkIHJlc3VsdC4KKworICAg
ICAgICAqIHBsdWdpbnMvZ2V0LXVybC13aXRoLWphdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGx1Z2lucy9nZXQtdXJsLXdpdGgtamF2YXNjcmlwdC11cmwuaHRt
bDogQWRkZWQuCisKIDIwMTEtMDUtMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL3Bs
dWdpbnMvZ2V0LXVybC13aXRoLWphdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0aC1qYXZhc2NyaXB0LXVybC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0
aC1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBA
QAorCitUZXN0IHRoYXQgZXZhbHVhdGluZyBhIGphdmFzY3JpcHQ6IFVSTCB3aWxsIHNlbmQgYSBz
dHJlYW0gd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uLgorCitTVUNDRVNTCkluZGV4
OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0aC1qYXZhc2NyaXB0LXVybC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC13aXRoLWphdmFzY3JpcHQt
dXJsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0
aC1qYXZhc2NyaXB0LXVybC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdFN1Y2NlZWRlZCgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVyVGV4dCA9ICdTVUNDRVNTJzsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8Ym9keT4KKzxlbWJlZCBpZD0icGx1Z2lu
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB0ZXN0PSJnZXQtdXJs
LXdpdGgtamF2YXNjcmlwdC11cmwiIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPlRlc3QgdGhhdCBldmFsdWF0aW5nIGEgamF2YXNjcmlwdDogVVJMIHdp
bGwgc2VuZCBhIHN0cmVhbSB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24uPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+RkFJTFVSRTwvZGl2Pgo=
</data>
<flag name="review"
          id="86692"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="86695"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>