<?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>42457</bug_id>
          
          <creation_ts>2010-07-16 08:26:33 -0700</creation_ts>
          <short_desc>Web Inspector: should be possible to convert console message arguments to InspectorValues</short_desc>
          <delta_ts>2010-07-22 07:34:45 -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>Web Inspector (Deprecated)</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>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>252525</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-16 08:26:33 -0700</bug_when>
    <thetext>Web Inspector: should be possible to convert console message arguments to InspectorValues. This is a bit different from other back end&lt;-&gt;front end message parameters in that it should be built from VM-specific JS object residing in the inspected page context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254728</commentid>
    <comment_count>1</comment_count>
      <attachid>62285</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-22 04:39:37 -0700</bug_when>
    <thetext>Created attachment 62285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254732</commentid>
    <comment_count>2</comment_count>
      <attachid>62285</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-22 04:52:02 -0700</bug_when>
    <thetext>Comment on attachment 62285
Patch

r+ with comments. Please fix prior to landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254734</commentid>
    <comment_count>3</comment_count>
      <attachid>62285</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-22 04:56:28 -0700</bug_when>
    <thetext>Comment on attachment 62285
Patch

WebCore/bindings/js/ScriptValue.cpp:145
 +      return 0;
Regex is lost here. Consider running toString by default.

WebCore/inspector/ConsoleMessage.h:55
 +      void addToFrontend(RemoteInspectorFrontend*, InjectedScriptHost*);
Bring InspectorFrontend2 back!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254743</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-22 05:45:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 62285 [details])
&gt; WebCore/bindings/js/ScriptValue.cpp:145
&gt;  +      return 0;
&gt; Regex is lost here. Consider running toString by default.
&gt;
That is fine that it&apos;s lost,  JSON.stringify(new RegExp(...)) will always return undefined. It&apos;s caller responsibility to prepare a convertible object.

&gt; WebCore/inspector/ConsoleMessage.h:55
&gt;  +      void addToFrontend(RemoteInspectorFrontend*, InjectedScriptHost*);
&gt; Bring InspectorFrontend2 back!
What do you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254781</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-22 07:34:45 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/ScriptValue.cpp
	M	WebCore/bindings/js/ScriptValue.h
	M	WebCore/bindings/v8/ScriptValue.cpp
	M	WebCore/bindings/v8/ScriptValue.h
	M	WebCore/inspector/ConsoleMessage.cpp
	M	WebCore/inspector/ConsoleMessage.h
	M	WebCore/inspector/InjectedScript.cpp
	M	WebCore/inspector/InjectedScript.h
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/InspectorBackend.h
	M	WebCore/inspector/InspectorBackend.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/inspector.js
Committed r63891</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62285</attachid>
            <date>2010-07-22 04:39:37 -0700</date>
            <delta_ts>2010-07-22 04:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42457-20100722153934.patch</filename>
            <type>text/plain</type>
            <size>26001</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWQ1ZWQwM2U4ODJlYTM2NzU3NjY5Nzk4N2JmNTQ5MmRkNTM1NDE0NC4uODcwYzg2ZGJiYjNlNGJj
MTMyZjVkYzk0NzYwODUyY2IwNmM1ZDQzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMC0wNy0yMiAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzaG91bGQgYmUgcG9z
c2libGUgdG8gY29udmVydCBjb25zb2xlIG1lc3NhZ2UgYXJndW1lbnRzIHRvIEluc3BlY3RvclZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0
NTcKKworICAgICAgICBOb3cgaXQgaXMgcG9zc2libGUgdG8gY29udmVydCBzaW1wbGUgSmF2YVNj
cmlwdCBvYmplY3RzIHRvCisgICAgICAgIEluc3BlY3RvclZhbHVlcy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1RvSW5zcGVjdG9yVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0VmFsdWU6OnRvSW5zcGVjdG9yVmFsdWUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2Ny
aXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6djhUb0luc3BlY3RvclZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjp0b0luc3BlY3RvclZhbHVlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xl
TWVzc2FnZS5jcHA6IGNvbnNvbGUgbm90aWZpY2F0aW9ucyBhcmUgcHVzaGVkIHRvIFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kIGluc3RlYWQgb2YgSW5zcGVjdG9yRnJvbnRlbmQuCisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6Q2FsbEZyYW1lOjpidWlsZEluc3BlY3Rvck9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6dXBkYXRlUmVwZWF0Q291bnRJbkNvbnNvbGUp
OgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlw
dDo6d3JhcEZvckNvbnNvbGUpOiByZXR1cm4gSW5zcGVjdG9yVmFsdWUgaW5zdGVhZCBvZiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5k
OjpjbGVhckNvbnNvbGVNZXNzYWdlcyk6IHNlbmQgcmVzcG9uc2UgZGlyZWN0bHkgZnJvbSB0aGUg
YmFja2VuZAorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6cmVtb3RlRnJvbnRl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcjo6YWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2xlYXJDb25zb2xlTWVzc2FnZXMpOiBkb24ndCBzZW5kIG5v
dGlmaWNhdGlvbiB0byB0aGUgZnJvbnQgZW5kLAorICAgICAgICBpdCB3aWxsIGJlIHNlbmQgZWl0
aGVyIGZyb20gSW5zcGVjdG9yQmFja2VuZC5jcHAgaWYgaXQgd2FzIGEgdXNlciByZXF1ZXN0IG9y
IHJlc2V0IG1lc3NhZ2Ugd2lsbAorICAgICAgICBiZSBzZW5kIHRvIHRoZSBmcm9udCBlbmQgaWYg
dGhlIG1lc3NhZ2VzIGFyZSBjbGVhcmVkIGR1ZSB0byBwYWdlIG5hdmlnYXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisKIDIwMTAtMDctMjEgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTEw
ZDc2NjQ3MGU1NWVhMzhiYzY0NDI2MWE5OTJkMzk0MmVmYzAxLi5jNGZkOTMyZTQ3ODJhNTRlNGIz
MDUwMmQ5ZjhlZjMyNTMwMjMxYzc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTk4OTgsNyArMTk4OTgsNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJ
CWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lv
biA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVn
aW9ucyA9ICgKIAkJCQlFbmdsaXNoLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRWYWx1ZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAppbmRl
eCBhNTIwMjRkNTFhMzQzNjcxMTE3ZmZkYTI5MmFmNjQ4YTJiZDRlMzdhLi40NGM2ODI4ZWVmOGU2
ZDhhNmViMThmMTM4ZWUxZTFjYjZhOGQ4ZWUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFZhbHVlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVl
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNj
cmlwdFZhbHVlLmgiCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNh
c3QuaD4KQEAgLTkzLDQgKzk0LDYwIEBAIFNjcmlwdFZhbHVlIFNjcmlwdFZhbHVlOjpkZXNlcmlh
bGl6ZShTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIFNlcmlhbGl6ZWRTY3JpcHRWCiAgICAgcmV0
dXJuIFNjcmlwdFZhbHVlKHZhbHVlLT5kZXNlcmlhbGl6ZShzY3JpcHRTdGF0ZSwgc2NyaXB0U3Rh
dGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSkpOwogfQogCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4ganNUb0luc3BlY3RvclZhbHVlKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKHZhbHVlLmlzTnVs
bCgpIHx8IHZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JWYWx1
ZTo6bnVsbCgpOworICAgIGlmICh2YWx1ZS5pc0Jvb2xlYW4oKSkKKyAgICAgICAgcmV0dXJuIElu
c3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSh2YWx1ZS5nZXRCb29sZWFuKCkpOworICAgIGlmICh2
YWx1ZS5pc051bWJlcigpKQorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFzaWNWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLnVuY2hlY2tlZEdldE51bWJlcigpKTsKKyAgICBpZiAodmFsdWUuaXNTdHJpbmco
KSkgeworICAgICAgICBVU3RyaW5nIHMgPSB2YWx1ZS5nZXRTdHJpbmcoc2NyaXB0U3RhdGUpOwor
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yU3RyaW5nOjpjcmVhdGUoU3RyaW5nKHMuZGF0YSgpLCBz
LnNpemUoKSkpOworICAgIH0KKyAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICBp
ZiAoaXNKU0FycmF5KCZzY3JpcHRTdGF0ZS0+Z2xvYmFsRGF0YSgpLCB2YWx1ZSkpIHsKKyAgICAg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gaW5zcGVjdG9yQXJyYXkgPSBJbnNwZWN0b3JB
cnJheTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodmFs
dWUpOworICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gYXJyYXktPmxlbmd0aCgpOworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICAgICAgSlNWYWx1ZSBlbGVtZW50ID0gYXJyYXktPmdldEluZGV4KGkpOworICAgICAgICAg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gZWxlbWVudFZhbHVlID0ganNUb0luc3BlY3Rv
clZhbHVlKHNjcmlwdFN0YXRlLCBlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAoIWVsZW1l
bnRWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudFZhbHVlID0gSW5zcGVjdG9yVmFsdWU6Om51bGwoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5zcGVjdG9yQXJyYXktPnB1c2go
ZWxlbWVudFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpbnNwZWN0
b3JBcnJheTsKKyAgICAgICAgfQorICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBpbnNw
ZWN0b3JPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBKU09iamVj
dCogb2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CisgICAgICAgIFByb3BlcnR5TmFtZUFycmF5
IHByb3BlcnR5TmFtZXMoc2NyaXB0U3RhdGUpOworICAgICAgICBvYmplY3QtPmdldE93blByb3Bl
cnR5TmFtZXMoc2NyaXB0U3RhdGUsIHByb3BlcnR5TmFtZXMpOworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIG5hbWUgPSAgcHJvcGVydHlOYW1lc1tpXTsKKyAgICAgICAgICAgIEpT
VmFsdWUgcHJvcGVydHlWYWx1ZSA9IG9iamVjdC0+Z2V0KHNjcmlwdFN0YXRlLCBuYW1lKTsKKyAg
ICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gaW5zcGVjdG9yVmFsdWUgPSBqc1RvSW5z
cGVjdG9yVmFsdWUoc2NyaXB0U3RhdGUsIHByb3BlcnR5VmFsdWUpOworICAgICAgICAgICAgaWYg
KCFpbnNwZWN0b3JWYWx1ZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgIGluc3BlY3RvclZhbHVlID0gSW5zcGVjdG9yVmFsdWU6Om51bGwo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluc3BlY3Rvck9iamVjdC0+c2V0KFN0cmlu
ZyhuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCBpbnNwZWN0b3JWYWx1ZSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGluc3BlY3Rvck9iamVjdDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IFNjcmlwdFZhbHVlOjp0b0luc3BlY3RvclZh
bHVlKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkgY29uc3QKK3sKKyAgICByZXR1cm4ganNUb0lu
c3BlY3RvclZhbHVlKHNjcmlwdFN0YXRlLCBtX3ZhbHVlLmdldCgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1
ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCmluZGV4IGY0ZjljNjgwMTI2
NjI4MDI4Zjg0NWVkM2MwNTNmMTI5MzI2OTg2NDIuLjIxYWQwMWNkNjRmZTY2YzRlMTIwM2Q3NDk3
Yzk3YjU0NTQ3MTM2ZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFs
dWUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKQEAgLTQwLDYgKzQw
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbnNwZWN0b3JWYWx1ZTsKIGNs
YXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY2xhc3MgU2NyaXB0VmFsdWUgewpAQCAtNjEs
NiArNjIsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU2NyaXB0VmFsdWUgdW5kZWZpbmVkKCkg
eyByZXR1cm4gU2NyaXB0VmFsdWUoSlNDOjpqc1VuZGVmaW5lZCgpKTsgfQogCisgICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4gdG9JbnNwZWN0b3JWYWx1ZShTY3JpcHRTdGF0ZSopIGNvbnN0
OworCiBwcml2YXRlOgogICAgIEpTQzo6UHJvdGVjdGVkSlNWYWx1ZSBtX3ZhbHVlOwogfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5jcHAKaW5kZXggM2FjYTNjMWNmMTBjODFjMGRmNjkxZDBl
ODk5OTkyZWU5YmVjODFlNC4uNDQ5ZDE3MWZjODliMzNkMmZiNjM2OTVmNWQzMDBkM2E2NTk3YjYw
MiAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRWYWx1ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogCisjaW5jbHVkZSAi
SW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U2NvcGUuaCIKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKQEAgLTY2LDQg
KzY3LDYwIEBAIFN0cmluZyBTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoU2NyaXB0U3RhdGUqKSBjb25z
dAogICAgIHJldHVybiB0b1dlYkNvcmVTdHJpbmcobV92YWx1ZSk7CiB9CiAKK3N0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvclZhbHVlPiB2OFRvSW5zcGVjdG9yVmFsdWUodjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5Jc0VtcHR5KCkpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBpZiAodmFs
dWUtPklzTnVsbCgpIHx8IHZhbHVlLT5Jc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gSW5z
cGVjdG9yVmFsdWU6Om51bGwoKTsKKyAgICBpZiAodmFsdWUtPklzQm9vbGVhbigpKQorICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yQmFzaWNWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5Cb29sZWFuVmFsdWUo
KSk7CisgICAgaWYgKHZhbHVlLT5Jc051bWJlcigpKQorICAgICAgICByZXR1cm4gSW5zcGVjdG9y
QmFzaWNWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKKyAgICBpZiAodmFsdWUt
PklzU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JTdHJpbmc6OmNyZWF0ZSh0b1dl
YkNvcmVTdHJpbmcodmFsdWUpKTsKKyAgICBpZiAodmFsdWUtPklzQXJyYXkoKSkgeworICAgICAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkFy
cmF5PiBhcnJheSA9IHY4OjpIYW5kbGU8djg6OkFycmF5Pjo6Q2FzdCh2YWx1ZSk7CisgICAgICAg
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gaW5zcGVjdG9yQXJyYXkgPSBJbnNwZWN0b3JBcnJheTo6
Y3JlYXRlKCk7CisgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IGFycmF5LT5MZW5ndGgoKTsKKyAg
ICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSA9IGFycmF5LT5HZXQodjg6OkludDMyOjpOZXco
aSkpOworICAgICAgICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBlbGVtZW50ID0gdjhUb0lu
c3BlY3RvclZhbHVlKHZhbHVlKTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudCkgeworICAgICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGVsZW1lbnQg
PSBJbnNwZWN0b3JWYWx1ZTo6bnVsbCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5z
cGVjdG9yQXJyYXktPnB1c2goZWxlbWVudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlu
c3BlY3RvckFycmF5OworICAgIH0KKyAgICBpZiAodmFsdWUtPklzT2JqZWN0KCkpIHsKKyAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gaW5zcGVjdG9yT2JqZWN0ID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKworICAgICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdCh2YWx1ZSk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHByb3BlcnR5
TmFtZXMgPSBvYmplY3QtPkdldFByb3BlcnR5TmFtZXMoKTsKKyAgICAgICAgdWludDMyX3QgbGVu
Z3RoID0gcHJvcGVydHlOYW1lcy0+TGVuZ3RoKCk7CisgICAgICAgIGZvciAodWludDMyX3QgaSA9
IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
bmFtZSA9IHByb3BlcnR5TmFtZXMtPkdldCh2ODo6SW50MzI6Ok5ldyhpKSk7CisgICAgICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHByb3BlcnR5VmFsdWUgPSB2OFRvSW5zcGVjdG9yVmFs
dWUob2JqZWN0LT5HZXQobmFtZSkpOworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eVZhbHVlKSB7
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnNwZWN0b3JPYmplY3QtPnNl
dCh0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKG5hbWUpLCBwcm9wZXJ0eVZhbHVlKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gaW5zcGVjdG9yT2JqZWN0OworICAgIH0KKyAgICByZXR1
cm4gMDsKK30KKworUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gU2NyaXB0VmFsdWU6OnRvSW5z
cGVjdG9yVmFsdWUoU2NyaXB0U3RhdGUqKSBjb25zdAoreworICAgIHJldHVybiB2OFRvSW5zcGVj
dG9yVmFsdWUobV92YWx1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0VmFsdWUuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0VmFsdWUuaAppbmRleCA4MjQxMjA1OWU4NzgxYmM0MjUxMTFmZWZjY2M2OWM3ZGJl
YThmZmFiLi4xNzQzZGEwZjM5NzhmODEyMmQyNTZmMWQ4MjEwOTdhOTE2ZjA5MjFmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFZhbHVlLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRWYWx1ZS5oCkBAIC00Myw2ICs0Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgSW5zcGVjdG9yVmFsdWU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFs
dWU7CiAKIGNsYXNzIFNjcmlwdFZhbHVlIHsKQEAgLTE1MSw2ICsxNTIsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBnZXRTdHJpbmcoU3RyaW5nJiByZXN1bHQpIGNvbnN0OwogICAgIFN0cmluZyB0b1N0
cmluZyhTY3JpcHRTdGF0ZSopIGNvbnN0OwogCisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4gdG9JbnNwZWN0b3JWYWx1ZShTY3JpcHRTdGF0ZSopIGNvbnN0OworCiBwcml2YXRlOgogICAg
IG11dGFibGUgdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBtX3ZhbHVlOwogfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA3OWI1MTE1ZGY0MDVmYWQ3MDcwMTE0MDQzYzYw
MDdkZWQ4OTgyZjJhLi5hYTBiMWMwNTk1NTQ0OGM3MDA2MzJhOTBkMTEwZjZiYTE1Y2M1NWI3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogI2lu
Y2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgotI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDEy
ICs2MCwxMiBAQCBib29sIENvbnNvbGVNZXNzYWdlOjpDYWxsRnJhbWU6OmlzRXF1YWwoY29uc3Qg
Q29uc29sZU1lc3NhZ2U6OkNhbGxGcmFtZSYgbykgY29ucwogICAgICAgICAmJiBtX2xpbmVOdW1i
ZXIgPT0gby5tX2xpbmVOdW1iZXI7CiB9CiAKLVNjcmlwdE9iamVjdCBDb25zb2xlTWVzc2FnZTo6
Q2FsbEZyYW1lOjpidWlsZE9iamVjdChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpIGNvbnN0
CitQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gQ29uc29sZU1lc3NhZ2U6OkNhbGxGcmFtZTo6
YnVpbGRJbnNwZWN0b3JPYmplY3QoKSBjb25zdAogewotICAgIFNjcmlwdE9iamVjdCBmcmFtZSA9
IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBmcmFtZS5zZXQoImZ1bmN0aW9uTmFt
ZSIsIG1fZnVuY3Rpb25OYW1lKTsKLSAgICBmcmFtZS5zZXQoInNvdXJjZVVSTCIsIG1fc291cmNl
VVJMLnN0cmluZygpKTsKLSAgICBmcmFtZS5zZXQoImxpbmVOdW1iZXIiLCBtX2xpbmVOdW1iZXIp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKKyAgICBmcmFtZS0+c2V0U3RyaW5nKCJmdW5jdGlvbk5hbWUiLCBtX2Z1bmN0aW9u
TmFtZSk7CisgICAgZnJhbWUtPnNldFN0cmluZygic291cmNlVVJMIiwgbV9zb3VyY2VVUkwuc3Ry
aW5nKCkpOworICAgIGZyYW1lLT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBtX2xpbmVOdW1iZXIp
OwogICAgIHJldHVybiBmcmFtZTsKIH0KIApAQCAtMTA5LDM5ICsxMTAsNDAgQEAgQ29uc29sZU1l
c3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVz
c2FnZUxldmVsIGwsIGMKIH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi12b2lkIENvbnNvbGVN
ZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgSW5qZWN0
ZWRTY3JpcHRIb3N0KiBpbmplY3RlZFNjcmlwdEhvc3QpCit2b2lkIENvbnNvbGVNZXNzYWdlOjph
ZGRUb0Zyb250ZW5kKFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgSW5qZWN0ZWRT
Y3JpcHRIb3N0KiBpbmplY3RlZFNjcmlwdEhvc3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGpzb25P
YmogPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAganNvbk9iai5zZXQoInNvdXJj
ZSIsIHN0YXRpY19jYXN0PGludD4obV9zb3VyY2UpKTsKLSAgICBqc29uT2JqLnNldCgidHlwZSIs
IHN0YXRpY19jYXN0PGludD4obV90eXBlKSk7Ci0gICAganNvbk9iai5zZXQoImxldmVsIiwgc3Rh
dGljX2Nhc3Q8aW50PihtX2xldmVsKSk7Ci0gICAganNvbk9iai5zZXQoImxpbmUiLCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fbGluZSkpOwotICAgIGpzb25PYmouc2V0KCJ1cmwiLCBtX3VybCk7Ci0gICAg
anNvbk9iai5zZXQoImdyb3VwTGV2ZWwiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZ3JvdXBMZXZlbCkp
OwotICAgIGpzb25PYmouc2V0KCJyZXBlYXRDb3VudCIsIHN0YXRpY19jYXN0PGludD4obV9yZXBl
YXRDb3VudCkpOwotICAgIGpzb25PYmouc2V0KCJtZXNzYWdlIiwgbV9tZXNzYWdlKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uT2JqID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBqc29uT2JqLT5zZXROdW1iZXIoInNvdXJjZSIsIHN0YXRpY19jYXN0PGludD4obV9z
b3VyY2UpKTsKKyAgICBqc29uT2JqLT5zZXROdW1iZXIoInR5cGUiLCBzdGF0aWNfY2FzdDxpbnQ+
KG1fdHlwZSkpOworICAgIGpzb25PYmotPnNldE51bWJlcigibGV2ZWwiLCBzdGF0aWNfY2FzdDxp
bnQ+KG1fbGV2ZWwpKTsKKyAgICBqc29uT2JqLT5zZXROdW1iZXIoImxpbmUiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG1fbGluZSkpOworICAgIGpzb25PYmotPnNldFN0cmluZygidXJsIiwgbV91cmwpOwor
ICAgIGpzb25PYmotPnNldE51bWJlcigiZ3JvdXBMZXZlbCIsIHN0YXRpY19jYXN0PGludD4obV9n
cm91cExldmVsKSk7CisgICAganNvbk9iai0+c2V0TnVtYmVyKCJyZXBlYXRDb3VudCIsIHN0YXRp
Y19jYXN0PGludD4obV9yZXBlYXRDb3VudCkpOworICAgIGpzb25PYmotPnNldFN0cmluZygibWVz
c2FnZSIsIG1fbWVzc2FnZSk7CiAgICAgaWYgKCFtX2FyZ3VtZW50cy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgU2NyaXB0QXJyYXkganNvbkFyZ3MgPSBmcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKTsK
KyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBqc29uQXJncyA9IEluc3BlY3RvckFycmF5
OjpjcmVhdGUoKTsKICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBpbmpl
Y3RlZFNjcmlwdEhvc3QtPmluamVjdGVkU2NyaXB0Rm9yKG1fc2NyaXB0U3RhdGUuZ2V0KCkpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcmd1bWVudHMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRW
YWx1ZSA9IGluamVjdGVkU2NyaXB0LndyYXBGb3JDb25zb2xlKG1fYXJndW1lbnRzW2ldKTsKLSAg
ICAgICAgICAgIGlmICghanNvbkFyZ3Muc2V0KGksIHNlcmlhbGl6ZWRWYWx1ZS5nZXQoKSkpIHsK
KyAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gaW5zcGVjdG9yVmFsdWUgPSBpbmpl
Y3RlZFNjcmlwdC53cmFwRm9yQ29uc29sZShtX2FyZ3VtZW50c1tpXSk7CisgICAgICAgICAgICBp
ZiAoIWluc3BlY3RvclZhbHVlKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
anNvbkFyZ3MtPnB1c2goaW5zcGVjdG9yVmFsdWUpOwogICAgICAgICB9Ci0gICAgICAgIGpzb25P
Ymouc2V0KCJwYXJhbWV0ZXJzIiwganNvbkFyZ3MpOworICAgICAgICBqc29uT2JqLT5zZXQoInBh
cmFtZXRlcnMiLCBqc29uQXJncyk7CiAgICAgfQogICAgIGlmICghbV9mcmFtZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFNjcmlwdEFycmF5IGZyYW1lcyA9IGZyb250ZW5kLT5uZXdTY3JpcHRBcnJh
eSgpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGZyYW1lcyA9IEluc3BlY3RvckFy
cmF5OjpjcmVhdGUoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZnJhbWVz
LnNpemUoKTsgaSsrKQotICAgICAgICAgICAgZnJhbWVzLnNldChpLCBtX2ZyYW1lcy5hdChpKS5i
dWlsZE9iamVjdChmcm9udGVuZCkpOwotICAgICAgICBqc29uT2JqLnNldCgic3RhY2tUcmFjZSIs
IGZyYW1lcyk7CisgICAgICAgICAgICBmcmFtZXMtPnB1c2gobV9mcmFtZXMuYXQoaSkuYnVpbGRJ
bnNwZWN0b3JPYmplY3QoKSk7CisgICAgICAgIGpzb25PYmotPnNldCgic3RhY2tUcmFjZSIsIGZy
YW1lcyk7CiAgICAgfQogICAgIGZyb250ZW5kLT5hZGRDb25zb2xlTWVzc2FnZShqc29uT2JqKTsK
IH0KIAotdm9pZCBDb25zb2xlTWVzc2FnZTo6dXBkYXRlUmVwZWF0Q291bnRJbkNvbnNvbGUoSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9pZCBDb25zb2xlTWVzc2FnZTo6dXBkYXRlUmVw
ZWF0Q291bnRJbkNvbnNvbGUoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewog
ICAgIGZyb250ZW5kLT51cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50KG1fcmVwZWF0Q291
bnQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggMzg0OGRiZjQxYjM2YWU2
MGQyMjM5MWZmODU1NDhjYWQ4OThkNjA5Yy4uODFkMzJiOTM1N2QzM2IxOWU2OWE4OGRhY2U3NGM5
ZGYxOWQzZTExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC00MCw3ICs0MCw4
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluamVjdGVkU2NyaXB0SG9zdDsKLWNs
YXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yT2JqZWN0OworY2xhc3MgUmVt
b3RlSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBTY3JpcHRDYWxsRnJhbWU7CiBjbGFzcyBTY3Jp
cHRDYWxsU3RhY2s7CiBjbGFzcyBTY3JpcHRTdHJpbmc7CkBAIC01MSw4ICs1Miw4IEBAIHB1Ymxp
YzoKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIFNjcmlwdENhbGxTdGFjayosIHVuc2lnbmVkIGcsIGJv
b2wgc3RvcmVUcmFjZSA9IGZhbHNlKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgdm9p
ZCBhZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiwgSW5qZWN0ZWRTY3JpcHRIb3N0Kik7
Ci0gICAgdm9pZCB1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpOworICAgIHZvaWQgYWRkVG9Gcm9udGVuZChSZW1vdGVJbnNwZWN0b3JGcm9udGVu
ZCosIEluamVjdGVkU2NyaXB0SG9zdCopOworICAgIHZvaWQgdXBkYXRlUmVwZWF0Q291bnRJbkNv
bnNvbGUoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKICNlbmRpZgogICAgIHZv
aWQgaW5jcmVtZW50Q291bnQoKSB7ICsrbV9yZXBlYXRDb3VudDsgfQogICAgIGJvb2wgaXNFcXVh
bChTY3JpcHRTdGF0ZSosIENvbnNvbGVNZXNzYWdlKiBtc2cpIGNvbnN0OwpAQCAtNjYsNyArNjcs
NyBAQCBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBDYWxsRnJhbWUoY29uc3QgU2NyaXB0Q2Fs
bEZyYW1lJiBmcmFtZSk7CiAgICAgICAgIENhbGxGcmFtZSgpOwogICAgICAgICBib29sIGlzRXF1
YWwoY29uc3QgQ2FsbEZyYW1lJiBvKSBjb25zdDsKLSAgICAgICAgU2NyaXB0T2JqZWN0IGJ1aWxk
T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkgY29uc3Q7CisgICAgICAgIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZEluc3BlY3Rvck9iamVjdCgpIGNvbnN0OwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nIG1fZnVuY3Rpb25OYW1lOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCmluZGV4IDJlMzVlNGJjOWZiMDUwMmEyNmQ2ZmVkNjVhYjg0ZDNk
ODcyMzY1OWUuLjVmMmZiNzQ3NGRiMGQxMmU1NTJlZmViYWVhNWFkYzk4MDY4OGY2NzYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgpAQCAtNzMsNyArNzQsNyBAQCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSW5qZWN0ZWRTY3JpcHQ6OmNhbGxGcmFtZXMoKQog
fQogI2VuZGlmCiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJbmplY3RlZFNj
cmlwdDo6d3JhcEZvckNvbnNvbGUoU2NyaXB0VmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiBJbmplY3RlZFNjcmlwdDo6d3JhcEZvckNvbnNvbGUoU2NyaXB0VmFsdWUgdmFs
dWUpCiB7CiAgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkpOwogICAgIFNjcmlwdEZ1bmN0aW9uQ2Fs
bCB3cmFwRnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdCwgIndyYXBPYmplY3RGb3JDb25z
b2xlIik7CkBAIC04Miw4ICs4Myw4IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBJbmplY3RlZFNjcmlwdDo6d3JhcEZvckNvbnNvbGUoU2NyaXB0VmFsdWUgdmFsCiAgICAgYm9v
bCBoYWRFeGNlcHRpb24gPSBmYWxzZTsKICAgICBTY3JpcHRWYWx1ZSByID0gd3JhcEZ1bmN0aW9u
LmNhbGwoaGFkRXhjZXB0aW9uKTsKICAgICBpZiAoaGFkRXhjZXB0aW9uKQotICAgICAgICByZXR1
cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoIjxleGNlcHRpb24+Iik7Ci0gICAgcmV0
dXJuIHIuc2VyaWFsaXplKG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUoKSk7Cisg
ICAgICAgIHJldHVybiBJbnNwZWN0b3JTdHJpbmc6OmNyZWF0ZSgiPGV4Y2VwdGlvbj4iKTsKKyAg
ICByZXR1cm4gci50b0luc3BlY3RvclZhbHVlKG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0
U3RhdGUoKSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnJlbGVhc2VXcmFwcGVyT2JqZWN0
R3JvdXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5oCmluZGV4IDFlOWI3ODc4Y2FkNDFjNDhlYTlkMTEwZjBiYWI0ZDg3MzQyYTQ4NDcuLmY2YjZl
MTlkODVlOWRlMGJiMmVmOGI2MzRmMzRmZTczNzg4MWRhMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaApAQCAtMzgsNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIEluc3BlY3RvclZhbHVlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3Mg
U3RyaW5nOwogCkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKICAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY2FsbEZy
YW1lcygpOwogI2VuZGlmCi0gICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHdy
YXBGb3JDb25zb2xlKFNjcmlwdFZhbHVlKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVl
PiB3cmFwRm9yQ29uc29sZShTY3JpcHRWYWx1ZSk7CiAgICAgdm9pZCByZWxlYXNlV3JhcHBlck9i
amVjdEdyb3VwKGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGwKaW5kZXggM2M5NmRiMTNiNjdhNGVjZjRhNjZiNjk2MjQ1MDY3YTk5YWFkZDE5Yy4uNTI5Nzlk
NTk5MDBkN2Y4NjcyODBiYmI1ZjYxYmQzYTQ2NTA3MTAyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsCkBAIC0zMiw2ICszMiw3IEBACiAKIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPUlOU1BFQ1RPUl0gSW5zcGVjdG9yIHsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBh
ZGRDb25zb2xlTWVzc2FnZShvdXQgT2JqZWN0IG1lc3NhZ2VPYmopOwogICAgICAgICBbbm90aWZ5
XSB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUob3V0IE9iamVjdCByZWNvcmQpOwogICAgICAgICBb
bm90aWZ5XSB2b2lkIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQob3V0IEFycmF5IG5vZGVJZHMpOwog
ICAgICAgICBbbm90aWZ5XSB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQg
QXJyYXkgYXR0cmlidXRlcyk7CkBAIC00MSw2ICs0Miw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgW25vdGlmeV0gdm9pZCBzZXRDaGlsZE5vZGVzKG91dCBsb25nIHBhcmVudElkLCBvdXQgQXJy
YXkgbm9kZXMpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHNldERldGFjaGVkUm9vdChvdXQgT2Jq
ZWN0IHJvb3QpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHNldERvY3VtZW50KG91dCBWYWx1ZSBy
b290KTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVDb25zb2xlTWVzc2FnZUV4cGlyZWRD
b3VudChvdXQgdW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgdXBk
YXRlQ29uc29sZU1lc3NhZ2VSZXBlYXRDb3VudChvdXQgdW5zaWduZWQgbG9uZyBjb3VudCk7CiAK
ICAgICAgICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChpbiBTdHJpbmcgcGFuZWxOYW1lKTsK
IApAQCAtMTE3LDcgKzEyMCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBzZWFyY2hD
YW5jZWxlZCgpOwogICAgICAgICB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChpbiBsb25n
IGNhbGxJZCwgaW4gU3RyaW5nIHBhdGgsIG91dCBsb25nIG5vZGVJZCk7CiAKLSAgICAgICAgdm9p
ZCBjbGVhckNvbnNvbGVNZXNzYWdlcygpOworICAgICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3Nh
Z2VzKGluIGxvbmcgY2FsbElkKTsKIAogICAgICAgICB2b2lkIGhpZ2hsaWdodERPTU5vZGUoaW4g
bG9uZyBub2RlSWQpOwogICAgICAgICB2b2lkIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCmluZGV4IDlmNzEzMDdiMGZiODlhOTYzODM0
ODAwNjk4NWQ3MWU1NDE5M2Y2ODYuLmE1OTIxZTZjMDBjMmY0NDZhNDYwYTY3MDFmNWJlYmVmYmM2
ZDBiZWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3Bw
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCkBAIC00OSw2ICs0
OSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2UuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250
ZW5kLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlICJTY3JpcHRCcmVha3Bv
aW50LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCkBAIC00MTIsMTAgKzQx
MywxMyBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChs
b25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBwYXRoKQogICAgICAgICBkb21BZ2VudC0+cHVzaE5v
ZGVCeVBhdGhUb0Zyb250ZW5kKGNhbGxJZCwgcGF0aCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQmFj
a2VuZDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMoKQordm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpjbGVh
ckNvbnNvbGVNZXNzYWdlcyhsb25nIGNhbGxJZCkKIHsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250
cm9sbGVyKQorICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpIHsKICAgICAgICAgbV9pbnNw
ZWN0b3JDb250cm9sbGVyLT5jbGVhckNvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBpZiAoUmVt
b3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kID0gcmVtb3RlRnJvbnRlbmQoKSkKKyAgICAg
ICAgICAgIGZyb250ZW5kLT5kaWRDbGVhckNvbnNvbGVNZXNzYWdlcyhjYWxsSWQpOworICAgIH0K
IH0KIAogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpnZXRTdHlsZXMobG9uZyBjYWxsSWQsIGxvbmcg
bm9kZUlkLCBib29sIGF1dGhvck9ubHkpCkBAIC01OTcsNiArNjAxLDEzIEBAIEluc3BlY3RvckZy
b250ZW5kKiBJbnNwZWN0b3JCYWNrZW5kOjppbnNwZWN0b3JGcm9udGVuZCgpCiAgICAgcmV0dXJu
IG1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9mcm9udGVuZC5nZXQoKTsKIH0KIAorUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQqIEluc3BlY3RvckJhY2tlbmQ6OnJlbW90ZUZyb250ZW5kKCkKK3sKKyAg
ICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9yZW1vdGVGcm9udGVuZC5nZXQoKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JCYWNrZW5kOjphZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKGNvbnN0IFN0
cmluZyYgc291cmNlKQogewogICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKaW5kZXggNzhkMzRiNjZkMzg5NjI2ZjA0OGFkODhkNDEy
MTUwZTk1OTg0YzgwNC4uN2I4NzE3ZWFkNmY4MzVmMDRkNDllZjYzNzYxNTc0YjAzZmU5MTU1NiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFz
cyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JET01BZ2Vu
dDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgTm9kZTsKK2NsYXNzIFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgU3RvcmFnZTsKIAogY2xhc3MgSW5zcGVjdG9yQmFja2Vu
ZCA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckJhY2tlbmQ+CkBAIC0xMzMsNyArMTM0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2VhcmNoQ2FuY2VsZWQoKTsKICAgICB2b2lkIHB1c2hOb2Rl
QnlQYXRoVG9Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBwYXRoKTsKIAotICAg
IHZvaWQgY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKKyAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3Nh
Z2VzKGxvbmcgY2FsbElkKTsKIAogICAgIHZvaWQgZ2V0U3R5bGVzKGxvbmcgY2FsbElkLCBsb25n
IG5vZGVJZCwgYm9vbCBhdXRoT25seSk7CiAgICAgdm9pZCBnZXRBbGxTdHlsZXMobG9uZyBjYWxs
SWQpOwpAQCAtMTc5LDYgKzE4MCw3IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50KiBpbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKTsKICNlbmRpZgog
ICAgIEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCgpOworICAgIFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kKiByZW1vdGVGcm9udGVuZCgpOwogICAgIE5vZGUqIG5vZGVGb3JJZChs
b25nIG5vZGVJZCk7CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRy
b2xsZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlk
bCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCmluZGV4IDNjNDYwYTE1
MmMwNmI4ZTY3NzEwOGRjMzc2ZWVkNWQ3MThlZDhhOTAuLjE5MTc4ZmI0MTQyNTJhYjAwNTE1OGNm
NzA5MDgyNmI0NjVkNGFhZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmQuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRs
CkBAIC0xMDcsNyArMTA3LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIHNlYXJjaENh
bmNlbGVkKCk7CiAgICAgICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGluIGxvbmcg
Y2FsbElkLCBpbiBET01TdHJpbmcgcGF0aCk7CiAKLSAgICAgICAgdm9pZCBjbGVhckNvbnNvbGVN
ZXNzYWdlcygpOworICAgICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKGluIGxvbmcgY2Fs
bElkKTsKIAogICAgICAgICB2b2lkIGhpZ2hsaWdodERPTU5vZGUoaW4gbG9uZyBub2RlSWQpOwog
ICAgICAgICB2b2lkIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDg4NzliOGU5YmZhM2JiODlmMWY1MTc0YmI5YmYy
ZjdkYTgwM2IwMTYuLjE4Yjk1YWJiZTUwNjc2OThiMDQxN2U3ZGQ2MzNiNTM5Y2RjNDRhYzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0zNjMsMTIgKzM2
MywxMiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZENvbnNvbGVNZXNzYWdlKFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSwgUGFzc093blB0cgogICAgIGlmIChtX3ByZXZpb3VzTWVzc2Fn
ZSAmJiBtX3ByZXZpb3VzTWVzc2FnZS0+aXNFcXVhbChzY3JpcHRTdGF0ZSwgY29uc29sZU1lc3Nh
Z2UuZ2V0KCkpKSB7CiAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT5pbmNyZW1lbnRDb3VudCgp
OwogICAgICAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdl
LT51cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShtX2Zyb250ZW5kLmdldCgpKTsKKyAgICAgICAg
ICAgIG1fcHJldmlvdXNNZXNzYWdlLT51cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShtX3JlbW90
ZUZyb250ZW5kLmdldCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBtX3ByZXZpb3VzTWVzc2Fn
ZSA9IGNvbnNvbGVNZXNzYWdlLmdldCgpOwogICAgICAgICBtX2NvbnNvbGVNZXNzYWdlcy5hcHBl
bmQoY29uc29sZU1lc3NhZ2UpOwogICAgICAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgICAg
IG1fcHJldmlvdXNNZXNzYWdlLT5hZGRUb0Zyb250ZW5kKG1fZnJvbnRlbmQuZ2V0KCksIG1faW5q
ZWN0ZWRTY3JpcHRIb3N0LmdldCgpKTsKKyAgICAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT5h
ZGRUb0Zyb250ZW5kKG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRIb3N0
LmdldCgpKTsKICAgICB9CiAKICAgICBpZiAoIW1fZnJvbnRlbmQgJiYgbV9jb25zb2xlTWVzc2Fn
ZXMuc2l6ZSgpID49IG1heGltdW1Db25zb2xlTWVzc2FnZXMpIHsKQEAgLTM4Niw4ICszODYsNiBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsZWFyQ29uc29sZU1lc3NhZ2VzKCkKICAgICBt
X2luamVjdGVkU2NyaXB0SG9zdC0+cmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgwIC8qIHJlbGVh
c2UgdGhlIGdyb3VwIGluIGFsbCBzY3JpcHRzICovLCAiY29uc29sZSIpOwogICAgIGlmIChtX2Rv
bUFnZW50KQogICAgICAgICBtX2RvbUFnZW50LT5yZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwotICAg
IGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5jbGVhckNvbnNvbGVNZXNzYWdl
cygpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0R3JvdXAoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrLCBib29sIGNvbGxhcHNlZCkK
QEAgLTY1NiwxMCArNjU0LDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cG9wdWxhdGVT
Y3JpcHRPYmplY3RzKCkKICAgICBtX2RvbUFnZW50LT5zZXREb2N1bWVudChtX2luc3BlY3RlZFBh
Z2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKTsKIAogICAgIGlmIChtX2V4cGlyZWRDb25zb2xl
TWVzc2FnZUNvdW50KQotICAgICAgICBtX2Zyb250ZW5kLT51cGRhdGVDb25zb2xlTWVzc2FnZUV4
cGlyZWRDb3VudChtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KTsKKyAgICAgICAgbV9yZW1v
dGVGcm9udGVuZC0+dXBkYXRlQ29uc29sZU1lc3NhZ2VFeHBpcmVkQ291bnQobV9leHBpcmVkQ29u
c29sZU1lc3NhZ2VDb3VudCk7CiAgICAgdW5zaWduZWQgbWVzc2FnZUNvdW50ID0gbV9jb25zb2xl
TWVzc2FnZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtZXNzYWdlQ291
bnQ7ICsraSkKLSAgICAgICAgbV9jb25zb2xlTWVzc2FnZXNbaV0tPmFkZFRvRnJvbnRlbmQobV9m
cm9udGVuZC5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdEhvc3QuZ2V0KCkpOworICAgICAgICBtX2Nv
bnNvbGVNZXNzYWdlc1tpXS0+YWRkVG9Gcm9udGVuZChtX3JlbW90ZUZyb250ZW5kLmdldCgpLCBt
X2luamVjdGVkU2NyaXB0SG9zdC5nZXQoKSk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICBpZiAobV9kZWJ1Z2dlckVuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggZDQxMTlhMTY1ZWI5MzA3YTRkY2ZkZDZiOGQwMDYw
ZDEzNjZiN2MyZC4uMmYxYTBmM2Y3OWM3OTJmNGJmOTU2NTJhNWM3ZTEzZTg4NWE5NGFlNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtMjk2LDcgKzI5
Niw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICByZXF1
ZXN0Q2xlYXJNZXNzYWdlczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5jbGVhckNvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNs
ZWFyQ29uc29sZU1lc3NhZ2VzKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKCkpOwogICAgIH0s
CiAKICAgICBjbGVhck1lc3NhZ2VzOiBmdW5jdGlvbigpCkBAIC0xMTI3LDMgKzExMjcsNiBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKICAgICB9CiB9CisKK1dlYkluc3BlY3Rvci5kaWRDbGVhckNvbnNvbGVN
ZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2FsbGJhY2s7CisKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDVlYzcwODE5OTNjZmJlNTY2
NjM1ODQxOGQ0NzljMWI3N2NmYzlmZDYuLjBhZGYwNTdiYTZlNmNjZTY2ODczNTgwMjYwYzc0Yzdl
ZGM1YmJlN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAt
MTEyOSwxMSArMTEyOSw2IEBAIFdlYkluc3BlY3Rvci5zaG93QXVkaXRzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5jdXJyZW50UGFuZWwgPSB0aGlzLnBhbmVscy5hdWRpdHM7CiB9CiAKLVdl
Ykluc3BlY3Rvci5jbGVhckNvbnNvbGVNZXNzYWdlcyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3IuY29uc29sZS5jbGVhck1lc3NhZ2VzKCk7Ci19Ci0KIFdlYkluc3BlY3Rvci5zZWxl
Y3REYXRhYmFzZSA9IGZ1bmN0aW9uKG8pCiB7CiAgICAgV2ViSW5zcGVjdG9yLnNob3dTdG9yYWdl
UGFuZWwoKTsK
</data>
<flag name="review"
          id="50453"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>