<?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>28078</bug_id>
          
          <creation_ts>2009-08-07 11:49:51 -0700</creation_ts>
          <short_desc>WebInspector: Move object properties read / write access into InjectedScript</short_desc>
          <delta_ts>2010-03-28 04:16:16 -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>
          
          <blocked>32442</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138017</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-07 11:49:51 -0700</bug_when>
    <thetext>Now that styles are edited entirely by means of InjectedScript, it is time to migrate Objects to use the same schema.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138024</commentid>
    <comment_count>1</comment_count>
      <attachid>34309</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-07 11:57:53 -0700</bug_when>
    <thetext>Created attachment 34309
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138070</commentid>
    <comment_count>2</comment_count>
      <attachid>34309</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-08-07 13:01:35 -0700</bug_when>
    <thetext>Comment on attachment 34309
patch


&gt; -WebInspector.ObjectPropertiesSection = function(object, title, subtitle, emptyPlaceholder, ignoreHasOwnProperty, extraProperties, treeElementConstructor)
&gt; +WebInspector.ObjectRef = function(objectId, path, protoDepth)

I think this should go into a new file and not ObjectPropertiesSection.js, since it is used in other places and not specific to the ObjectPropertiesSection.

I am not too fond of the Ref suffix. Do you like ObjectProxy better?

&gt; +    this.objectId = objectId;

You should add a comment about this, this looks temporary.

&gt; +    this.path = path || [];

&gt; +InjectedScript._objectForId = function(objectId)
&gt; +{
&gt; +    return objectId;
&gt; +}

You hould add a comment about this being temporary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138112</commentid>
    <comment_count>3</comment_count>
      <attachid>34321</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-07 13:43:23 -0700</bug_when>
    <thetext>Created attachment 34321
patch

(In reply to comment #2)
&gt; (From update of attachment 34309 [details])
&gt; 
&gt; 
&gt; I think this should go into a new file and not ObjectPropertiesSection.js,
&gt; since it is used in other places and not specific to the
&gt; ObjectPropertiesSection.
&gt; 

Done.

&gt; I am not too fond of the Ref suffix. Do you like ObjectProxy better?
&gt;

Done.
 
&gt; 
&gt; You should add a comment about this, this looks temporary.
&gt;

Done (added TODO).
 
&gt; 
&gt; You hould add a comment about this being temporary.


Done (added TODO).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138125</commentid>
    <comment_count>4</comment_count>
      <attachid>34321</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-08-07 13:50:35 -0700</bug_when>
    <thetext>Comment on attachment 34321
patch

&gt; diff --git a/WebCore/inspector/front-end/ObjectProxy.js b/WebCore/inspector/front-end/ObjectProxy.js
&gt; \ No newline at end of file

Add a newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138133</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-07 14:02:57 -0700</bug_when>
    <thetext>Pfeldman wants to land it himself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138623</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-10 03:03:34 -0700</bug_when>
    <thetext>	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/InjectedScript.js
	M	WebCore/inspector/front-end/ObjectPropertiesSection.js
	A	WebCore/inspector/front-end/ObjectProxy.js
	M	WebCore/inspector/front-end/PropertiesSidebarPane.js
	M	WebCore/inspector/front-end/ScopeChainSidebarPane.js
	M	WebCore/inspector/front-end/WebKit.qrc
	M	WebCore/inspector/front-end/inspector.html
Committed r46972</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205144</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-03-28 04:16:16 -0700</bug_when>
    <thetext>This fix caused Bug 32442.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34309</attachid>
            <date>2009-08-07 11:57:53 -0700</date>
            <delta_ts>2009-08-07 13:43:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>move_properties.txt</filename>
            <type>text/plain</type>
            <size>21197</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDRjNzNhMS4uNjBmMmY5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0wOC0wNyAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IE1ha2UgcHJvcGVydGllcyBpbnNwZWN0
aW9uIHNlcmlhbGl6ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI4MDc4CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzOgorICAgICAgICAoSW5zcGVjdG9yQ29udHJvbGxlci5nZXRQcm90b3R5cGVzKToKKyAgICAg
ICAgKEluc3BlY3RvckNvbnRyb2xsZXIuZ2V0UHJvcGVydGllcyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qczoKKyAgICAgICAgKEluamVjdGVkU2NyaXB0
LmdldFByb3RvdHlwZXMpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQuZ2V0UHJvcGVydGllcyk6
CisgICAgICAgIChJbmplY3RlZFNjcmlwdC5zZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk9iamVjdFJlZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJv
cGVydHlSZWYpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9u
LnByb3RvdHlwZS5vbnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUudXBkYXRlLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuX3VwZGF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90
b3R5cGUub25wb3B1bGF0ZS5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBl
LnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJh
clBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NpZGViYXJQYW5lLnBy
b3RvdHlwZS51cGRhdGUuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3BlcnRp
ZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlKToKKwogMjAwOS0wOC0wNyAgU2hpbmljaGly
byBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
ZWxlIFBldGVyc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
CmluZGV4IDlhNGE5NGEuLjI2YmUwODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMKQEAgLTUxMyw3ICs1MTMsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlID0gewogCiAgICAgX2Zvcm1hdG9iamVjdDogZnVuY3Rpb24ob2JqLCBlbGVt
KQogICAgIHsKLSAgICAgICAgZWxlbS5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLk9iamVj
dFByb3BlcnRpZXNTZWN0aW9uKG9iaiwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSkuZWxlbWVudCk7
CisgICAgICAgIGVsZW0uYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0
aWVzU2VjdGlvbihuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFJlZihvYmopLCBPYmplY3QuZGVzY3Jp
YmUob2JqLCB0cnVlKSwgbnVsbCwgbnVsbCwgdHJ1ZSkuZWxlbWVudCk7CiAgICAgfSwKIAogICAg
IF9mb3JtYXRlcnJvcjogZnVuY3Rpb24ob2JqLCBlbGVtKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzCmluZGV4IDQ1ZTlkNTguLmI0ZWY5OTcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTcwMywzICs3MDMsMjIgQEAgSW5zcGVjdG9yQ29u
dHJvbGxlci5zZXRTdHlsZVByb3BlcnR5ID0gZnVuY3Rpb24oc3R5bGVJZCwgbmFtZSwgdmFsdWUs
IGNhbGxiYWNrKQogICAgICAgICBjYWxsYmFjayhJbmplY3RlZFNjcmlwdC5zZXRTdHlsZVByb3Bl
cnR5KHN0eWxlSWQsIG5hbWUsIHZhbHVlKSk7CiAgICAgfSwgMCkKIH0KKworSW5zcGVjdG9yQ29u
dHJvbGxlci5nZXRQcm90b3R5cGVzID0gZnVuY3Rpb24ob2JqZWN0UmVmLCBjYWxsYmFjaykgewor
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGNhbGxiYWNrKEluamVjdGVkU2Ny
aXB0LmdldFByb3RvdHlwZXMob2JqZWN0UmVmKSk7CisgICAgfSwgMCkKK30KKworSW5zcGVjdG9y
Q29udHJvbGxlci5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24ob2JqZWN0UmVmLCBpZ25vcmVIYXNP
d25Qcm9wZXJ0eSwgY2FsbGJhY2spIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICBjYWxsYmFjayhJbmplY3RlZFNjcmlwdC5nZXRQcm9wZXJ0aWVzKG9iamVjdFJlZiwgaWdu
b3JlSGFzT3duUHJvcGVydHkpKTsKKyAgICB9LCAwKQorfQorCitJbnNwZWN0b3JDb250cm9sbGVy
LnNldFByb3BlcnR5VmFsdWUgPSBmdW5jdGlvbihvYmplY3RSZWYsIHByb3BlcnR5TmFtZSwgZXhw
cmVzc2lvbiwgY2FsbGJhY2spIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBjYWxsYmFjayhJbmplY3RlZFNjcmlwdC5zZXRQcm9wZXJ0eVZhbHVlKG9iamVjdFJlZiwgcHJv
cGVydHlOYW1lLCBleHByZXNzaW9uKSk7CisgICAgfSwgMCkKK30KKwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCmluZGV4IDNkMjliMjQuLjBhN2ZhMjYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKQEAg
LTM4MSw2ICszODEsMTE5IEBAIEluamVjdGVkU2NyaXB0Ll9nZXRTaG9ydGhhbmRQcmlvcml0eSA9
IGZ1bmN0aW9uKHN0eWxlLCBzaG9ydGhhbmRQcm9wZXJ0eSkKICAgICByZXR1cm4gcHJpb3JpdHk7
CiB9CiAKK0luamVjdGVkU2NyaXB0LmdldFByb3RvdHlwZXMgPSBmdW5jdGlvbihvYmplY3RSZWYp
Cit7CisgICAgdmFyIG9iamVjdCA9IEluamVjdGVkU2NyaXB0Ll9yZXNvbHZlT2JqZWN0KG9iamVj
dFJlZik7CisKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIgcHJvdG90eXBlID0g
b2JqZWN0OyBwcm90b3R5cGU7IHByb3RvdHlwZSA9IHByb3RvdHlwZS5fX3Byb3RvX18pIHsKKyAg
ICAgICAgdmFyIHRpdGxlID0gT2JqZWN0LmRlc2NyaWJlKHByb3RvdHlwZSk7CisgICAgICAgIGlm
ICh0aXRsZS5tYXRjaCgvUHJvdG90eXBlJC8pKSB7CisgICAgICAgICAgICB0aXRsZSA9IHRpdGxl
LnJlcGxhY2UoL1Byb3RvdHlwZSQvLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LnB1
c2godGl0bGUpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitJbmplY3RlZFNjcmlw
dC5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24ob2JqZWN0UmVmLCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSkKK3sKKyAgICB2YXIgb2JqZWN0ID0gSW5qZWN0ZWRTY3JpcHQuX3Jlc29sdmVPYmplY3Qob2Jq
ZWN0UmVmKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dmFyIHByb3BlcnRpZXMgPSBbXTsKKyAgICAvLyBHbyBvdmVyIHByb3BlcnRpZXMsIHByZXBhcmUg
cmVzdWx0cy4KKyAgICBmb3IgKHZhciBwcm9wZXJ0eU5hbWUgaW4gb2JqZWN0KSB7CisgICAgICAg
IGlmICghaWdub3JlSGFzT3duUHJvcGVydHkgJiYgImhhc093blByb3BlcnR5IiBpbiBvYmplY3Qg
JiYgIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgLy9UT0RPOiByZW1vdmUgdGhpcyBvbmNlIG9iamVjdCBiZWNvbWVz
IHJlYWxseSByZW1vdGUuCisgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJfX3RyZWVFbGVt
ZW50SWRlbnRpZmllciIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIHByb3Bl
cnR5ID0ge307CisgICAgICAgIHByb3BlcnR5Lm5hbWUgPSBwcm9wZXJ0eU5hbWU7CisgICAgICAg
IHZhciBpc0dldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xv
b2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7CisgICAgICAgIGlmICghcHJvcGVydHkuaXNHZXR0
ZXIpIHsKKyAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdCA9IG9iamVjdFtwcm9wZXJ0eU5hbWVd
OworICAgICAgICAgICAgcHJvcGVydHkudHlwZSA9IHR5cGVvZiBjaGlsZE9iamVjdDsKKyAgICAg
ICAgICAgIHByb3BlcnR5LnRleHRDb250ZW50ID0gT2JqZWN0LmRlc2NyaWJlKGNoaWxkT2JqZWN0
LCB0cnVlKTsKKyAgICAgICAgICAgIHByb3BlcnR5LnBhcmVudE9iamVjdFJlZiA9IG9iamVjdFJl
ZjsKKyAgICAgICAgICAgIHZhciBwYXJlbnRQYXRoID0gb2JqZWN0UmVmLnBhdGguc2xpY2UoKTsK
KyAgICAgICAgICAgIHByb3BlcnR5LmNoaWxkT2JqZWN0UmVmID0geworICAgICAgICAgICAgICAg
IG9iamVjdElkIDogb2JqZWN0UmVmLm9iamVjdElkLAorICAgICAgICAgICAgICAgIHBhdGggOiBw
YXJlbnRQYXRoLnNwbGljZShwYXJlbnRQYXRoLmxlbmd0aCwgMCwgcHJvcGVydHlOYW1lKSwKKyAg
ICAgICAgICAgICAgICBwcm90b0RlcHRoIDogb2JqZWN0UmVmLnByb3RvRGVwdGgKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICBpZiAoY2hpbGRPYmplY3QgJiYgKHByb3BlcnR5LnR5cGUgPT09
ICJvYmplY3QiIHx8IHByb3BlcnR5LnR5cGUgPT09ICJmdW5jdGlvbiIpKSB7CisgICAgICAgICAg
ICAgICAgZm9yICh2YXIgc3ViUHJvcGVydHlOYW1lIGluIGNoaWxkT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJfX3RyZWVFbGVtZW50SWRlbnRpZmll
ciIpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAg
ICAgcHJvcGVydHkuaGFzQ2hpbGRyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgc2hvdyBzb21ldGhpbmcgbGlrZSAiZ2V0
dGVyIiAoYnVnIDE2NzM0KS4KKyAgICAgICAgICAgIHByb3BlcnR5LnRleHRDb250ZW50ID0gIlx1
MjAxNCI7IC8vIGVtIGRhc2gKKyAgICAgICAgICAgIHByb3BlcnR5LmlzR2V0dGVyID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOworICAgIH0KKyAg
ICByZXR1cm4gcHJvcGVydGllczsKK30KKworSW5qZWN0ZWRTY3JpcHQuc2V0UHJvcGVydHlWYWx1
ZSA9IGZ1bmN0aW9uKG9iamVjdFJlZiwgcHJvcGVydHlOYW1lLCBleHByZXNzaW9uKQoreworICAg
IHZhciBvYmplY3QgPSBJbmplY3RlZFNjcmlwdC5fcmVzb2x2ZU9iamVjdChvYmplY3RSZWYpOwor
ICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YXIgZXhwcmVz
c2lvbkxlbmd0aCA9IGV4cHJlc3Npb24ubGVuZ3RoOworICAgIGlmICghZXhwcmVzc2lvbkxlbmd0
aCkgeworICAgICAgICBkZWxldGUgb2JqZWN0W3Byb3BlcnR5TmFtZV07CisgICAgICAgIHJldHVy
biAhKHByb3BlcnR5TmFtZSBpbiBvYmplY3QpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAg
IC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2lzIHNvIHRoZSByZXN1bHQg
b2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAorICAgICAgICAvLyBvZiB0aGUgd2hvbGUgZXhwcmVz
c2lvbiBub3QgdGhlIGxhc3QgcG90ZW50aWFsIHN1Yi1leHByZXNzaW9uLgorCisgICAgICAgIC8v
IFRoZXJlIGlzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGhlcmU6IGV2YWwgaXMgbm93IGhhcHBl
bmluZyBhZ2FpbnN0IGdsb2JhbCBvYmplY3QsCisgICAgICAgIC8vIG5vdCBjYWxsIGZyYW1lIHdo
aWxlIG9uIGEgYnJlYWtwb2ludC4KKyAgICAgICAgLy8gVE9ETzogYnJpbmcgZXZhbHVhdGlvbiBh
Z2FpbnN0IGNhbGwgZnJhbWUgYmFjay4KKyAgICAgICAgdmFyIHJlc3VsdCA9IEluamVjdGVkU2Ny
aXB0Ll93aW5kb3coKS5ldmFsKCIoIiArIGV4cHJlc3Npb24gKyAiKSIpOworICAgICAgICAvLyBT
dG9yZSB0aGUgcmVzdWx0IGluIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgb2JqZWN0W3Byb3BlcnR5
TmFtZV0gPSByZXN1bHQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEluamVjdGVkU2NyaXB0Ll93
aW5kb3coKS5ldmFsKCJcIiIgKyBleHByZXNzaW9uLmVzY2FwZUNoYXJhY3RlcnMoIlwiIikgKyAi
XCIiKTsKKyAgICAgICAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gcmVzdWx0OworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfQorCitJbmplY3RlZFNjcmlwdC5fcmVzb2x2
ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdFJlZikKK3sKKyAgICB2YXIgb2JqZWN0ID0gSW5qZWN0
ZWRTY3JpcHQuX29iamVjdEZvcklkKG9iamVjdFJlZi5vYmplY3RJZCk7CisgICAgdmFyIHBhdGgg
PSBvYmplY3RSZWYucGF0aDsKKyAgICB2YXIgcHJvdG9EZXB0aCA9IG9iamVjdFJlZi5wcm90b0Rl
cHRoOworCisgICAgLy8gRm9sbG93IHRoZSBwcm9wZXJ0eSBwYXRoLgorICAgIGZvciAodmFyIGkg
PSAwOyBvYmplY3QgJiYgaSA8IHBhdGgubGVuZ3RoOyArK2kpCisgICAgICAgIG9iamVjdCA9IG9i
amVjdFtwYXRoW2ldXTsKKworICAgIC8vIEdldCB0byB0aGUgbmVjZXNzYXJ5IHByb3RvIGxheWVy
LgorICAgIGZvciAodmFyIGkgPSAwOyBvYmplY3QgJiYgaSA8IHByb3RvRGVwdGg7ICsraSkKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0Ll9fcHJvdG9fXzsKKworICAgIHJldHVybiBvYmplY3Q7Cit9
CisKIEluamVjdGVkU2NyaXB0Ll93aW5kb3cgPSBmdW5jdGlvbigpCiB7CiAgICAgcmV0dXJuIElu
c3BlY3RvckNvbnRyb2xsZXIuaW5zcGVjdGVkV2luZG93KCk7CkBAIC0zOTAsMyArNTAzLDggQEAg
SW5qZWN0ZWRTY3JpcHQuX25vZGVGb3JJZCA9IGZ1bmN0aW9uKG5vZGVJZCkKIHsKICAgICByZXR1
cm4gbm9kZUlkOwogfQorCitJbmplY3RlZFNjcmlwdC5fb2JqZWN0Rm9ySWQgPSBmdW5jdGlvbihv
YmplY3RJZCkKK3sKKyAgICByZXR1cm4gb2JqZWN0SWQ7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggZDhj
MzRkNy4uNjc2MWM4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09i
amVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMjQsMTcgKzI0LDI0IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbiA9IGZ1
bmN0aW9uKG9iamVjdCwgdGl0bGUsIHN1YnRpdGxlLCBlbXB0eVBsYWNlaG9sZGVyLCBpZ25vcmVI
YXNPd25Qcm9wZXJ0eSwgZXh0cmFQcm9wZXJ0aWVzLCB0cmVlRWxlbWVudENvbnN0cnVjdG9yKQor
V2ViSW5zcGVjdG9yLk9iamVjdFJlZiA9IGZ1bmN0aW9uKG9iamVjdElkLCBwYXRoLCBwcm90b0Rl
cHRoKQogewotICAgIGlmICghdGl0bGUpIHsKLSAgICAgICAgdGl0bGUgPSBPYmplY3QuZGVzY3Jp
YmUob2JqZWN0KTsKLSAgICAgICAgaWYgKHRpdGxlLm1hdGNoKC9Qcm90b3R5cGUkLykpIHsKLSAg
ICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFjZSgvUHJvdG90eXBlJC8sICIiKTsKLSAgICAg
ICAgICAgIGlmICghc3VidGl0bGUpCi0gICAgICAgICAgICAgICAgc3VidGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlByb3RvdHlwZSIpOwotICAgICAgICB9Ci0gICAgfQorICAgIHRoaXMu
b2JqZWN0SWQgPSBvYmplY3RJZDsKKyAgICB0aGlzLnBhdGggPSBwYXRoIHx8IFtdOworICAgIHRo
aXMucHJvdG9EZXB0aCA9IHByb3RvRGVwdGggfHwgMDsKK30KIAorV2ViSW5zcGVjdG9yLk9iamVj
dFByb3BlcnR5UmVmID0gZnVuY3Rpb24obmFtZSwgb2JqZWN0KQoreworICAgIHRoaXMubmFtZSA9
IG5hbWU7CisgICAgdGhpcy50eXBlID0gIm9iamVjdCI7CisgICAgdGhpcy5oYXNDaGlsZHJlbiA9
IHRydWU7CisgICAgdGhpcy50ZXh0Q29udGVudCA9IE9iamVjdC5kZXNjcmliZShvYmplY3QsIHRy
dWUpOworICAgIHRoaXMuY2hpbGRPYmplY3RSZWYgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFJl
ZihvYmplY3QpOworfQorCitXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24gPSBm
dW5jdGlvbihvYmplY3QsIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgaWdub3Jl
SGFzT3duUHJvcGVydHksIGV4dHJhUHJvcGVydGllcywgdHJlZUVsZW1lbnRDb25zdHJ1Y3RvcikK
K3sKICAgICB0aGlzLmVtcHR5UGxhY2Vob2xkZXIgPSAoZW1wdHlQbGFjZWhvbGRlciB8fCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk5vIFByb3BlcnRpZXMiKSk7CiAgICAgdGhpcy5vYmplY3QgPSBv
YmplY3Q7CiAgICAgdGhpcy5pZ25vcmVIYXNPd25Qcm9wZXJ0eSA9IGlnbm9yZUhhc093blByb3Bl
cnR5OwpAQCAtNTMsMjcgKzYwLDI2IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5wcm90b3R5cGUgPSB7CiAKICAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHZhciBwcm9wZXJ0aWVzID0gW107Ci0gICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcy5v
YmplY3QpCi0gICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocHJvcCk7CisgICAgICAgIHZhciBz
ZWxmID0gdGhpczsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24ocHJvcGVydGllcykg
eworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZShwcm9wZXJ0aWVzKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlci5nZXRQcm9wZXJ0aWVzKHRoaXMub2JqZWN0LCB0aGlzLmln
bm9yZUhhc093blByb3BlcnR5LCBjYWxsYmFjayk7CisgICAgfSwKKworICAgIF91cGRhdGU6IGZ1
bmN0aW9uKHByb3BlcnRpZXMpCisgICAgewogICAgICAgICBpZiAodGhpcy5leHRyYVByb3BlcnRp
ZXMpCiAgICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuZXh0cmFQcm9wZXJ0aWVzKQot
ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChwcm9wKTsKKyAgICAgICAgICAgICAgICBw
cm9wZXJ0aWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVJlZihwcm9wLCB0
aGlzLmV4dHJhUHJvcGVydGllc1twcm9wXSkpOwogICAgICAgICBwcm9wZXJ0aWVzLnNvcnQodGhp
cy5fZGlzcGxheVNvcnQpOwogCiAgICAgICAgIHRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLnJl
bW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5vYmplY3Q7Ci0g
ICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydGllc1tpXTsKLSAgICAgICAgICAg
IGlmICh0aGlzLmV4dHJhUHJvcGVydGllcyAmJiBwcm9wZXJ0eU5hbWUgaW4gdGhpcy5leHRyYVBy
b3BlcnRpZXMpCi0gICAgICAgICAgICAgICAgb2JqZWN0ID0gdGhpcy5leHRyYVByb3BlcnRpZXM7
Ci0gICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAiX190cmVlRWxlbWVudElkZW50aWZp
ZXIiKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCF0aGlzLmln
bm9yZUhhc093blByb3BlcnR5ICYmICJoYXNPd25Qcm9wZXJ0eSIgaW4gb2JqZWN0ICYmICFvYmpl
Y3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIHRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKG5l
dyB0aGlzLnRyZWVFbGVtZW50Q29uc3RydWN0b3Iob2JqZWN0LCBwcm9wZXJ0eU5hbWUpKTsKLSAg
ICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChu
ZXcgdGhpcy50cmVlRWxlbWVudENvbnN0cnVjdG9yKHByb3BlcnRpZXNbaV0pKTsKIAogICAgICAg
ICBpZiAoIXRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmNoaWxkcmVuLmxlbmd0aCkgewogICAg
ICAgICAgICAgdmFyIHRpdGxlID0gIjxkaXYgY2xhc3M9XCJpbmZvXCI+IiArIHRoaXMuZW1wdHlQ
bGFjZWhvbGRlciArICI8L2Rpdj4iOwpAQCAtODIsNyArODgsOSBAQCBXZWJJbnNwZWN0b3IuT2Jq
ZWN0UHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAot
ICAgIF9kaXNwbGF5U29ydDogZnVuY3Rpb24oYSxiKSB7CisgICAgX2Rpc3BsYXlTb3J0OiBmdW5j
dGlvbihwcm9wZXJ0eUEsIHByb3BlcnR5QikgeworICAgICAgICB2YXIgYSA9IHByb3BlcnR5QS5u
YW1lOworICAgICAgICB2YXIgYiA9IHByb3BlcnR5Qi5uYW1lOwogCiAgICAgICAgIC8vIGlmIHVz
ZWQgZWxzZXdoZXJlIG1ha2Ugc3VyZSB0bwogICAgICAgICAvLyAgLSBjb252ZXJ0IGEgYW5kIGIg
dG8gc3RyaW5ncyAobm90IG5lZWRlZCBoZXJlLCBwcm9wZXJ0aWVzIGFyZSBhbGwgc3RyaW5ncykK
QEAgLTEyMywxMCArMTMxLDkgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9u
LnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NlY3Rpb24ucHJvdG90
eXBlOwogCi1XZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudCA9IGZ1bmN0aW9u
KHBhcmVudE9iamVjdCwgcHJvcGVydHlOYW1lKQorV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5
VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihwcm9wZXJ0eSkKIHsKLSAgICB0aGlzLnBhcmVudE9iamVj
dCA9IHBhcmVudE9iamVjdDsKLSAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsK
KyAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7CiAKICAgICAvLyBQYXNzIGFuIGVtcHR5IHRp
dGxlLCB0aGUgdGl0bGUgZ2V0cyBtYWRlIGxhdGVyIGluIG9uYXR0YWNoLgogICAgIFRyZWVFbGVt
ZW50LmNhbGwodGhpcywgIiIsIG51bGwsIGZhbHNlKTsKQEAgLTE0NSwxNiArMTUyLDE4IEBAIFdl
Ykluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoICYmICF0aGlzLnNob3VsZFJlZnJlc2hDaGlsZHJl
bikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKCk7
CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rp
b24ocHJvcGVydGllcykgeworICAgICAgICAgICAgc2VsZi5yZW1vdmVDaGlsZHJlbigpOworICAg
ICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICB2YXIgY2hpbGRPYmplY3QgPSB0aGlzLnNhZmVQcm9wZXJ0eVZhbHVlKHRoaXMucGFyZW50
T2JqZWN0LCB0aGlzLnByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZhciBwcm9wZXJ0aWVzID0gT2Jq
ZWN0LnNvcnRlZFByb3BlcnRpZXMoY2hpbGRPYmplY3QsIFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuX2Rpc3BsYXlTb3J0KTsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcHJv
cGVydHlOYW1lID0gcHJvcGVydGllc1tpXTsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT09ICJfX3RyZWVFbGVtZW50SWRlbnRpZmllciIpCi0gICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rp
b24udHJlZUVsZW1lbnRDb25zdHJ1Y3RvcihjaGlsZE9iamVjdCwgcHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgICAgIHByb3BlcnRpZXMuc29ydChzZWxmLl9kaXNwbGF5U29ydCk7
CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgICAgICBzZWxmLmFwcGVuZENoaWxkKG5ldyBzZWxmLnRyZWVPdXRsaW5l
LnNlY3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzW2ldKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXIuZ2V0UHJvcGVy
dGllcyh0aGlzLnByb3BlcnR5LmNoaWxkT2JqZWN0UmVmLCBmYWxzZSwgY2FsbGJhY2spOwogICAg
IH0sCiAKICAgICBvbmRibGNsaWNrOiBmdW5jdGlvbihlbGVtZW50LCBldmVudCkKQEAgLTE2OSw0
MSArMTc4LDIyIEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKIAogICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGNo
aWxkT2JqZWN0ID0gdGhpcy5zYWZlUHJvcGVydHlWYWx1ZSh0aGlzLnBhcmVudE9iamVjdCwgdGhp
cy5wcm9wZXJ0eU5hbWUpOwotICAgICAgICB2YXIgaXNHZXR0ZXIgPSAoIl9fbG9va3VwR2V0dGVy
X18iIGluIHRoaXMucGFyZW50T2JqZWN0ICYmIHRoaXMucGFyZW50T2JqZWN0Ll9fbG9va3VwR2V0
dGVyX18odGhpcy5wcm9wZXJ0eU5hbWUpKTsKLQogICAgICAgICB2YXIgbmFtZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgIG5hbWVFbGVtZW50LmNsYXNz
TmFtZSA9ICJuYW1lIjsKLSAgICAgICAgbmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnBy
b3BlcnR5TmFtZTsKKyAgICAgICAgbmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnByb3Bl
cnR5Lm5hbWU7CiAKICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CiAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmNsYXNzTmFtZSA9ICJ2
YWx1ZSI7Ci0gICAgICAgIGlmICghaXNHZXR0ZXIpIHsKLSAgICAgICAgICAgIHRoaXMudmFsdWVF
bGVtZW50LnRleHRDb250ZW50ID0gT2JqZWN0LmRlc2NyaWJlKGNoaWxkT2JqZWN0LCB0cnVlKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBzaG93
IHNvbWV0aGluZyBsaWtlICJnZXR0ZXIiIChidWcgMTY3MzQpLgotICAgICAgICAgICAgdGhpcy52
YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiXHUyMDE0IjsgLy8gZW0gZGFzaAotICAgICAgICAg
ICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZGltbWVkIik7Ci0gICAgICAgIH0K
KyAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnByb3BlcnR5LnRl
eHRDb250ZW50OworICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5pc0dldHRlcikKKyAgICAgICAg
ICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZGltbWVkIik7CiAKICAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgICAgICB0aGlzLmxp
c3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChuYW1lRWxlbWVudCk7CiAgICAgICAgIHRoaXMubGlz
dEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI6ICIpKTsK
ICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy52YWx1ZUVsZW1l
bnQpOwotCi0gICAgICAgIHZhciBoYXNTdWJQcm9wZXJ0aWVzID0gZmFsc2U7Ci0gICAgICAgIHZh
ciB0eXBlID0gdHlwZW9mIGNoaWxkT2JqZWN0OwotICAgICAgICBpZiAoY2hpbGRPYmplY3QgJiYg
KHR5cGUgPT09ICJvYmplY3QiIHx8IHR5cGUgPT09ICJmdW5jdGlvbiIpKSB7Ci0gICAgICAgICAg
ICBmb3IgKHZhciBzdWJQcm9wZXJ0eU5hbWUgaW4gY2hpbGRPYmplY3QpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoc3ViUHJvcGVydHlOYW1lID09PSAiX190cmVlRWxlbWVudElkZW50aWZpZXIiKQot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBoYXNTdWJQcm9w
ZXJ0aWVzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotCi0gICAgICAgIHRoaXMuaGFzQ2hpbGRyZW4gPSBoYXNTdWJQcm9wZXJ0aWVzOwor
ICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gdGhpcy5wcm9wZXJ0eS5oYXNDaGlsZHJlbjsKICAg
ICB9LAogCiAgICAgdXBkYXRlU2libGluZ3M6IGZ1bmN0aW9uKCkKQEAgLTI1Myw2NyArMjQzLDI3
IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5lZGl0aW5nRW5kZWQoY29udGV4dCk7CiAgICAgfSwKIAotICAgIGV2YWx1
YXRlRXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVzc2lvbiwgY2FsbGJhY2spCi0gICAgewotICAg
ICAgICAvLyBFdmFsdWF0ZSBpbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNhbGwgZnJhbWUgaWYg
dGhlIGRlYnVnZ2VyIGlzIHBhdXNlZC4KLSAgICAgICAgLy8gT3RoZXJ3aXNlIGV2YWx1YXRlIGlu
IGFnYWluc3QgdGhlIGluc3BlY3RlZCB3aW5kb3cuCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
cGFuZWxzLnNjcmlwdHMgJiYgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCAmJiB0
aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxsRnJhbWVXaGVuUGF1c2Vk
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5ldmFsdWF0
ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZXhwcmVzc2lvbiwgZmFsc2UsIGNhbGxiYWNrKTsKLSAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBJbnNwZWN0b3JDb250cm9sbGVyLmlu
c3BlY3RlZFdpbmRvdygpLmV2YWwoZXhwcmVzc2lvbik7Ci0gICAgICAgICAgICBjYWxsYmFjayhy
ZXN1bHQpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhlLCB0
cnVlKTsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBhcHBseUV4cHJlc3Npb246IGZ1bmN0aW9u
KGV4cHJlc3Npb24sIHVwZGF0ZUludGVyZmFjZSkKICAgICB7Ci0gICAgICAgIHZhciBleHByZXNz
aW9uTGVuZ3RoID0gZXhwcmVzc2lvbi50cmltV2hpdGVzcGFjZSgpLmxlbmd0aDsKLQotICAgICAg
ICBpZiAoIWV4cHJlc3Npb25MZW5ndGgpIHsKLSAgICAgICAgICAgIC8vIFRoZSB1c2VyIGRlbGV0
ZWQgZXZlcnl0aGluZywgc28gdHJ5IHRvIGRlbGV0ZSB0aGUgcHJvcGVydHkuCi0gICAgICAgICAg
ICBkZWxldGUgdGhpcy5wYXJlbnRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdOwotCi0gICAgICAg
ICAgICBpZiAodXBkYXRlSW50ZXJmYWNlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJv
cGVydHlOYW1lIGluIHRoaXMucGFyZW50T2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IFRoZSBwcm9wZXJ0eSB3YXMgbm90IGRlbGV0ZWQsIHNvIHVwZGF0ZS4KLSAgICAgICAgICAgICAg
ICAgICAgdGhpcy51cGRhdGUoKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgd2FzIGRlbGV0ZWQsIHNvIHJlbW92ZSB0aGlzIHRy
ZWUgZWxlbWVudC4KLSAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQucmVtb3ZlQ2hpbGQo
dGhpcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQorICAgICAgICBleHByZXNz
aW9uID0gZXhwcmVzc2lvbi50cmltV2hpdGVzcGFjZSgpOworICAgICAgICB2YXIgZXhwcmVzc2lv
bkxlbmd0aCA9IGV4cHJlc3Npb24ubGVuZ3RoOworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Cisg
ICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGlm
ICghdXBkYXRlSW50ZXJmYWNlKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAg
ICAgICAgICAgc2VsZi51cGRhdGUoKTsKIAotICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8g
U3Vycm91bmQgdGhlIGV4cHJlc3Npb24gaW4gcGFyZW50aGVzaXMgc28gdGhlIHJlc3VsdCBvZiB0
aGUgZXZhbCBpcyB0aGUgcmVzdWx0Ci0gICAgICAgICAgICAvLyBvZiB0aGUgd2hvbGUgZXhwcmVz
c2lvbiBub3QgdGhlIGxhc3QgcG90ZW50aWFsIHN1Yi1leHByZXNzaW9uLgotICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKCIoIiArIGV4cHJlc3Npb24gKyAi
KSIpOwotCi0gICAgICAgICAgICAvLyBTdG9yZSB0aGUgcmVzdWx0IGluIHRoZSBwcm9wZXJ0eS4K
LSAgICAgICAgICAgIHRoaXMucGFyZW50T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXSA9IHJlc3Vs
dDsKLSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICAgIC8vIFRyeSB0byB1cGRhdGUgYXMgYSBzdHJpbmcKLSAgICAgICAgICAgICAgICB2YXIgcmVz
dWx0ID0gdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24oIlwiIiArIGV4cHJlc3Npb24uZXNjYXBlQ2hh
cmFjdGVycygiXCIiKSArICJcIiIpOwotCi0gICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHJl
c3VsdCBpbiB0aGUgcHJvcGVydHkuCi0gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRPYmplY3Rb
dGhpcy5wcm9wZXJ0eU5hbWVdID0gcmVzdWx0OwotICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gVGhlIGV4cHJlc3Npb24gZmFpbGVkIHNvIGRvbid0IGNoYW5nZSB0
aGUgdmFsdWUuIFNvIGp1c3QgdXBkYXRlIGFuZCByZXR1cm4uCi0gICAgICAgICAgICAgICAgaWYg
KHVwZGF0ZUludGVyZmFjZSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoIWV4cHJlc3Npb25MZW5ndGgp
IHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgd2FzIGRlbGV0ZWQsIHNvIHJlbW92
ZSB0aGlzIHRyZWUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICBzZWxmLnBhcmVudC5yZW1vdmVD
aGlsZCh0aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQ2Fs
bCB1cGRhdGVTaWJsaW5ncyBzaW5jZSB0aGVpciB2YWx1ZSBtaWdodCBiZSBiYXNlZCBvbiB0aGUg
dmFsdWUgdGhhdCBqdXN0IGNoYW5nZWQuCisgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVTaWJs
aW5ncygpOwogICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHVwZGF0ZUlu
dGVyZmFjZSkgewotICAgICAgICAgICAgLy8gQ2FsbCB1cGRhdGVTaWJsaW5ncyBzaW5jZSB0aGVp
ciB2YWx1ZSBtaWdodCBiZSBiYXNlZCBvbiB0aGUgdmFsdWUgdGhhdCBqdXN0IGNoYW5nZWQuCi0g
ICAgICAgICAgICB0aGlzLnVwZGF0ZVNpYmxpbmdzKCk7Ci0gICAgICAgIH0KKyAgICAgICAgfTsK
KyAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlci5zZXRQcm9wZXJ0eVZhbHVlKHRoaXMucHJvcGVy
dHkucGFyZW50T2JqZWN0UmVmLCB0aGlzLnByb3BlcnR5Lm5hbWUsIGV4cHJlc3Npb24udHJpbVdo
aXRlc3BhY2UoKSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMKaW5kZXggNzBkYjgwNS4u
NzAzM2EyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRp
ZXNTaWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVy
dGllc1NpZGViYXJQYW5lLmpzCkBAIC00MywxMSArNDMsMjEgQEAgV2ViSW5zcGVjdG9yLlByb3Bl
cnRpZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghb2JqZWN0KQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGZvciAodmFyIHByb3RvdHlwZSA9IG9iamVjdDsg
cHJvdG90eXBlOyBwcm90b3R5cGUgPSBwcm90b3R5cGUuX19wcm90b19fKSB7Ci0gICAgICAgICAg
ICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24o
cHJvdG90eXBlKTsKLSAgICAgICAgICAgIHRoaXMuc2VjdGlvbnMucHVzaChzZWN0aW9uKTsKLSAg
ICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoc2VjdGlvbi5lbGVtZW50KTsKLSAgICAgICAgfQor
ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9u
KHByb3RvdHlwZXMpIHsKKyAgICAgICAgICAgIHZhciBib2R5ID0gc2VsZi5ib2R5RWxlbWVudDsK
KyAgICAgICAgICAgIGJvZHkucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIHNlbGYuc2Vj
dGlvbnMgPSBbXTsKKworICAgICAgICAgICAgLy8gR2V0IGFycmF5IG9mIHByb3RvdHlwZSB1c2Vy
LWZyaWVuZGx5IG5hbWVzLgorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b3R5
cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHByb3RvdHlwZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuT2JqZWN0UmVmKG9iamVjdCwgW10sIGkpOworICAgICAgICAgICAgICAgIHZh
ciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihwcm90
b3R5cGUsIHByb3RvdHlwZXNbaV0sIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvdG90eXBlIikp
OworICAgICAgICAgICAgICAgIHNlbGYuc2VjdGlvbnMucHVzaChzZWN0aW9uKTsKKyAgICAgICAg
ICAgICAgICBib2R5LmFwcGVuZENoaWxkKHNlY3Rpb24uZWxlbWVudCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXIuZ2V0UHJvdG90eXBlcyhu
ZXcgV2ViSW5zcGVjdG9yLk9iamVjdFJlZihvYmplY3QpLCBjYWxsYmFjayk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGVi
YXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFy
UGFuZS5qcwppbmRleCAxNTdjZWU5Li5hZGM5M2Q4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTg1LDcgKzg1LDcg
QEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpZiAoIXRpdGxlIHx8IHRpdGxlID09PSBzdWJ0aXRsZSkKICAgICAgICAgICAgICAg
ICBzdWJ0aXRsZSA9IG51bGw7CiAKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihzY29wZU9iamVjdCwgdGl0bGUsIHN1YnRp
dGxlLCBlbXB0eVBsYWNlaG9sZGVyLCB0cnVlLCBleHRyYVByb3BlcnRpZXMsIFdlYkluc3BlY3Rv
ci5TY29wZVZhcmlhYmxlVHJlZUVsZW1lbnQpOworICAgICAgICAgICAgdmFyIHNlY3Rpb24gPSBu
ZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uKG5ldyBXZWJJbnNwZWN0b3Iu
T2JqZWN0UmVmKHNjb3BlT2JqZWN0KSwgdGl0bGUsIHN1YnRpdGxlLCBlbXB0eVBsYWNlaG9sZGVy
LCB0cnVlLCBleHRyYVByb3BlcnRpZXMsIFdlYkluc3BlY3Rvci5TY29wZVZhcmlhYmxlVHJlZUVs
ZW1lbnQpOwogICAgICAgICAgICAgc2VjdGlvbi5lZGl0SW5TZWxlY3RlZENhbGxGcmFtZVdoZW5Q
YXVzZWQgPSB0cnVlOwogICAgICAgICAgICAgc2VjdGlvbi5wYW5lID0gdGhpczsKIAo=
</data>
<flag name="review"
          id="18477"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34321</attachid>
            <date>2009-08-07 13:43:23 -0700</date>
            <delta_ts>2009-08-07 13:50:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>move_properties.txt</filename>
            <type>text/plain</type>
            <size>26688</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTFmZmIwMS4uZmRhYTlkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0wOC0wNyAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IE1ha2UgcHJvcGVydGllcyBpbnNwZWN0
aW9uIHNlcmlhbGl6ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI4MDc4CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzOgorICAgICAgICAoSW5zcGVjdG9yQ29udHJvbGxlci5nZXRQcm90b3R5cGVzKToKKyAgICAg
ICAgKEluc3BlY3RvckNvbnRyb2xsZXIuZ2V0UHJvcGVydGllcyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qczoKKyAgICAgICAgKEluamVjdGVkU2NyaXB0
LmdldFByb3RvdHlwZXMpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQuZ2V0UHJvcGVydGllcyk6
CisgICAgICAgIChJbmplY3RlZFNjcmlwdC5zZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk9iamVjdFJlZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJv
cGVydHlSZWYpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9u
LnByb3RvdHlwZS5vbnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUudXBkYXRlLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuX3VwZGF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90
b3R5cGUub25wb3B1bGF0ZS5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBl
LnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJh
clBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NpZGViYXJQYW5lLnBy
b3RvdHlwZS51cGRhdGUuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3BlcnRp
ZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlKToKKwogMjAwOS0wOC0wNyAgQWRhbSBUcmVh
dCAgPGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTE2YWY2
ZC4uOTg2YWNiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMDg3
OSw3ICszMDg3OSwxNSBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxDb25zb2xlLmpzIg0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXENoYW5nZXNWaWV3LmpzIg0KKwkJ
CQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGlu
c3BlY3Rvclxmcm9udC1lbmRcQ29sb3IuanMiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxDb25zb2xl
Vmlldy5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KQEAgLTMwOTE5LDYg
KzMwOTI3LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXERyYXdlci5qcyINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXEVsZW1lbnRzUGFuZWwuanMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0z
MDkzMSw2ICszMDk0MywxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxJbmplY3RlZFNjcmlwdC5q
cyINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXGluc3BlY3Rvci5jc3MiDQogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCkBAIC0zMDk1NSw2ICszMDk3MSwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxPYmpl
Y3RQcm94eS5qcyINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFBhbmVsLmpzIg0KIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmlu
ZGV4IDlhNGE5NGEuLjY4NTFlZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKQEAgLTUxMyw3ICs1MTMsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcu
cHJvdG90eXBlID0gewogCiAgICAgX2Zvcm1hdG9iamVjdDogZnVuY3Rpb24ob2JqLCBlbGVtKQog
ICAgIHsKLSAgICAgICAgZWxlbS5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFBy
b3BlcnRpZXNTZWN0aW9uKG9iaiwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSkuZWxlbWVudCk7Cisg
ICAgICAgIGVsZW0uYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVz
U2VjdGlvbihuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3h5KG9iaiksIE9iamVjdC5kZXNjcmli
ZShvYmosIHRydWUpLCBudWxsLCBudWxsLCB0cnVlKS5lbGVtZW50KTsKICAgICB9LAogCiAgICAg
X2Zvcm1hdGVycm9yOiBmdW5jdGlvbihvYmosIGVsZW0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKaW5kZXggNDVlOWQ1OC4uYjRlZjk5NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNzAzLDMgKzcwMywyMiBAQCBJbnNwZWN0b3JDb250
cm9sbGVyLnNldFN0eWxlUHJvcGVydHkgPSBmdW5jdGlvbihzdHlsZUlkLCBuYW1lLCB2YWx1ZSwg
Y2FsbGJhY2spCiAgICAgICAgIGNhbGxiYWNrKEluamVjdGVkU2NyaXB0LnNldFN0eWxlUHJvcGVy
dHkoc3R5bGVJZCwgbmFtZSwgdmFsdWUpKTsKICAgICB9LCAwKQogfQorCitJbnNwZWN0b3JDb250
cm9sbGVyLmdldFByb3RvdHlwZXMgPSBmdW5jdGlvbihvYmplY3RSZWYsIGNhbGxiYWNrKSB7Cisg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgY2FsbGJhY2soSW5qZWN0ZWRTY3Jp
cHQuZ2V0UHJvdG90eXBlcyhvYmplY3RSZWYpKTsKKyAgICB9LCAwKQorfQorCitJbnNwZWN0b3JD
b250cm9sbGVyLmdldFByb3BlcnRpZXMgPSBmdW5jdGlvbihvYmplY3RSZWYsIGlnbm9yZUhhc093
blByb3BlcnR5LCBjYWxsYmFjaykgeworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgIGNhbGxiYWNrKEluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMob2JqZWN0UmVmLCBpZ25v
cmVIYXNPd25Qcm9wZXJ0eSkpOworICAgIH0sIDApCit9CisKK0luc3BlY3RvckNvbnRyb2xsZXIu
c2V0UHJvcGVydHlWYWx1ZSA9IGZ1bmN0aW9uKG9iamVjdFJlZiwgcHJvcGVydHlOYW1lLCBleHBy
ZXNzaW9uLCBjYWxsYmFjaykgeworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg
IGNhbGxiYWNrKEluamVjdGVkU2NyaXB0LnNldFByb3BlcnR5VmFsdWUob2JqZWN0UmVmLCBwcm9w
ZXJ0eU5hbWUsIGV4cHJlc3Npb24pKTsKKyAgICB9LCAwKQorfQorCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggM2QyOWIyNC4uNTYyMTlmYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0Lmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpAQCAt
MzgxLDEyICszODEsMTM0IEBAIEluamVjdGVkU2NyaXB0Ll9nZXRTaG9ydGhhbmRQcmlvcml0eSA9
IGZ1bmN0aW9uKHN0eWxlLCBzaG9ydGhhbmRQcm9wZXJ0eSkKICAgICByZXR1cm4gcHJpb3JpdHk7
CiB9CiAKK0luamVjdGVkU2NyaXB0LmdldFByb3RvdHlwZXMgPSBmdW5jdGlvbihvYmplY3RSZWYp
Cit7CisgICAgdmFyIG9iamVjdCA9IEluamVjdGVkU2NyaXB0Ll9yZXNvbHZlT2JqZWN0KG9iamVj
dFJlZik7CisKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIgcHJvdG90eXBlID0g
b2JqZWN0OyBwcm90b3R5cGU7IHByb3RvdHlwZSA9IHByb3RvdHlwZS5fX3Byb3RvX18pIHsKKyAg
ICAgICAgdmFyIHRpdGxlID0gT2JqZWN0LmRlc2NyaWJlKHByb3RvdHlwZSk7CisgICAgICAgIGlm
ICh0aXRsZS5tYXRjaCgvUHJvdG90eXBlJC8pKSB7CisgICAgICAgICAgICB0aXRsZSA9IHRpdGxl
LnJlcGxhY2UoL1Byb3RvdHlwZSQvLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LnB1
c2godGl0bGUpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitJbmplY3RlZFNjcmlw
dC5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24ob2JqZWN0UmVmLCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSkKK3sKKyAgICB2YXIgb2JqZWN0ID0gSW5qZWN0ZWRTY3JpcHQuX3Jlc29sdmVPYmplY3Qob2Jq
ZWN0UmVmKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dmFyIHByb3BlcnRpZXMgPSBbXTsKKyAgICAvLyBHbyBvdmVyIHByb3BlcnRpZXMsIHByZXBhcmUg
cmVzdWx0cy4KKyAgICBmb3IgKHZhciBwcm9wZXJ0eU5hbWUgaW4gb2JqZWN0KSB7CisgICAgICAg
IGlmICghaWdub3JlSGFzT3duUHJvcGVydHkgJiYgImhhc093blByb3BlcnR5IiBpbiBvYmplY3Qg
JiYgIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgLy9UT0RPOiByZW1vdmUgdGhpcyBvbmNlIG9iamVjdCBiZWNvbWVz
IHJlYWxseSByZW1vdGUuCisgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJfX3RyZWVFbGVt
ZW50SWRlbnRpZmllciIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIHByb3Bl
cnR5ID0ge307CisgICAgICAgIHByb3BlcnR5Lm5hbWUgPSBwcm9wZXJ0eU5hbWU7CisgICAgICAg
IHZhciBpc0dldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xv
b2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7CisgICAgICAgIGlmICghcHJvcGVydHkuaXNHZXR0
ZXIpIHsKKyAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdCA9IG9iamVjdFtwcm9wZXJ0eU5hbWVd
OworICAgICAgICAgICAgcHJvcGVydHkudHlwZSA9IHR5cGVvZiBjaGlsZE9iamVjdDsKKyAgICAg
ICAgICAgIHByb3BlcnR5LnRleHRDb250ZW50ID0gT2JqZWN0LmRlc2NyaWJlKGNoaWxkT2JqZWN0
LCB0cnVlKTsKKyAgICAgICAgICAgIHByb3BlcnR5LnBhcmVudE9iamVjdFJlZiA9IG9iamVjdFJl
ZjsKKyAgICAgICAgICAgIHZhciBwYXJlbnRQYXRoID0gb2JqZWN0UmVmLnBhdGguc2xpY2UoKTsK
KyAgICAgICAgICAgIHByb3BlcnR5LmNoaWxkT2JqZWN0UmVmID0geworICAgICAgICAgICAgICAg
IG9iamVjdElkIDogb2JqZWN0UmVmLm9iamVjdElkLAorICAgICAgICAgICAgICAgIHBhdGggOiBw
YXJlbnRQYXRoLnNwbGljZShwYXJlbnRQYXRoLmxlbmd0aCwgMCwgcHJvcGVydHlOYW1lKSwKKyAg
ICAgICAgICAgICAgICBwcm90b0RlcHRoIDogb2JqZWN0UmVmLnByb3RvRGVwdGgKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICBpZiAoY2hpbGRPYmplY3QgJiYgKHByb3BlcnR5LnR5cGUgPT09
ICJvYmplY3QiIHx8IHByb3BlcnR5LnR5cGUgPT09ICJmdW5jdGlvbiIpKSB7CisgICAgICAgICAg
ICAgICAgZm9yICh2YXIgc3ViUHJvcGVydHlOYW1lIGluIGNoaWxkT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJfX3RyZWVFbGVtZW50SWRlbnRpZmll
ciIpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAg
ICAgcHJvcGVydHkuaGFzQ2hpbGRyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgc2hvdyBzb21ldGhpbmcgbGlrZSAiZ2V0
dGVyIiAoYnVnIDE2NzM0KS4KKyAgICAgICAgICAgIHByb3BlcnR5LnRleHRDb250ZW50ID0gIlx1
MjAxNCI7IC8vIGVtIGRhc2gKKyAgICAgICAgICAgIHByb3BlcnR5LmlzR2V0dGVyID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOworICAgIH0KKyAg
ICByZXR1cm4gcHJvcGVydGllczsKK30KKworSW5qZWN0ZWRTY3JpcHQuc2V0UHJvcGVydHlWYWx1
ZSA9IGZ1bmN0aW9uKG9iamVjdFJlZiwgcHJvcGVydHlOYW1lLCBleHByZXNzaW9uKQoreworICAg
IHZhciBvYmplY3QgPSBJbmplY3RlZFNjcmlwdC5fcmVzb2x2ZU9iamVjdChvYmplY3RSZWYpOwor
ICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YXIgZXhwcmVz
c2lvbkxlbmd0aCA9IGV4cHJlc3Npb24ubGVuZ3RoOworICAgIGlmICghZXhwcmVzc2lvbkxlbmd0
aCkgeworICAgICAgICBkZWxldGUgb2JqZWN0W3Byb3BlcnR5TmFtZV07CisgICAgICAgIHJldHVy
biAhKHByb3BlcnR5TmFtZSBpbiBvYmplY3QpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAg
IC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2lzIHNvIHRoZSByZXN1bHQg
b2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAorICAgICAgICAvLyBvZiB0aGUgd2hvbGUgZXhwcmVz
c2lvbiBub3QgdGhlIGxhc3QgcG90ZW50aWFsIHN1Yi1leHByZXNzaW9uLgorCisgICAgICAgIC8v
IFRoZXJlIGlzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGhlcmU6IGV2YWwgaXMgbm93IGhhcHBl
bmluZyBhZ2FpbnN0IGdsb2JhbCBvYmplY3QsCisgICAgICAgIC8vIG5vdCBjYWxsIGZyYW1lIHdo
aWxlIG9uIGEgYnJlYWtwb2ludC4KKyAgICAgICAgLy8gVE9ETzogYnJpbmcgZXZhbHVhdGlvbiBh
Z2FpbnN0IGNhbGwgZnJhbWUgYmFjay4KKyAgICAgICAgdmFyIHJlc3VsdCA9IEluamVjdGVkU2Ny
aXB0Ll93aW5kb3coKS5ldmFsKCIoIiArIGV4cHJlc3Npb24gKyAiKSIpOworICAgICAgICAvLyBT
dG9yZSB0aGUgcmVzdWx0IGluIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgb2JqZWN0W3Byb3BlcnR5
TmFtZV0gPSByZXN1bHQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEluamVjdGVkU2NyaXB0Ll93
aW5kb3coKS5ldmFsKCJcIiIgKyBleHByZXNzaW9uLmVzY2FwZUNoYXJhY3RlcnMoIlwiIikgKyAi
XCIiKTsKKyAgICAgICAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gcmVzdWx0OworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfQorCitJbmplY3RlZFNjcmlwdC5fcmVzb2x2
ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdFJlZikKK3sKKyAgICB2YXIgb2JqZWN0ID0gSW5qZWN0
ZWRTY3JpcHQuX29iamVjdEZvcklkKG9iamVjdFJlZi5vYmplY3RJZCk7CisgICAgdmFyIHBhdGgg
PSBvYmplY3RSZWYucGF0aDsKKyAgICB2YXIgcHJvdG9EZXB0aCA9IG9iamVjdFJlZi5wcm90b0Rl
cHRoOworCisgICAgLy8gRm9sbG93IHRoZSBwcm9wZXJ0eSBwYXRoLgorICAgIGZvciAodmFyIGkg
PSAwOyBvYmplY3QgJiYgaSA8IHBhdGgubGVuZ3RoOyArK2kpCisgICAgICAgIG9iamVjdCA9IG9i
amVjdFtwYXRoW2ldXTsKKworICAgIC8vIEdldCB0byB0aGUgbmVjZXNzYXJ5IHByb3RvIGxheWVy
LgorICAgIGZvciAodmFyIGkgPSAwOyBvYmplY3QgJiYgaSA8IHByb3RvRGVwdGg7ICsraSkKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0Ll9fcHJvdG9fXzsKKworICAgIHJldHVybiBvYmplY3Q7Cit9
CisKIEluamVjdGVkU2NyaXB0Ll93aW5kb3cgPSBmdW5jdGlvbigpCiB7CisgICAgLy8gVE9ETzog
cmVwbGFjZSB3aXRoICdyZXR1cm4gd2luZG93Oycgb25jZSB0aGlzIHNjcmlwdCBpcyBpbmplY3Rl
ZCBpbnRvCisgICAgLy8gdGhlIHBhZ2UncyBjb250ZXh0LgogICAgIHJldHVybiBJbnNwZWN0b3JD
b250cm9sbGVyLmluc3BlY3RlZFdpbmRvdygpOwogfQogCiBJbmplY3RlZFNjcmlwdC5fbm9kZUZv
cklkID0gZnVuY3Rpb24obm9kZUlkKQogeworICAgIC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBub2Rl
IGxvb2t1cCBpbiB0aGUgSW5zcGVjdG9yRE9NQWdlbnQgb25jZSBET01BZ2VudCBub2RlcyBhcmUg
dXNlZC4KICAgICByZXR1cm4gbm9kZUlkOwogfQorCitJbmplY3RlZFNjcmlwdC5fb2JqZWN0Rm9y
SWQgPSBmdW5jdGlvbihvYmplY3RJZCkKK3sKKyAgICAvLyBUT0RPOiByZXBsYWNlIHdpdGggbm9k
ZSBsb29rdXBzIGZvciBub2RlIGlkcyBhbmQgZXZhbHVhdGlvbiByZXN1bHQgbG9va3VwcyBmb3Ig
dGhlIHJlc3Qgb2YgaWRzLgorICAgIHJldHVybiBvYmplY3RJZDsKK30KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRl
eCBkOGMzNGQ3Li44NzMwNDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC0yNiwxNSArMjYsNiBAQAogCiBX
ZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24gPSBmdW5jdGlvbihvYmplY3QsIHRp
dGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgaWdub3JlSGFzT3duUHJvcGVydHksIGV4
dHJhUHJvcGVydGllcywgdHJlZUVsZW1lbnRDb25zdHJ1Y3RvcikKIHsKLSAgICBpZiAoIXRpdGxl
KSB7Ci0gICAgICAgIHRpdGxlID0gT2JqZWN0LmRlc2NyaWJlKG9iamVjdCk7Ci0gICAgICAgIGlm
ICh0aXRsZS5tYXRjaCgvUHJvdG90eXBlJC8pKSB7Ci0gICAgICAgICAgICB0aXRsZSA9IHRpdGxl
LnJlcGxhY2UoL1Byb3RvdHlwZSQvLCAiIik7Ci0gICAgICAgICAgICBpZiAoIXN1YnRpdGxlKQot
ICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm90b3R5
cGUiKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHRoaXMuZW1wdHlQbGFjZWhvbGRlciA9IChl
bXB0eVBsYWNlaG9sZGVyIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gUHJvcGVydGllcyIp
KTsKICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDsKICAgICB0aGlzLmlnbm9yZUhhc093blByb3Bl
cnR5ID0gaWdub3JlSGFzT3duUHJvcGVydHk7CkBAIC01MywyNyArNDQsMjYgQEAgV2ViSW5zcGVj
dG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKIAogICAgIHVwZGF0ZTog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKLSAgICAgICAg
Zm9yICh2YXIgcHJvcCBpbiB0aGlzLm9iamVjdCkKLSAgICAgICAgICAgIHByb3BlcnRpZXMucHVz
aChwcm9wKTsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICB2YXIgY2FsbGJhY2sg
PSBmdW5jdGlvbihwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc2VsZi5fdXBkYXRlKHByb3BlcnRp
ZXMpOworICAgICAgICB9OworICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyLmdldFByb3BlcnRp
ZXModGhpcy5vYmplY3QsIHRoaXMuaWdub3JlSGFzT3duUHJvcGVydHksIGNhbGxiYWNrKTsKKyAg
ICB9LAorCisgICAgX3VwZGF0ZTogZnVuY3Rpb24ocHJvcGVydGllcykKKyAgICB7CiAgICAgICAg
IGlmICh0aGlzLmV4dHJhUHJvcGVydGllcykKICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4g
dGhpcy5leHRyYVByb3BlcnRpZXMpCi0gICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHBy
b3ApOworICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnR5UHJveHkocHJvcCwgdGhpcy5leHRyYVByb3BlcnRpZXNbcHJvcF0pKTsKICAg
ICAgICAgcHJvcGVydGllcy5zb3J0KHRoaXMuX2Rpc3BsYXlTb3J0KTsKIAogICAgICAgICB0aGlz
LnByb3BlcnRpZXNUcmVlT3V0bGluZS5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFy
IG9iamVjdCA9IHRoaXMub2JqZWN0OwotICAgICAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IHBy
b3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAodGhpcy5leHRyYVByb3BlcnRpZXMgJiYgcHJv
cGVydHlOYW1lIGluIHRoaXMuZXh0cmFQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIG9iamVj
dCA9IHRoaXMuZXh0cmFQcm9wZXJ0aWVzOwotICAgICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9
PT0gIl9fdHJlZUVsZW1lbnRJZGVudGlmaWVyIikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIGlmICghdGhpcy5pZ25vcmVIYXNPd25Qcm9wZXJ0eSAmJiAiaGFzT3duUHJv
cGVydHkiIGluIG9iamVjdCAmJiAhb2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkp
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNU
cmVlT3V0bGluZS5hcHBlbmRDaGlsZChuZXcgdGhpcy50cmVlRWxlbWVudENvbnN0cnVjdG9yKG9i
amVjdCwgcHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVz
VHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQobmV3IHRoaXMudHJlZUVsZW1lbnRDb25zdHJ1Y3Rvcihw
cm9wZXJ0aWVzW2ldKSk7CiAKICAgICAgICAgaWYgKCF0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGlu
ZS5jaGlsZHJlbi5sZW5ndGgpIHsKICAgICAgICAgICAgIHZhciB0aXRsZSA9ICI8ZGl2IGNsYXNz
PVwiaW5mb1wiPiIgKyB0aGlzLmVtcHR5UGxhY2Vob2xkZXIgKyAiPC9kaXY+IjsKQEAgLTgyLDcg
KzcyLDkgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9
IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfZGlzcGxheVNvcnQ6IGZ1bmN0aW9uKGEsYikg
eworICAgIF9kaXNwbGF5U29ydDogZnVuY3Rpb24ocHJvcGVydHlBLCBwcm9wZXJ0eUIpIHsKKyAg
ICAgICAgdmFyIGEgPSBwcm9wZXJ0eUEubmFtZTsKKyAgICAgICAgdmFyIGIgPSBwcm9wZXJ0eUIu
bmFtZTsKIAogICAgICAgICAvLyBpZiB1c2VkIGVsc2V3aGVyZSBtYWtlIHN1cmUgdG8KICAgICAg
ICAgLy8gIC0gY29udmVydCBhIGFuZCBiIHRvIHN0cmluZ3MgKG5vdCBuZWVkZWQgaGVyZSwgcHJv
cGVydGllcyBhcmUgYWxsIHN0cmluZ3MpCkBAIC0xMjMsMTAgKzExNSw5IEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LlByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLk9iamVjdFByb3Bl
cnR5VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihwYXJlbnRPYmplY3QsIHByb3BlcnR5TmFtZSkKK1dl
Ykluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocHJvcGVydHkp
CiB7Ci0gICAgdGhpcy5wYXJlbnRPYmplY3QgPSBwYXJlbnRPYmplY3Q7Ci0gICAgdGhpcy5wcm9w
ZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7CisgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5Owog
CiAgICAgLy8gUGFzcyBhbiBlbXB0eSB0aXRsZSwgdGhlIHRpdGxlIGdldHMgbWFkZSBsYXRlciBp
biBvbmF0dGFjaC4KICAgICBUcmVlRWxlbWVudC5jYWxsKHRoaXMsICIiLCBudWxsLCBmYWxzZSk7
CkBAIC0xNDUsMTYgKzEzNiwxOCBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCAmJiAh
dGhpcy5zaG91bGRSZWZyZXNoQ2hpbGRyZW4pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgdGhpcy5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAg
ICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHNl
bGYucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmICghcHJvcGVydGllcykKKyAgICAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGNoaWxkT2JqZWN0ID0gdGhpcy5zYWZl
UHJvcGVydHlWYWx1ZSh0aGlzLnBhcmVudE9iamVjdCwgdGhpcy5wcm9wZXJ0eU5hbWUpOwotICAg
ICAgICB2YXIgcHJvcGVydGllcyA9IE9iamVjdC5zb3J0ZWRQcm9wZXJ0aWVzKGNoaWxkT2JqZWN0
LCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlLl9kaXNwbGF5
U29ydCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnRpZXNbaV07Ci0gICAg
ICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAiX190cmVlRWxlbWVudElkZW50aWZpZXIiKQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChu
ZXcgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLnRyZWVFbGVtZW50Q29uc3RydWN0b3IoY2hpbGRP
YmplY3QsIHByb3BlcnR5TmFtZSkpOwotICAgICAgICB9CisgICAgICAgICAgICBwcm9wZXJ0aWVz
LnNvcnQoc2VsZi5fZGlzcGxheVNvcnQpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRD
aGlsZChuZXcgc2VsZi50cmVlT3V0bGluZS5zZWN0aW9uLnRyZWVFbGVtZW50Q29uc3RydWN0b3Io
cHJvcGVydGllc1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBJbnNw
ZWN0b3JDb250cm9sbGVyLmdldFByb3BlcnRpZXModGhpcy5wcm9wZXJ0eS5jaGlsZE9iamVjdFJl
ZiwgZmFsc2UsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgb25kYmxjbGljazogZnVuY3Rpb24o
ZWxlbWVudCwgZXZlbnQpCkBAIC0xNjksNDEgKzE2MiwyMiBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICB1cGRhdGU6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHZhciBjaGlsZE9iamVjdCA9IHRoaXMuc2FmZVByb3BlcnR5VmFs
dWUodGhpcy5wYXJlbnRPYmplY3QsIHRoaXMucHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmFyIGlz
R2V0dGVyID0gKCJfX2xvb2t1cEdldHRlcl9fIiBpbiB0aGlzLnBhcmVudE9iamVjdCAmJiB0aGlz
LnBhcmVudE9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHRoaXMucHJvcGVydHlOYW1lKSk7Ci0KICAg
ICAgICAgdmFyIG5hbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwog
ICAgICAgICBuYW1lRWxlbWVudC5jbGFzc05hbWUgPSAibmFtZSI7Ci0gICAgICAgIG5hbWVFbGVt
ZW50LnRleHRDb250ZW50ID0gdGhpcy5wcm9wZXJ0eU5hbWU7CisgICAgICAgIG5hbWVFbGVtZW50
LnRleHRDb250ZW50ID0gdGhpcy5wcm9wZXJ0eS5uYW1lOwogCiAgICAgICAgIHRoaXMudmFsdWVF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICB0aGlzLnZh
bHVlRWxlbWVudC5jbGFzc05hbWUgPSAidmFsdWUiOwotICAgICAgICBpZiAoIWlzR2V0dGVyKSB7
Ci0gICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9IE9iamVjdC5kZXNj
cmliZShjaGlsZE9iamVjdCwgdHJ1ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAv
LyBGSVhNRTogdGhpcyBzaG91bGQgc2hvdyBzb21ldGhpbmcgbGlrZSAiZ2V0dGVyIiAoYnVnIDE2
NzM0KS4KLSAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gIlx1MjAx
NCI7IC8vIGVtIGRhc2gKLSAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xh
c3MoImRpbW1lZCIpOwotICAgICAgICB9CisgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LnRleHRD
b250ZW50ID0gdGhpcy5wcm9wZXJ0eS50ZXh0Q29udGVudDsKKyAgICAgICAgaWYgKHRoaXMucHJv
cGVydHkuaXNHZXR0ZXIpCisgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xh
c3MoImRpbW1lZCIpOwogCiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZUNoaWxk
cmVuKCk7CiAKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQobmFtZUVs
ZW1lbnQpOwogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiOiAiKSk7CiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMudmFsdWVFbGVtZW50KTsKLQotICAgICAgICB2YXIgaGFzU3ViUHJvcGVy
dGllcyA9IGZhbHNlOwotICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZE9iamVjdDsKLSAg
ICAgICAgaWYgKGNoaWxkT2JqZWN0ICYmICh0eXBlID09PSAib2JqZWN0IiB8fCB0eXBlID09PSAi
ZnVuY3Rpb24iKSkgewotICAgICAgICAgICAgZm9yICh2YXIgc3ViUHJvcGVydHlOYW1lIGluIGNo
aWxkT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN1YlByb3BlcnR5TmFtZSA9PT0gIl9f
dHJlZUVsZW1lbnRJZGVudGlmaWVyIikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAgICAgaGFzU3ViUHJvcGVydGllcyA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmhhc0NoaWxk
cmVuID0gaGFzU3ViUHJvcGVydGllczsKKyAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRoaXMu
cHJvcGVydHkuaGFzQ2hpbGRyZW47CiAgICAgfSwKIAogICAgIHVwZGF0ZVNpYmxpbmdzOiBmdW5j
dGlvbigpCkBAIC0yNTMsNjcgKzIyNywyNyBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZWRpdGluZ0VuZGVkKGNvbnRl
eHQpOwogICAgIH0sCiAKLSAgICBldmFsdWF0ZUV4cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJlc3Np
b24sIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgLy8gRXZhbHVhdGUgaW4gdGhlIGN1cnJlbnRs
eSBzZWxlY3RlZCBjYWxsIGZyYW1lIGlmIHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQuCi0gICAgICAg
IC8vIE90aGVyd2lzZSBldmFsdWF0ZSBpbiBhZ2FpbnN0IHRoZSBpbnNwZWN0ZWQgd2luZG93Lgot
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzICYmIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5wYXVzZWQgJiYgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLmVkaXRJblNl
bGVjdGVkQ2FsbEZyYW1lV2hlblBhdXNlZCkKLSAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuZXZhbHVhdGVJblNlbGVjdGVkQ2FsbEZyYW1lKGV4cHJlc3Npb24s
IGZhbHNlLCBjYWxsYmFjayk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0
ID0gSW5zcGVjdG9yQ29udHJvbGxlci5pbnNwZWN0ZWRXaW5kb3coKS5ldmFsKGV4cHJlc3Npb24p
OwotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgICAgY2FsbGJhY2soZSwgdHJ1ZSk7Ci0gICAgICAgIH0KLSAgICB9LAotCiAgICAg
YXBwbHlFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uLCB1cGRhdGVJbnRlcmZhY2UpCiAg
ICAgewotICAgICAgICB2YXIgZXhwcmVzc2lvbkxlbmd0aCA9IGV4cHJlc3Npb24udHJpbVdoaXRl
c3BhY2UoKS5sZW5ndGg7Ci0KLSAgICAgICAgaWYgKCFleHByZXNzaW9uTGVuZ3RoKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgdXNlciBkZWxldGVkIGV2ZXJ5dGhpbmcsIHNvIHRyeSB0byBkZWxldGUg
dGhlIHByb3BlcnR5LgotICAgICAgICAgICAgZGVsZXRlIHRoaXMucGFyZW50T2JqZWN0W3RoaXMu
cHJvcGVydHlOYW1lXTsKLQotICAgICAgICAgICAgaWYgKHVwZGF0ZUludGVyZmFjZSkgewotICAg
ICAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5TmFtZSBpbiB0aGlzLnBhcmVudE9iamVjdCkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgd2FzIG5vdCBkZWxldGVkLCBz
byB1cGRhdGUuCi0gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHdhcyBk
ZWxldGVkLCBzbyByZW1vdmUgdGhpcyB0cmVlIGVsZW1lbnQuCi0gICAgICAgICAgICAgICAgICAg
IHRoaXMucGFyZW50LnJlbW92ZUNoaWxkKHRoaXMpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KKyAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24udHJpbVdoaXRlc3BhY2Uo
KTsKKyAgICAgICAgdmFyIGV4cHJlc3Npb25MZW5ndGggPSBleHByZXNzaW9uLmxlbmd0aDsKKyAg
ICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbihz
dWNjZXNzKSB7CisgICAgICAgICAgICBpZiAoIXVwZGF0ZUludGVyZmFjZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlKCk7CiAKLSAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBhcmVu
dGhlc2lzIHNvIHRoZSByZXN1bHQgb2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAotICAgICAgICAg
ICAgLy8gb2YgdGhlIHdob2xlIGV4cHJlc3Npb24gbm90IHRoZSBsYXN0IHBvdGVudGlhbCBzdWIt
ZXhwcmVzc2lvbi4KLSAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmV2YWx1YXRlRXhwcmVz
c2lvbigiKCIgKyBleHByZXNzaW9uICsgIikiKTsKLQotICAgICAgICAgICAgLy8gU3RvcmUgdGhl
IHJlc3VsdCBpbiB0aGUgcHJvcGVydHkuCi0gICAgICAgICAgICB0aGlzLnBhcmVudE9iamVjdFt0
aGlzLnByb3BlcnR5TmFtZV0gPSByZXN1bHQ7Ci0gICAgICAgIH0gY2F0Y2goZSkgewotICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAvLyBUcnkgdG8gdXBkYXRlIGFzIGEgc3RyaW5n
Ci0gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKCJc
IiIgKyBleHByZXNzaW9uLmVzY2FwZUNoYXJhY3RlcnMoIlwiIikgKyAiXCIiKTsKLQotICAgICAg
ICAgICAgICAgIC8vIFN0b3JlIHRoZSByZXN1bHQgaW4gdGhlIHByb3BlcnR5LgotICAgICAgICAg
ICAgICAgIHRoaXMucGFyZW50T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXSA9IHJlc3VsdDsKLSAg
ICAgICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSBleHByZXNzaW9u
IGZhaWxlZCBzbyBkb24ndCBjaGFuZ2UgdGhlIHZhbHVlLiBTbyBqdXN0IHVwZGF0ZSBhbmQgcmV0
dXJuLgotICAgICAgICAgICAgICAgIGlmICh1cGRhdGVJbnRlcmZhY2UpCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXMudXBkYXRlKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgaWYgKCFleHByZXNzaW9uTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIHByb3Bl
cnR5IHdhcyBkZWxldGVkLCBzbyByZW1vdmUgdGhpcyB0cmVlIGVsZW1lbnQuCisgICAgICAgICAg
ICAgICAgc2VsZi5wYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIC8vIENhbGwgdXBkYXRlU2libGluZ3Mgc2luY2UgdGhlaXIgdmFs
dWUgbWlnaHQgYmUgYmFzZWQgb24gdGhlIHZhbHVlIHRoYXQganVzdCBjaGFuZ2VkLgorICAgICAg
ICAgICAgICAgIHNlbGYudXBkYXRlU2libGluZ3MoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
fQotCi0gICAgICAgIGlmICh1cGRhdGVJbnRlcmZhY2UpIHsKLSAgICAgICAgICAgIC8vIENhbGwg
dXBkYXRlU2libGluZ3Mgc2luY2UgdGhlaXIgdmFsdWUgbWlnaHQgYmUgYmFzZWQgb24gdGhlIHZh
bHVlIHRoYXQganVzdCBjaGFuZ2VkLgotICAgICAgICAgICAgdGhpcy51cGRhdGVTaWJsaW5ncygp
OwotICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXIuc2V0
UHJvcGVydHlWYWx1ZSh0aGlzLnByb3BlcnR5LnBhcmVudE9iamVjdFJlZiwgdGhpcy5wcm9wZXJ0
eS5uYW1lLCBleHByZXNzaW9uLnRyaW1XaGl0ZXNwYWNlKCksIGNhbGxiYWNrKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm94eS5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm94eS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDg1MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3h5LmpzCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitX
ZWJJbnNwZWN0b3IuT2JqZWN0UHJveHkgPSBmdW5jdGlvbihvYmplY3RJZCwgcGF0aCwgcHJvdG9E
ZXB0aCkKK3sKKyAgICB0aGlzLm9iamVjdElkID0gb2JqZWN0SWQ7CisgICAgdGhpcy5wYXRoID0g
cGF0aCB8fCBbXTsKKyAgICB0aGlzLnByb3RvRGVwdGggPSBwcm90b0RlcHRoIHx8IDA7Cit9CisK
K1dlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVByb3h5ID0gZnVuY3Rpb24obmFtZSwgb2JqZWN0
KQoreworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhpcy50eXBlID0gIm9iamVjdCI7Cisg
ICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRydWU7CisgICAgdGhpcy50ZXh0Q29udGVudCA9IE9iamVj
dC5kZXNjcmliZShvYmplY3QsIHRydWUpOworICAgIHRoaXMuY2hpbGRPYmplY3RSZWYgPSBuZXcg
V2ViSW5zcGVjdG9yLk9iamVjdFByb3h5KG9iamVjdCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRp
ZXNTaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVz
U2lkZWJhclBhbmUuanMKaW5kZXggNzBkYjgwNS4uZjYyMzg0OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCkBAIC00Mywx
MSArNDMsMjEgQEAgV2ViSW5zcGVjdG9yLlByb3BlcnRpZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGZvciAodmFyIHByb3RvdHlwZSA9IG9iamVjdDsgcHJvdG90eXBlOyBwcm90b3R5cGUgPSBwcm90
b3R5cGUuX19wcm90b19fKSB7Ci0gICAgICAgICAgICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNw
ZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24ocHJvdG90eXBlKTsKLSAgICAgICAgICAgIHRo
aXMuc2VjdGlvbnMucHVzaChzZWN0aW9uKTsKLSAgICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQo
c2VjdGlvbi5lbGVtZW50KTsKLSAgICAgICAgfQorICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Cisg
ICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKHByb3RvdHlwZXMpIHsKKyAgICAgICAgICAg
IHZhciBib2R5ID0gc2VsZi5ib2R5RWxlbWVudDsKKyAgICAgICAgICAgIGJvZHkucmVtb3ZlQ2hp
bGRyZW4oKTsKKyAgICAgICAgICAgIHNlbGYuc2VjdGlvbnMgPSBbXTsKKworICAgICAgICAgICAg
Ly8gR2V0IGFycmF5IG9mIHByb3RvdHlwZSB1c2VyLWZyaWVuZGx5IG5hbWVzLgorICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b3R5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgdmFyIHByb3RvdHlwZSA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJveHkob2Jq
ZWN0LCBbXSwgaSk7CisgICAgICAgICAgICAgICAgdmFyIHNlY3Rpb24gPSBuZXcgV2ViSW5zcGVj
dG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uKHByb3RvdHlwZSwgcHJvdG90eXBlc1tpXSwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJQcm90b3R5cGUiKSk7CisgICAgICAgICAgICAgICAgc2VsZi5z
ZWN0aW9ucy5wdXNoKHNlY3Rpb24pOworICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQo
c2VjdGlvbi5lbGVtZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgSW5z
cGVjdG9yQ29udHJvbGxlci5nZXRQcm90b3R5cGVzKG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJv
eHkob2JqZWN0KSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXggMTU3Y2VlOS4u
YTI5M2ZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hh
aW5TaWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVD
aGFpblNpZGViYXJQYW5lLmpzCkBAIC04NSw3ICs4NSw3IEBAIFdlYkluc3BlY3Rvci5TY29wZUNo
YWluU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCF0aXRsZSB8fCB0
aXRsZSA9PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSBudWxsOwogCi0g
ICAgICAgICAgICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGll
c1NlY3Rpb24oc2NvcGVPYmplY3QsIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwg
dHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVt
ZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbihuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3h5KHNjb3BlT2JqZWN0
KSwgdGl0bGUsIHN1YnRpdGxlLCBlbXB0eVBsYWNlaG9sZGVyLCB0cnVlLCBleHRyYVByb3BlcnRp
ZXMsIFdlYkluc3BlY3Rvci5TY29wZVZhcmlhYmxlVHJlZUVsZW1lbnQpOwogICAgICAgICAgICAg
c2VjdGlvbi5lZGl0SW5TZWxlY3RlZENhbGxGcmFtZVdoZW5QYXVzZWQgPSB0cnVlOwogICAgICAg
ICAgICAgc2VjdGlvbi5wYW5lID0gdGhpczsKIApAQCAtMTAwLDkgKzEwMCw5IEBAIFdlYkluc3Bl
Y3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3Iu
U2NvcGVDaGFpblNpZGViYXJQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
U2lkZWJhclBhbmUucHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRyZWVF
bGVtZW50ID0gZnVuY3Rpb24ocGFyZW50T2JqZWN0LCBwcm9wZXJ0eU5hbWUpCitXZWJJbnNwZWN0
b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocHJvcGVydHkpCiB7Ci0gICAg
V2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBwYXJlbnRP
YmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJl
ZUVsZW1lbnQuY2FsbCh0aGlzLCBwcm9wZXJ0eSk7CiB9CiAKIFdlYkluc3BlY3Rvci5TY29wZVZh
cmlhYmxlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewpAQCAtMTQyLDkgKzE0Miw5IEBAIFdlYklu
c3BlY3Rvci5TY29wZVZhcmlhYmxlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAg
IGRvIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
Y3VycmVudC5wcm9wZXJ0eU5hbWUgKyAiLiIgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gY3VycmVudC5wcm9wZXJ0eS5uYW1lICsgIi4iICsgcmVzdWx0OwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGN1cnJlbnQucHJvcGVydHlOYW1lOworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGN1cnJlbnQucHJvcGVydHkubmFtZTsKICAgICAgICAgICAg
IGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudDsKICAgICAgICAgfSB3aGlsZSAoY3VycmVudCAmJiAh
Y3VycmVudC5yb290KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRl
eCA1ZTg3MDUwLi4wZmFjMmEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFy
YwpAQCAtMjksNiArMjksNyBAQAogICAgIDxmaWxlPk1ldHJpY3NTaWRlYmFyUGFuZS5qczwvZmls
ZT4KICAgICA8ZmlsZT5PYmplY3QuanM8L2ZpbGU+CiAgICAgPGZpbGU+T2JqZWN0UHJvcGVydGll
c1NlY3Rpb24uanM8L2ZpbGU+CisgICAgPGZpbGU+T2JqZWN0UHJveHkuanM8L2ZpbGU+CiAgICAg
PGZpbGU+UGFuZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+UGFuZWxFbmFibGVyVmlldy5qczwvZmls
ZT4KICAgICA8ZmlsZT5QbGFjYXJkLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IGRmZWQyNDcuLjUxMGMzNjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTU1LDYgKzU1LDcgQEAgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJFbGVtZW50c1RyZWVP
dXRsaW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJTaWRlYmFyVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IlByb3BlcnRpZXNTZWN0aW9uLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJPYmplY3RQcm94eS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iT2JqZWN0UHJv
cGVydGllc1NlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNhbGxTdGFja1NpZGViYXJQYW5lLmpz
Ij48L3NjcmlwdD4K
</data>
<flag name="review"
          id="18494"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>