<?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>27691</bug_id>
          
          <creation_ts>2009-07-26 10:20:24 -0700</creation_ts>
          <short_desc>WebCore bindings: Implement ScriptArray bindings.</short_desc>
          <delta_ts>2009-07-27 13:11:00 -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>WebCore JavaScript</component>
          <version>528+ (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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134821</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-07-26 10:20:24 -0700</bug_when>
    <thetext>ScriptArray is needed for serialized DOM access from WebInspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134824</commentid>
    <comment_count>1</comment_count>
      <attachid>33513</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-07-26 11:15:36 -0700</bug_when>
    <thetext>Created attachment 33513
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134826</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-07-26 11:52:07 -0700</bug_when>
    <thetext>Please do not land this. I&apos;d like to land it myself so that it fit Chromium cycle nicely. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134869</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-07-27 02:07:47 -0700</bug_when>
    <thetext>	M	WebCore/WebCore.pro
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/GNUmakefile.am
	M	WebCore/WebCore.gypi
	A	WebCore/bindings/js/ScriptArray.h
	A	WebCore/bindings/js/ScriptArray.cpp
	A	WebCore/bindings/v8/ScriptArray.h
	A	WebCore/bindings/v8/ScriptArray.cpp
	M	WebCore/WebCore.xcodeproj/project.pbxproj
r46410 = 0d0d5a3789c6238f7ebded1a26467e15dcb28fb5 (trunk)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134982</commentid>
    <comment_count>4</comment_count>
      <attachid>33513</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-27 12:59:21 -0700</bug_when>
    <thetext>Comment on attachment 33513
patch

Um, why are the JSC bindings use JSLock?  Is ScriptArray meant to be called from a separate thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134984</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-07-27 13:05:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 33513 [details])
&gt; Um, why are the JSC bindings use JSLock?  Is ScriptArray meant to be called
&gt; from a separate thread?

I copied them from the ScriptObject without much thinking. AFAIK we are not calling Script* from any other threads. Dmitry, do you know why locks are there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134987</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-07-27 13:11:00 -0700</bug_when>
    <thetext>Alexey Proskuryakov says the JSLock(flase) is just there to prevent the threading assertions and is a no-op. This patch is correct.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33513</attachid>
            <date>2009-07-26 11:15:36 -0700</date>
            <delta_ts>2009-07-27 12:59:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>script_array.patch</filename>
            <type>text/plain</type>
            <size>21476</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTcxYzQxNC4uYzgyZDk0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAogMjAwOS0wNy0yNiAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGJpbmRpbmdzOiBJbXBsZW1lbnQgU2NyaXB0QXJy
YXkgYmluZGluZ3MuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI3NjkxCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEFycmF5LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRBcnJheTo6U2NyaXB0QXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6aGFuZGxlRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEFycmF5Ojpz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dEFycmF5OjpjcmVhdGVOZXcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0QXJyYXk6OlNjcmlwdEFycmF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEFycmF5Ojpqc0FycmF5KToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9TY3JpcHRBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0QXJy
YXk6OlNjcmlwdEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEFycmF5OjpzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0QXJyYXk6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRBcnJheTo6Y3JlYXRlTmV3KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRB
cnJheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEFycmF5OjpTY3JpcHRBcnJh
eSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRBcnJheTo6flNjcmlwdEFycmF5KToKKworMjAw
OS0wNy0yNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
SW1wbGVtZW50IHRoZSBicmVha3BvaW50cyBzaWRlYmFyIHBhbmUuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2ZWU0YjVj
Li41ZjkzODhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KQEAgLTQxNyw2ICs0MTcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL1NjaGVkdWxlZEFjdGlvbi5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEFycmF5
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRBcnJheS5oIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q2FsbEZyYW1lLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDk1YjY3MzMuLmI3ZjFkYjMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NTIsNiArNTUy
LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvU2NyaXB0QXJyYXkuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3Jp
cHRBcnJheS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURh
dGEuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEu
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvU2NyaXB0Q2FsbEZyYW1lLmNwcCcsCkBAIC02
NjksNiArNjcxLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy92OC9TY3JpcHRBcnJheS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjcmlwdEFy
cmF5LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRDYWxsRnJhbWUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRDYWxsRnJhbWUuaCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAyN2FhMzAyLi42Njg2
NzhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTUzNiw2ICs1MzYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVy
LmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBcCisg
ICAgYmluZGluZ3MvanMvU2NyaXB0QXJyYXkuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRD
YWNoZWRGcmFtZURhdGEuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwIFwKQEAgLTExODYsNiArMTE4
Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5o
IFwKICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCisgICAgYmluZGluZ3MvanMv
U2NyaXB0QXJyYXkuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgg
XAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5ncy9qcy9T
Y3JpcHRDYWxsU3RhY2suaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBlZGYwMTMyLi45ODRjZDU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI4ODYyLDYgKzI4ODYyLDE0IEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcU2NoZWR1bGVkQWN0aW9uLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcU2NyaXB0QXJyYXkuY3Bw
Ig0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+DQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+DQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdEFycmF5LmgiDQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID4NCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCINCiAJCQkJCT4NCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhmZjA3NjcuLjZjZTczNzIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIwLDYgKzEwMjAs
OCBAQAogCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMDBEMENF
ODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTc1NzkzRUQ0MEQwQ0U4
NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVz
c2FnZUV2ZW50Lm1tICovOyB9OwogCQk3NTc5M0VENTBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVz
c2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnRJbnRl
cm5hbC5oICovOyB9OworCQk3QTFFODhGNTEwMUNDMzg0MDAwQzRERjUgLyogU2NyaXB0QXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0ExRTg4
RjMxMDFDQzM4NDAwMEM0REY1IC8qIFNjcmlwdEFycmF5LmNwcCAqLzsgfTsKKwkJN0ExRTg4RjYx
MDFDQzM4NDAwMEM0REY1IC8qIFNjcmlwdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTFFODhGNDEwMUNDMzg0MDAwQzRERjUgLyogU2NyaXB0
QXJyYXkuaCAqLzsgfTsKIAkJN0E2NzRCREIwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNw
cCAqLzsgfTsKIAkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZl
cnJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2
NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovOyB9Owog
CQk3QTc0RUNCNzEwMTgzOTlBMDBCRjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I2MTAxODM5
OUEwMEJGOTM5RSAvKiBJbnNwZWN0b3JCYWNrZW5kLmlkbCAqLzsgfTsKQEAgLTYwNDQsNiArNjA0
Niw4IEBACiAJCTc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyogRE9N
TWVzc2FnZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERPTU1lc3NhZ2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNF
RDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTFFODhGMzEwMUNDMzg0MDAwQzRERjUgLyogU2Ny
aXB0QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0
QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTFFODhGNDEwMUNDMzg0
MDAwQzRERjUgLyogU2NyaXB0QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyaXB0QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCRDkw
RjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VHcm91cExvYWREZWZlcnJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTc0
RUNCNjEwMTgzOTlBMDBCRjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW5zcGVjdG9yQmFja2VuZC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMzU0NSw2ICsxMzU0OSw4IEBACiAJCQkJQkNFOTlFQzIwRENBNjI0MTAwMTgyNjgz
IC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQkNBMzc4QkEwRDE1RjY0
MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJCQkJQkNBMzc4QkIwRDE1RjY0
MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAorCQkJCTdBMUU4OEYzMTAxQ0MzODQw
MDBDNERGNSAvKiBTY3JpcHRBcnJheS5jcHAgKi8sCisJCQkJN0ExRTg4RjQxMDFDQzM4NDAwMEM0
REY1IC8qIFNjcmlwdEFycmF5LmggKi8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8q
IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgKi8sCiAJCQkJNDFGMUQyMUQwRUYzNUMyQTAwREE4
NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oICovLAogCQkJCTQxNkU3NUNBMEVERjkwQzcw
MDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuY3BwICovLApAQCAtMTcwNTYsNiArMTcwNjIsNyBA
QAogCQkJCUE4RURCMDNEMTAxNjg0OTQwMEZFODExMyAvKiBET01PYmplY3RXaXRoU1ZHQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBC
RjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0ExRTg4RjYx
MDFDQzM4NDAwMEM0REY1IC8qIFNjcmlwdEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5MDk3
LDYgKzE5MTA0LDcgQEAKIAkJCQlCQ0FFRkNBRTEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29s
b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUgLyogSW5z
cGVjdG9yQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTc0RUNCRDEwMTgzOURBMDBC
RjkzOUUgLyogSlNJbnNwZWN0b3JCYWNrZW5kQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdBMUU4OEY1MTAxQ0MzODQwMDBDNERGNSAvKiBTY3JpcHRBcnJheS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0QXJyYXkuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRBcnJheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uY2VkMjAyOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0QXJyYXkuY3BwCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCisKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgor
Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NjcmlwdEFy
cmF5OjpTY3JpcHRBcnJheShKU0FycmF5KiBvYmplY3QpCisgICAgOiBTY3JpcHRPYmplY3Qob2Jq
ZWN0KQoreworfQorCitzdGF0aWMgYm9vbCBoYW5kbGVFeGNlcHRpb24oU2NyaXB0U3RhdGUqIHNj
cmlwdFN0YXRlKQoreworICAgIGlmICghc2NyaXB0U3RhdGUtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJlcG9ydEV4Y2VwdGlvbihzY3JpcHRTdGF0ZSwgc2Ny
aXB0U3RhdGUtPmV4Y2VwdGlvbigpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgU2Ny
aXB0QXJyYXk6OnNldChTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIHVuc2lnbmVkIGluZGV4LCBj
b25zdCBTY3JpcHRPYmplY3QmIHZhbHVlKQoreworICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKKyAg
ICBqc0FycmF5KCktPnB1dChzY3JpcHRTdGF0ZSwgaW5kZXgsIHZhbHVlLmpzT2JqZWN0KCkpOwor
ICAgIHJldHVybiBoYW5kbGVFeGNlcHRpb24oc2NyaXB0U3RhdGUpOworfQorCitib29sIFNjcmlw
dEFycmF5OjpzZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCB1bnNpZ25lZCBpbmRleCwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAganNBcnJh
eSgpLT5wdXQoc2NyaXB0U3RhdGUsIGluZGV4LCBqc1N0cmluZyhzY3JpcHRTdGF0ZSwgdmFsdWUp
KTsKKyAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKK30KKworYm9vbCBT
Y3JpcHRBcnJheTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdW5zaWduZWQgaW5kZXgs
IGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAganNBcnJheSgp
LT5wdXQoc2NyaXB0U3RhdGUsIGluZGV4LCBqc051bWJlcihzY3JpcHRTdGF0ZSwgdmFsdWUpKTsK
KyAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKK30KKworYm9vbCBTY3Jp
cHRBcnJheTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdW5zaWduZWQgaW5kZXgsIGxv
bmcgbG9uZyB2YWx1ZSkKK3sKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAganNBcnJheSgp
LT5wdXQoc2NyaXB0U3RhdGUsIGluZGV4LCBqc051bWJlcihzY3JpcHRTdGF0ZSwgdmFsdWUpKTsK
KyAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKK30KKworYm9vbCBTY3Jp
cHRBcnJheTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdW5zaWduZWQgaW5kZXgsIGlu
dCB2YWx1ZSkKK3sKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAganNBcnJheSgpLT5wdXQo
c2NyaXB0U3RhdGUsIGluZGV4LCBqc051bWJlcihzY3JpcHRTdGF0ZSwgdmFsdWUpKTsKKyAgICBy
ZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKK30KKworYm9vbCBTY3JpcHRBcnJh
eTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdW5zaWduZWQgaW5kZXgsIGJvb2wgdmFs
dWUpCit7CisgICAgSlNMb2NrIGxvY2soZmFsc2UpOworICAgIGpzQXJyYXkoKS0+cHV0KHNjcmlw
dFN0YXRlLCBpbmRleCwganNCb29sZWFuKHZhbHVlKSk7CisgICAgcmV0dXJuIGhhbmRsZUV4Y2Vw
dGlvbihzY3JpcHRTdGF0ZSk7Cit9CisKK3Vuc2lnbmVkIFNjcmlwdEFycmF5OjpsZW5ndGgoKQor
eworICAgIHJldHVybiBqc0FycmF5KCktPmxlbmd0aCgpOworfQorCitTY3JpcHRBcnJheSBTY3Jp
cHRBcnJheTo6Y3JlYXRlTmV3KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKK3sKKyAgICBKU0xv
Y2sgbG9jayhmYWxzZSk7CisgICAgcmV0dXJuIFNjcmlwdEFycmF5KGNvbnN0cnVjdEVtcHR5QXJy
YXkoc2NyaXB0U3RhdGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRBcnJheS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYTRm
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEFycmF5LmgK
QEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0QXJyYXlfaAorI2RlZmluZSBTY3JpcHRBcnJh
eV9oCisKKyNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5o
IgorCisjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworICAgIGNsYXNzIFNjcmlwdEFycmF5IDogcHVibGljIFNjcmlwdE9iamVjdCB7CisgICAgcHVi
bGljOgorICAgICAgICBTY3JpcHRBcnJheShKU0M6OkpTQXJyYXkqKTsKKyAgICAgICAgU2NyaXB0
QXJyYXkoKSB7fQorICAgICAgICBKU0M6OkpTQXJyYXkqIGpzQXJyYXkoKSBjb25zdCB7IHJldHVy
biBhc0FycmF5KGpzVmFsdWUoKSk7IH0KKworICAgICAgICBib29sIHNldChTY3JpcHRTdGF0ZSos
IHVuc2lnbmVkIGluZGV4LCBjb25zdCBTY3JpcHRPYmplY3QmKTsKKyAgICAgICAgYm9vbCBzZXQo
U2NyaXB0U3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJik7CisgICAgICAgIGJv
b2wgc2V0KFNjcmlwdFN0YXRlKiwgdW5zaWduZWQgaW5kZXgsIGRvdWJsZSk7CisgICAgICAgIGJv
b2wgc2V0KFNjcmlwdFN0YXRlKiwgdW5zaWduZWQgaW5kZXgsIGxvbmcgbG9uZyk7CisgICAgICAg
IGJvb2wgc2V0KFNjcmlwdFN0YXRlKiwgdW5zaWduZWQgaW5kZXgsIGludCk7CisgICAgICAgIGJv
b2wgc2V0KFNjcmlwdFN0YXRlKiwgdW5zaWduZWQgaW5kZXgsIGJvb2wpOworICAgICAgICB1bnNp
Z25lZCBsZW5ndGgoKTsKKworICAgICAgICBzdGF0aWMgU2NyaXB0QXJyYXkgY3JlYXRlTmV3KFNj
cmlwdFN0YXRlKik7CisgICAgfTsKK30KKworI2VuZGlmIC8vIFNjcmlwdEFycmF5X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0QXJyYXkuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRBcnJheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjI3OGJjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
QXJyYXkuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNjcmlwdEFycmF5LmgiCisKKyNpbmNsdWRlICJTY3JpcHRTY29wZS5oIgorI2luY2x1ZGUgIlNj
cmlwdFN0YXRlLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCisjaW5jbHVk
ZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JpcHRBcnJheTo6U2NyaXB0QXJy
YXkodjg6OkhhbmRsZTx2ODo6QXJyYXk+IHY4QXJyYXkpCisgICAgOiBTY3JpcHRPYmplY3QodjhB
cnJheSkKK3sKK30KKworYm9vbCBTY3JpcHRBcnJheTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRT
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IFNjcmlwdE9iamVjdCYgdmFsdWUpCit7CisgICAg
U2NyaXB0U2NvcGUgc2NvcGUoc2NyaXB0U3RhdGUpOworICAgIHY4T2JqZWN0KCktPlNldCh2ODo6
SW50ZWdlcjo6TmV3KGluZGV4KSwgdmFsdWUudjhWYWx1ZSgpKTsKKyAgICByZXR1cm4gc2NvcGUu
c3VjY2VzcygpOworfQorCitib29sIFNjcmlwdEFycmF5OjpzZXQoU2NyaXB0U3RhdGUqIHNjcmlw
dFN0YXRlLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBTY3Jp
cHRTY29wZSBzY29wZShzY3JpcHRTdGF0ZSk7CisgICAgdjhPYmplY3QoKS0+U2V0KHY4OjpJbnRl
Z2VyOjpOZXcoaW5kZXgpLCB2OFN0cmluZyh2YWx1ZSkpOworICAgIHJldHVybiBzY29wZS5zdWNj
ZXNzKCk7Cit9CisKK2Jvb2wgU2NyaXB0QXJyYXk6OnNldChTY3JpcHRTdGF0ZSogc2NyaXB0U3Rh
dGUsIHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCit7CisgICAgU2NyaXB0U2NvcGUgc2Nv
cGUoc2NyaXB0U3RhdGUpOworICAgIHY4T2JqZWN0KCktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGlu
ZGV4KSwgdjg6Ok51bWJlcjo6TmV3KHZhbHVlKSk7CisgICAgcmV0dXJuIHNjb3BlLnN1Y2Nlc3Mo
KTsKK30KKworYm9vbCBTY3JpcHRBcnJheTo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwg
dW5zaWduZWQgaW5kZXgsIGxvbmcgbG9uZyB2YWx1ZSkKK3sKKyAgICBTY3JpcHRTY29wZSBzY29w
ZShzY3JpcHRTdGF0ZSk7CisgICAgdjhPYmplY3QoKS0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaW5k
ZXgpLCB2ODo6TnVtYmVyOjpOZXcodmFsdWUpKTsKKyAgICByZXR1cm4gc2NvcGUuc3VjY2Vzcygp
OworfQorCitib29sIFNjcmlwdEFycmF5OjpzZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCB1
bnNpZ25lZCBpbmRleCwgaW50IHZhbHVlKQoreworICAgIFNjcmlwdFNjb3BlIHNjb3BlKHNjcmlw
dFN0YXRlKTsKKyAgICB2OE9iamVjdCgpLT5TZXQodjg6OkludGVnZXI6Ok5ldyhpbmRleCksIHY4
OjpOdW1iZXI6Ok5ldyh2YWx1ZSkpOworICAgIHJldHVybiBzY29wZS5zdWNjZXNzKCk7Cit9CisK
K2Jvb2wgU2NyaXB0QXJyYXk6OnNldChTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIHVuc2lnbmVk
IGluZGV4LCBib29sIHZhbHVlKQoreworICAgIFNjcmlwdFNjb3BlIHNjb3BlKHNjcmlwdFN0YXRl
KTsKKyAgICB2OE9iamVjdCgpLT5TZXQodjg6OkludGVnZXI6Ok5ldyhpbmRleCksIHY4Qm9vbGVh
bih2YWx1ZSkpOworICAgIHJldHVybiBzY29wZS5zdWNjZXNzKCk7Cit9CisKK3Vuc2lnbmVkIFNj
cmlwdEFycmF5OjpsZW5ndGgoKQoreworICAgIHJldHVybiB2ODo6QXJyYXk6OkNhc3QoKnY4VmFs
dWUoKSktPkxlbmd0aCgpOworfQorCitTY3JpcHRBcnJheSBTY3JpcHRBcnJheTo6Y3JlYXRlTmV3
KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKK3sKKyAgICBTY3JpcHRTY29wZSBzY29wZShzY3Jp
cHRTdGF0ZSk7CisgICAgcmV0dXJuIFNjcmlwdEFycmF5KHY4OjpBcnJheTo6TmV3KCkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdEFycmF5LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEFycmF5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFhYmMyOQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0QXJyYXkuaApAQCAtMCwwICsxLDU5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTY3JpcHRBcnJheV9oCisjZGVmaW5lIFNjcmlwdEFycmF5X2gKKworI2luY2x1ZGUgIlNjcmlw
dE9iamVjdC5oIgorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IGNsYXNzIFNjcmlwdFN0YXRlOworCisgICAgY2xhc3MgU2NyaXB0QXJyYXkgOiBwdWJsaWMgU2Ny
aXB0T2JqZWN0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNjcmlwdEFycmF5KHY4OjpIYW5kbGU8
djg6OkFycmF5Pik7CisgICAgICAgIFNjcmlwdEFycmF5KCkge30KKyAgICAgICAgdmlydHVhbCB+
U2NyaXB0QXJyYXkoKSB7fQorCisgICAgICAgIGJvb2wgc2V0KFNjcmlwdFN0YXRlKiwgdW5zaWdu
ZWQgaW5kZXgsIGNvbnN0IFNjcmlwdE9iamVjdCYpOworICAgICAgICBib29sIHNldChTY3JpcHRT
dGF0ZSosIHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgYm9vbCBzZXQo
U2NyaXB0U3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgZG91YmxlKTsKKyAgICAgICAgYm9vbCBzZXQo
U2NyaXB0U3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgbG9uZyBsb25nKTsKKyAgICAgICAgYm9vbCBz
ZXQoU2NyaXB0U3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgaW50KTsKKyAgICAgICAgYm9vbCBzZXQo
U2NyaXB0U3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgYm9vbCk7CisgICAgICAgIHVuc2lnbmVkIGxl
bmd0aCgpOworCisgICAgICAgIHN0YXRpYyBTY3JpcHRBcnJheSBjcmVhdGVOZXcoU2NyaXB0U3Rh
dGUqKTsKKyAgICB9OworfQorCisjZW5kaWYgLy8gU2NyaXB0QXJyYXlfaAo=
</data>
<flag name="review"
          id="17779"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>