<?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>95335</bug_id>
          
          <creation_ts>2012-08-29 05:29:46 -0700</creation_ts>
          <short_desc>Web Inspector: Turn workspace into a container of UiSourceCodes put in different projects.</short_desc>
          <delta_ts>2012-08-29 06:52:29 -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>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <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>707360</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-29 05:29:46 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707365</commentid>
    <comment_count>1</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-29 05:34:47 -0700</bug_when>
    <thetext>Workspace now contains a project that could be filled with uiSourceCodes.
Workspace project is still filled by script / style mappings as before.
The next step would be to extract NetworkUISourceCodeProvider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707367</commentid>
    <comment_count>2</comment_count>
      <attachid>161197</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-29 05:39:23 -0700</bug_when>
    <thetext>Created attachment 161197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707414</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-29 06:52:29 -0700</bug_when>
    <thetext>Committed r126999: &lt;http://trac.webkit.org/changeset/126999&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161197</attachid>
            <date>2012-08-29 05:39:23 -0700</date>
            <delta_ts>2012-08-29 05:53:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95335-20120829163912.patch</filename>
            <type>text/plain</type>
            <size>38633</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg5ODU3MTRhMDMzNGM3
YWEzMWFlMDQ1NmUzM2E3YjE5YmI3YjE3OC4uYTU3YTVhOGU4MWU4OGQ5YzNkNmFkMGQ0YjA4ZTUz
YThiNTg1NjAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA4LTI5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFR1cm4gd29ya3NwYWNlIGludG8gYSBjb250YWluZXIgb2YgVWlTb3VyY2VDb2RlcyBwdXQg
aW4gZGlmZmVyZW50IHByb2plY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTUzMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXb3Jrc3BhY2Ugbm93IGNvbnRhaW5zIGEgcHJvamVjdCB0aGF0IGNvdWxk
IGJlIGZpbGxlZCB3aXRoIHVpU291cmNlQ29kZXMuCisgICAgICAgIFdvcmtzcGFjZSBwcm9qZWN0
IGlzIHN0aWxsIGZpbGxlZCBieSBzY3JpcHQgLyBzdHlsZSBtYXBwaW5ncyBhcyBiZWZvcmUuCisg
ICAgICAgIFRoZSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZXh0cmFjdCBOZXR3b3JrVUlTb3VyY2VD
b2RlUHJvdmlkZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRN
YW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNl
Q29kZVJlcGxhY2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBp
bmcucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZp
c2lvbkhpc3RvcnlWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9y
eVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcpOgorICAgICAgICAo
X2JpbmRVSVNvdXJjZUNvZGUpOgorICAgICAgICAocmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgor
ICAgICAgICAoX3Jlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNu
aXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2Fk
ZFNjcmlwdFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUuZGVsZXRlU2NyaXB0U25pcHBldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U25pcHBldFNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmFkZFNjcmlwdCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1VJU291
cmNlQ29kZVByb3ZpZGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNl
Q29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQ
cm92aWRlci5wcm90b3R5cGUuX3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LldvcmtzcGFjZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZUNv
bnRyb2xsZXIucHJvdG90eXBlLl9tYWluRnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2plY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBl
LnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZS5hZGRVSVNv
dXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLnJlcGxh
Y2VVSVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBl
LnJlbW92ZVVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90
b3R5cGUudWlTb3VyY2VDb2RlRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0
LnByb3RvdHlwZS51aVNvdXJjZUNvZGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUudWlTb3VyY2VD
b2RlRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnBy
b2plY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUudWlTb3Vy
Y2VDb2Rlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisK
IDIwMTItMDgtMjkgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMTI2ODE2KTogTWlzc2luZyBpbmNsdWRlcyB3aGVuIGNvbXBpbGlu
ZyB3aXRob3V0IFNWRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKaW5kZXggODhiNjM1NzNlNzRkOTZiM2NmODZiZjU4
OTU3OTNkMzJjMjIwYWQ5OC4uOGU5ZDRiNjU1YzIyMGEyNGEyNDkwMGY5ZTgwMzc0NmI5ZDZkODM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3Bv
aW50TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlciA9IGZ1bmN0aW9uKGJyZWFrcG9pbnRTdG9yYWdlLCBkZWJ1Z2dlck1vZGVsLCB3
b3JrCiAgICAgdGhpcy5fc291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50cyA9IHt9Owog
CiAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHRoaXMuX2JyZWFrcG9pbnRS
ZXNvbHZlZCwgdGhpcyk7Ci0gICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuV29ya3NwYWNlUmVzZXQsIHRoaXMuX3dvcmtzcGFj
ZVJlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl93b3Jrc3Bh
Y2VSZXNldCwgdGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwg
dGhpcy5fdWlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpz
CmluZGV4IDRkMzYyZDBlNWQxZDZjMzI0ZmViNzIzMjljMzE5YzIyM2Q5YzA4NDYuLjgwOTZkNTYy
YWEwZmY5MDgxYjYyNGIwMTY1YjkxNGVmZWIxYjdlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpz
CkBAIC0zMCwxNyArMzAsMTggQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuT2JqZWN0fQogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Tb3Vy
Y2VNYXBwaW5nfQotICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlcn0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCiAgKi8K
LVdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbigpCitXZWJJbnNw
ZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlKQogeworICAg
IHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKICAgICB0aGlzLl9zb3VyY2VNYXBCeVVSTCA9
IHt9OwogICAgIHRoaXMuX3NvdXJjZU1hcEZvclNjcmlwdElkID0ge307CiAgICAgdGhpcy5fc2Ny
aXB0Rm9yU291cmNlTWFwID0gbmV3IE1hcCgpOwogICAgIHRoaXMuX3NvdXJjZU1hcEZvclVJU291
cmNlQ29kZSA9IG5ldyBNYXAoKTsKICAgICB0aGlzLl91aVNvdXJjZUNvZGVCeVVSTCA9IHt9Owor
ICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKIH0KIAogV2Vi
SW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC03OSw3ICs4
MCw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5fdWlTb3VyY2VDb2RlQnlVUkxbdXJsXSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKLQorICAgIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlcn0gc291cmNlTWFwCiAgICAgICogQHJl
dHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQpAQCAtMTMxLDcgKzEzMiw3
IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAg
ICAgICBzY3JpcHQuc2V0U291cmNlTWFwcGluZyh0aGlzKTsKIAogICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHVpU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVMaXN0W2ldKTsKKyAgICAg
ICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZUxpc3RbaV0pOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE2MCw3ICsxNjEsNyBAQCBXZWJJ
bnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHNvdXJjZU1hcDsKICAgICB9LAogCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfcmVz
ZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcEJ5VVJMID0ge307
CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcEZvclNjcmlwdElkID0ge307CkBAIC0xNzAsOCArMTcx
LDYgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAg
ICAgfQogfQogCi1XZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQogLyoqCiAgKiBAY29u
c3RydWN0b3IKICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcwppbmRleCA5YzUwMzRhNDk0ZjU2NjA0
YzgxNzMyNTlhNzIyZDFiY2ZjMmZjNjFjLi4xMmNlOTI4MDExZDk2ZjIwNDVmYzlkNmI1NWRkNWFm
ODhmY2QyYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcwpAQCAtMzEsMTMgKzMxLDEzIEBACiAv
KioKICAqIEBjb25zdHJ1Y3RvcgogICovCi1XZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBw
aW5nID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IGZ1
bmN0aW9uKHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl9tYXBwaW5ncyA9IFtdOwogICAKLSAgICB0
aGlzLl9yZXNvdXJjZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZygpOworICAgIHRoaXMuX3Jlc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nKHdvcmtzcGFjZSk7CiAgICAgdGhpcy5fbWFwcGluZ3MucHVzaCh0
aGlzLl9yZXNvdXJjZU1hcHBpbmcpOwotICAgIHRoaXMuX2NvbXBpbGVyTWFwcGluZyA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7CisgICAgdGhpcy5fY29tcGlsZXJN
YXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNl
KTsKICAgICB0aGlzLl9tYXBwaW5ncy5wdXNoKHRoaXMuX2NvbXBpbGVyTWFwcGluZyk7CiAgICAg
dGhpcy5fc25pcHBldE1hcHBpbmcgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLnNj
cmlwdE1hcHBpbmc7CiAgICAgdGhpcy5fbWFwcGluZ3MucHVzaCh0aGlzLl9zbmlwcGV0TWFwcGlu
Zyk7CkBAIC00OCwxNCArNDgsNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5n
ID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nLnByb3Rv
dHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyPn0KLSAgICAgKi8KLSAgICB1aVNvdXJjZUNvZGVQcm92aWRlcnM6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nczsKLSAgICB9
LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CiAg
ICAgICovCiAgICAgX3BhcnNlZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFw
cGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nLmpzCmluZGV4IDZlMjUxOWYyNmJjNzVhMGMwYjI0OGY2MjAwNjFjYmJhYTE1NmM1
ZmYuLjlkOGE3OTVkZWZmMTdmOWIwZmExZTU2ZTQzNmRkNTcwY2JjNmFmMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5n
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nLmpzCkBAIC00MSw2ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlw
dE1hcHBpbmcgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVSTCA9IHt9
OwogICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JEb2N1bWVudFVSTCA9IHt9OwogICAgIHRoaXMu
X3Jhd1NvdXJjZUNvZGVGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CisgICAgV2ViSW5zcGVj
dG9yLndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZl
bnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVj
dG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC0xNjQsNyArMTY1LDcg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGlmICghdWlTb3VyY2VDb2RlLnVybCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCByYXdT
b3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlT
b3VyY2VDb2RlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5wcm9qZWN0KCkuYWRk
VUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTgxLDkg
KzE4Miw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0g
ewogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3U291cmNlQ29kZS5fc2NyaXB0cy5s
ZW5ndGg7ICsraSkKICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUuX3NjcmlwdHNbaV0uc2V0U291
cmNlTWFwcGluZyh0aGlzKTsKLQotICAgICAgICB2YXIgZGF0YSA9IHsgb2xkVUlTb3VyY2VDb2Rl
OiBvbGRVSVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZTogdWlTb3VyY2VDb2RlIH07Ci0gICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIGRhdGEpOworICAgICAgICBXZWJJ
bnNwZWN0b3Iud29ya3NwYWNlLnByb2plY3QoKS5yZXBsYWNlVUlTb3VyY2VDb2RlKG9sZFVJU291
cmNlQ29kZSwgdWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yMDgsNyArMjA3
LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHNjcmlwdC5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwogICAgIH0sCiAKLSAgICByZXNl
dDogZnVuY3Rpb24oKQorICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yYXdTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2Rlc1tpXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0
b3J5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25I
aXN0b3J5Vmlldy5qcwppbmRleCA1ZTg4OTAzNzRjNGNjZDg5YWNmODFmNTZlN2EyMmM3MDYwY2Qz
MDEzLi5mODBlNDk4YWEwODk3OTg0OTJmZDJiNTAwODA0YzAzYmFlMDllNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3Rv
cnlWaWV3LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5SZXZpc2lvbkhpc3RvcnlW
aWV3ID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJjZUNvZGVDb250ZW50Q29t
bWl0dGVkLCB0aGlzLl9yZXZpc2lvbkFkZGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3Iud29y
a3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVwbGFjZWQs
IHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQs
IHRoaXMuX3VpU291cmNlQ29kZVJlbW92ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci53b3Jr
c3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Xb3Jr
c3BhY2VSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci53b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0
V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7CiAKICAgICB0aGlzLl9zdGF0dXNFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgIHRoaXMuX3N0YXR1c0VsZW1l
bnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvY2FsIG1vZGlmaWNhdGlv
bnMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NB
U1NTb3VyY2VNYXBwaW5nLmpzCmluZGV4IGUxYzBhYTcwMDRiOGVkYzlmYjlmZDRmZjNhOGJhYWYy
ODczNjExMmIuLmI4YTQ5NzE4NDkzYjU0NjRjMDM0NTAzNzM5ZmQ1MWNmYmQ1ZTEzN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBp
bmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNl
TWFwcGluZy5qcwpAQCAtMzAsMTkgKzMwLDE2IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0g
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNw
ZWN0b3IuU291cmNlTWFwcGluZ30KLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtz
cGFjZQogICovCi1XZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbigpCitX
ZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7Ci0g
ICAgLyoqCi0gICAgICogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0K
LSAgICAgKi8KLSAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CisgICAgdGhpcy5fd29ya3Nw
YWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwogICAg
IHRoaXMuX3VpTG9jYXRpb25zID0ge307CiAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50
VHlwZXMuUmVzb3VyY2VBZGRlZCwgdGhpcy5fcmVzb3VyY2VBZGRlZCwgdGhpcyk7CisgICAgdGhp
cy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVu
dHMuUHJvamVjdFdpbGxSZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0
b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewpAQCAtMTE5LDggKzExNiw3IEBAIFdl
Ykluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICgh
dWlTb3VyY2VDb2RlKSB7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLlNBU1NTb3VyY2UodXJsKTsKICAgICAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVS
TFt1cmxdID0gdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2Rlcy5w
dXNoKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29k
ZUFkZGVkLCB1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdGhpcy5fd29ya3NwYWNlLnByb2pl
Y3QoKS5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5zZXRTb3VyY2VNYXBwaW5nKHJhd1VSTCwgdGhpcyk7CiAgICAgICAgIH0K
ICAgICAgICAgdmFyIHJhd0xvY2F0aW9uU3RyaW5nID0gcmF3VVJMICsgIjoiICsgKHJhd0xpbmUg
KyAxKTsgIC8vIE5leHQgbGluZSBhZnRlciBtYXBwaW5nIG1ldGFpbmZvCkBAIC0xMzYsNyArMTMy
LDcgQEAgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIGxvY2F0aW9uID0gLyoqIEB0eXBlIFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyBy
YXdMb2NhdGlvbjsKICAgICAgICAgdmFyIHVpTG9jYXRpb24gPSB0aGlzLl91aUxvY2F0aW9uc1ts
b2NhdGlvbi51cmwgKyAiOiIgKyBsb2NhdGlvbi5saW5lTnVtYmVyXTsKICAgICAgICAgaWYgKCF1
aUxvY2F0aW9uKSB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9y
LndvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwobG9jYXRpb24udXJsKTsKKyAgICAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKGxv
Y2F0aW9uLnVybCk7CiAgICAgICAgICAgICB1aUxvY2F0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5V
SUxvY2F0aW9uKHVpU291cmNlQ29kZSwgbG9jYXRpb24ubGluZU51bWJlciwgMCk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHVpTG9jYXRpb247CkBAIC0xNTQsMjUgKzE1MCwxNCBAQCBXZWJJ
bnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbih1aVNvdXJjZUNvZGUuY29udGVudFVSTCgpIHx8
ICIiLCBsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7QXJy
YXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQotICAgICAqLwotICAgIHVpU291cmNlQ29k
ZXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGVz
OwotICAgIH0sCi0KLSAgICByZXNldDogZnVuY3Rpb24oKQorICAgIF9yZXNldDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOwogICAgICAgICB0aGlz
Ll91aVNvdXJjZUNvZGVGb3JVUkwgPSB7fTsKICAgICAgICAgdGhpcy5fdWlMb2NhdGlvbnMgPSB7
fTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTsKICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5T
QVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGU7Ci0KIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXggMzkyNDQ4ZGZhODRhMzNj
MTJkOGIyOTRlYWMxNzU1OTZhMTcyZmQzNS4uZDkyYTJkMzFhZTQxZWViOGMxZWY1YTJkNDU1ZWE3
Mjk0Mjg1NjY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAgLTMxLDkgKzMxLDExIEBACiAvKioKICAq
IEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CisgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQogICovCi1XZWJJbnNwZWN0b3Iu
U2NyaXB0U25pcHBldE1vZGVsID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbCA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKKyAgICB0aGlzLl93b3Jrc3BhY2UgPSB3
b3Jrc3BhY2U7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICB0
aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fc25pcHBl
dEphdmFTY3JpcHRTb3VyY2VGb3JTbmlwcGV0SWQgPSB7fTsKQEAgLTQxLDYgKzQzLDggQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9zbmlw
cGV0U3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldFN0b3JhZ2UoInNjcmlwdCIsICJT
Y3JpcHQgc25pcHBldCAjIik7CiAgICAgdGhpcy5fbGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhT
ZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImxhc3RTbmlwcGV0
RXZhbHVhdGlvbkluZGV4IiwgMCk7CiAgICAgdGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcgPSBu
ZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRNYXBwaW5nKHRoaXMpOworICAgIHRoaXMuX3dv
cmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlBy
b2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKKyAgICB0aGlzLl9sb2FkU25pcHBl
dHMoKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5zbmlwcGV0U291cmNl
VVJMUHJlZml4ID0gInNuaXBwZXRzOi8vLyI7CkBAIC03OCw3ICs4Miw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZShzbmlwcGV0LmlkLCBzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0b3IuU25pcHBl
dENvbnRlbnRQcm92aWRlcihzbmlwcGV0KSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3NuaXBwZXRK
YXZhU2NyaXB0U291cmNlRm9yU25pcHBldElkW3NuaXBwZXQuaWRdID0gc25pcHBldEphdmFTY3Jp
cHRTb3VyY2U7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nLl9maXJlVUlTb3Vy
Y2VDb2RlQWRkZWQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB0aGlzLl93b3Jr
c3BhY2UucHJvamVjdCgpLmFkZFVJU291cmNlQ29kZShzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7
CiAgICAgICAgIHJldHVybiBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZTsKICAgICB9LAogCkBAIC05
Miw3ICs5Niw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50cyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZSk7CiAgICAgICAgIHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0KHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlRm9y
U25pcHBldElkW3NuaXBwZXQuaWRdOwotICAgICAgICB0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGlu
Zy5fZmlyZVVJU291cmNlQ29kZVJlbW92ZWQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOworICAg
ICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLnJlbW92ZVVJU291cmNlQ29kZShzbmlwcGV0
SmF2YVNjcmlwdFNvdXJjZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjM5LDE3ICsyNDMsNiBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAvKioK
ICAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CiAgICAg
ICovCi0gICAgX3VpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBy
ZXN1bHQgPSB0aGlzLl9yZWxlYXNlZFVJU291cmNlQ29kZXMoKTsKLSAgICAgICAgZm9yICh2YXIg
c25pcHBldElkIGluIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlRm9yU25pcHBldElkKQot
ICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2VGb3JT
bmlwcGV0SWRbc25pcHBldElkXSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfSwKLQot
ICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0KLSAgICAgKi8KICAgICBfcmVsZWFzZWRVSVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB2YXIgcmVzdWx0ID0gW107CkBAIC00NTAsOSArNDQzLDcgQEAgV2ViSW5zcGVj
dG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmkKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJ
bnNwZWN0b3IuT2JqZWN0fQogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBw
aW5nfQotICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0K
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbH0gc2NyaXB0U25pcHBl
dE1vZGVsCiAgKi8KIFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9u
KHNjcmlwdFNuaXBwZXRNb2RlbCkKQEAgLTQ4MywxNCArNDc0LDYgQEAgV2ViSW5zcGVjdG9yLlNu
aXBwZXRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQotICAgICAqLwot
ICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9zY3JpcHRTbmlwcGV0TW9kZWwuX3VpU291cmNlQ29kZXMoKTsKLSAgICB9LAotCi0gICAgLyoq
CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVVSTAogICAgICAqIEByZXR1cm4ge3N0cmlu
Z3xudWxsfQogICAgICAqLwpAQCAtNTA1LDMyICs0ODgsOSBAQCBXZWJJbnNwZWN0b3IuU25pcHBl
dFNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2Ny
aXB0KQogICAgIHsKICAgICAgICAgdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsLl9hZGRTY3JpcHQo
c2NyaXB0KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKLSAgICAgKi8KLSAgICBfZmlyZVVJU291cmNlQ29k
ZUFkZGVkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCi0gICAgewotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOwotICAgIH0sCi0KLSAgICAvKioK
LSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQot
ICAgICAqLwotICAgIF9maXJlVUlTb3VyY2VDb2RlUmVtb3ZlZDogZnVuY3Rpb24odWlTb3VyY2VD
b2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB1
aVNvdXJjZUNvZGUpOwotICAgIH0sCi0KLSAgICByZXNldDogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsLl9yZXNldCgpOwogICAgIH0KIH0KIAotV2Vi
SW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBiMjU3
MGQ5NTg2M2YyZGRhMTU1YTVlOWI1YmM3MTRiMjQ1N2YyMjUwLi45YmU3MmNjNDdkZTlhMzM1ODY0
ZDQwYTU0MjAxY2Y4ZTdiZThmMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTk2LDcgKzE5Niw3IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2VGb3JUZXN0KQogICAgIHRoaXMu
X3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0
aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzLl91
aVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJj
ZUNvZGVSZW1vdmVkLCB0aGlzLl91aVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzKTsKLSAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50
cy5Xb3Jrc3BhY2VSZXNldCwgdGhpcy5fcmVzZXQuYmluZCh0aGlzKSwgdGhpcyk7CisgICAgdGhp
cy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVu
dHMuUHJvamVjdFJlc2V0LCB0aGlzLl9yZXNldC5iaW5kKHRoaXMpLCB0aGlzKTsKIAogICAgIFdl
Ykluc3BlY3Rvci5hZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucmVnaXN0ZXJTZWFyY2hTY29wZShu
ZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZSh0aGlzLl93b3Jrc3BhY2UpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzVUlT
b3VyY2VDb2RlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCmluZGV4IDc3MzRhMGU1MDA3Y2UzNjkwMWRi
ODJiNWM1YzVmNWEzMWFlMTQ5NjkuLmNiYmZhZGZmMDUyY2Y3NGFjMmVmNzZhZjEyYTRkMWNkYjIw
YjZhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5qcwpAQCAtMzAsMTggKzMwLDE5
IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9i
amVjdH0KLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9
CiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9CisgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQogICovCi1XZWJJbnNwZWN0b3IuU3R5
bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlvbigpCitXZWJJbnNwZWN0b3IuU3R5bGVz
VUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CisgICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOwogICAgIC8qKgogICAgICAqIEB0eXBlIHtBcnJheS48V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZT59CiAgICAgICovCiAgICAgdGhpcy5fdWlTb3VyY2VDb2Rl
cyA9IFtdOwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclVSTCA9IHt9OwogICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRk
ZWQsIHRoaXMpOworICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlz
KTsKIH0KIAogV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlw
ZSA9IHsKQEAgLTEwMiwxMCArMTAzLDEwIEBAIFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNv
ZGVQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMucHVz
aCh1aVNvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JVUkxbcmVzb3Vy
Y2UudXJsXSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnNl
dFNvdXJjZU1hcHBpbmcocmVzb3VyY2UudXJsLCB0aGlzKTsKLSAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50
cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fd29ya3Nw
YWNlLnByb2plY3QoKS5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICB9LAogCi0g
ICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSBbXTsKICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2Rl
Rm9yVVJMID0ge307CkBAIC0xMTMsNSArMTE0LDMgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTsK
ICAgICB9CiB9Ci0KLVdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90
b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCmluZGV4IGU5Yjdi
M2Y4Mjg3OTQ0OWYwOTgzYjg4ZjRmYWRjMjQ0MjJkMThhODMuLmJhOWZhOTU3M2FmOTM4YWIzM2E0
Y2ZhZWQ3ZTY0ZDI2MjhhNzE3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya3NwYWNlLmpzCkBAIC0zMCw1NyArMzAsNzAgQEAKIAogLyoqCiAgKiBAY29u
c3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQotICogQGltcGxlbWVu
dHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KLSAqIEBwYXJhbSB7QXJyYXku
PFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcj59IHVpU291cmNlQ29kZVByb3ZpZGVy
cwogICovCi1XZWJJbnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5j
dGlvbih1aVNvdXJjZUNvZGVQcm92aWRlcnMpCitXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJv
bGxlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKIHsKLSAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNh
bGwodGhpcyk7Ci0gICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXJzID0gW107Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVQcm92aWRlcnMubGVuZ3RoOyArK2kpCi0gICAg
ICAgIHRoaXMuX3JlZ2lzdGVyVUlTb3VyY2VDb2RlUHJvdmlkZXIodWlTb3VyY2VDb2RlUHJvdmlk
ZXJzW2ldKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CisgICAgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuTWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9tYWluRnJh
bWVOYXZpZ2F0ZWQsIHRoaXMpOwogfQogCi1XZWJJbnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VD
b2RlUHJvdmlkZXIucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyfSB1aVNvdXJjZUNvZGVQcm92aWRlcgotICAgICAq
LwotICAgIF9yZWdpc3RlclVJU291cmNlQ29kZVByb3ZpZGVyOiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGVQcm92aWRlcikKK1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyLnByb3RvdHlwZSA9
IHsKKyAgICBfbWFpbkZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlcnMucHVzaCh1aVNvdXJjZUNvZGVQcm92aWRlcik7Ci0g
ICAgICAgIHVpU291cmNlQ29kZVByb3ZpZGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5faGFu
ZGxlVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpOwotICAgICAgICB1aVNvdXJjZUNvZGVQcm92aWRl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVu
dHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZVJlcGxhY2Vk
LCB0aGlzKTsKLSAgICAgICAgdWlTb3VyY2VDb2RlUHJvdmlkZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92
ZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZVJlbW92ZWQsIHRoaXMpOwotICAgIH0sCisgICAg
ICAgIFdlYkluc3BlY3Rvci5SZXZpc2lvbi5maWx0ZXJPdXRTdGFsZVJldmlzaW9ucygpOworICAg
ICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLnJlc2V0KCk7CisgICAgfQorfQorCisvKioK
KyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXJ9CisgKi8KK1dlYklu
c3BlY3Rvci53b3Jrc3BhY2VDb250cm9sbGVyID0gbnVsbDsKIAotICAgIF9oYW5kbGVVSVNvdXJj
ZUNvZGVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitX
ZWJJbnNwZWN0b3IuUHJvamVjdCA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKK3sKKyAgICB0aGlzLl91
aVNvdXJjZUNvZGVzID0gW107CisgICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOworfQor
CitXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7CisgICAgcmVzZXQ6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIGV2ZW50
LmRhdGEpOworICAgICAgICB0aGlzLl93b3Jrc3BhY2UuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMpOwor
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAgX2hhbmRs
ZVVJU291cmNlQ29kZVJlcGxhY2VkOiBmdW5jdGlvbihldmVudCkKKyAgICBhZGRVSVNvdXJjZUNv
ZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VUlTb3VyY2VDb2RlUmVwbGFjZWQsIGV2ZW50LmRhdGEpOworICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVzLnB1c2godWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAvKioK
LSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IG9sZFVJU291cmNlQ29kZQorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAg
X2hhbmRsZVVJU291cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHJlcGxhY2VV
SVNvdXJjZUNvZGU6IGZ1bmN0aW9uKG9sZFVJU291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKQogICAg
IHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBldmVudC5kYXRh
KTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2Rlcy5zcGxpY2UodGhpcy5fdWlTb3VyY2VDb2Rl
cy5pbmRleE9mKG9sZFVJU291cmNlQ29kZSksIDEpOworICAgICAgICB0aGlzLl91aVNvdXJjZUNv
ZGVzLnB1c2godWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIGRhdGEgPSB7IG9sZFVJU291cmNl
Q29kZTogb2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGU6IHVpU291cmNlQ29kZSB9OworICAg
ICAgICB0aGlzLl93b3Jrc3BhY2UuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIGRhdGEp
OwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZVByb3ZpZGVyPn0KKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwotICAgIHVpU291cmNlQ29kZVByb3ZpZGVy
czogZnVuY3Rpb24oKQorICAgIHJlbW92ZVVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VD
b2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVycy5z
bGljZSgwKTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2Rlcy5zcGxpY2UodGhpcy5fdWlTb3Vy
Y2VDb2Rlcy5pbmRleE9mKHVpU291cmNlQ29kZSksIDEpOworICAgICAgICB0aGlzLl93b3Jrc3Bh
Y2UuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgdWlTb3VyY2VDb2RlKTsKICAgICB9LAog
CiAgICAgLyoqCkBAIC04OSwxMiArMTAyLDkgQEAgV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVG
b3JVUkw6IGZ1bmN0aW9uKHVybCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVyc1tpXS51aVNvdXJj
ZUNvZGVzKCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVpU291cmNlQ29kZXMu
bGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2Rlc1tqXS51cmwg
PT09IHVybCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZXNbal07Ci0g
ICAgICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdWlTb3VyY2VD
b2Rlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX3VpU291cmNlQ29kZXNb
aV0udXJsID09PSB1cmwpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VpU291cmNlQ29k
ZXNbaV07CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwKQEAgLTEwNCw2
MiArMTE0LDU0IEBAIFdlYkluc3BlY3Rvci5Db21wb3NpdGVVSVNvdXJjZUNvZGVQcm92aWRlci5w
cm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgdWlTb3VyY2VDb2RlczogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlcnNbaV0udWlTb3Vy
Y2VDb2RlcygpOwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB1aVNvdXJjZUNvZGVz
Lmxlbmd0aDsgKytqKQotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHVpU291cmNlQ29kZXNb
al0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiB0
aGlzLl91aVNvdXJjZUNvZGVzOwogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJ
U291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2Jq
ZWN0LnByb3RvdHlwZTsKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJ
bnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJvdmlkZXJ9CisgKiBAaW1wbGVtZW50cyB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyfQorICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5PYmplY3R9CiAgKi8KIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UgPSBmdW5jdGlvbigpCiB7
Ci0gICAgdmFyIHNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0
TWFwcGluZygpOwotICAgIHZhciBzdHlsZVByb3ZpZGVycyA9IFtuZXcgV2ViSW5zcGVjdG9yLlN0
eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyKCldOwotICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJp
bWVudHNTZXR0aW5ncy5zYXNzLmlzRW5hYmxlZCgpKQotICAgICAgICBzdHlsZVByb3ZpZGVycy5w
dXNoKG5ldyBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcoKSk7Ci0gICAgdmFyIHByb3Zp
ZGVycyA9IHNjcmlwdE1hcHBpbmcudWlTb3VyY2VDb2RlUHJvdmlkZXJzKCkuY29uY2F0KHN0eWxl
UHJvdmlkZXJzKTsKLSAgICBXZWJJbnNwZWN0b3IuQ29tcG9zaXRlVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuY2FsbCh0aGlzLCBwcm92aWRlcnMpOwotCi0gICAgbmV3IFdlYkluc3BlY3Rvci5QcmVzZW50
YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlcih0aGlzKTsKLSAgICAKLSAgICBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX3Jlc2V0LCB0aGlz
KTsKKyAgICB0aGlzLl9wcm9qZWN0ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9qZWN0KHRoaXMpOwog
fQogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cyA9IHsKLSAgICBVSVNvdXJjZUNvZGVD
b250ZW50Q29tbWl0dGVkOiAidWlTb3VyY2VDb2RlQ29udGVudENvbW1pdHRlZCIsCi0gICAgV29y
a3NwYWNlUmVzZXQ6ICJXb3Jrc3BhY2VSZXNldCIKKyAgICBVSVNvdXJjZUNvZGVDb250ZW50Q29t
bWl0dGVkOiAiVUlTb3VyY2VDb2RlQ29udGVudENvbW1pdHRlZCIsCisgICAgUHJvamVjdFdpbGxS
ZXNldDogIlByb2plY3RXaWxsUmVzZXQiCiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJv
dG90eXBlID0gewogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb3ZpZGVyfSB1aVNvdXJjZUNvZGVQcm92aWRlcgorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwKKyAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KICAgICAg
Ki8KLSAgICByZWdpc3RlclVJU291cmNlQ29kZVByb3ZpZGVyOiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGVQcm92aWRlcikKKyAgICB1aVNvdXJjZUNvZGVGb3JVUkw6IGZ1bmN0aW9uKHVybCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3JlZ2lzdGVyVUlTb3VyY2VDb2RlUHJvdmlkZXIodWlTb3VyY2VDb2Rl
UHJvdmlkZXIpOworICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdC51aVNvdXJjZUNvZGVGb3JV
UkwodXJsKTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgLyoqCisgICAg
ICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2plY3R9CisgICAgICovCisgICAgcHJvamVjdDog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZVByb3ZpZGVycyA9IHRo
aXMudWlTb3VyY2VDb2RlUHJvdmlkZXJzKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dWlTb3VyY2VDb2RlUHJvdmlkZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB1aVNvdXJj
ZUNvZGVQcm92aWRlcnNbaV0ucmVzZXQoKTsKLSAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0
b3IuUmV2aXNpb24uZmlsdGVyT3V0U3RhbGVSZXZpc2lvbnMoKTsKLSAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5FdmVudHMuV29ya3Nw
YWNlUmVzZXQsIG51bGwpOworICAgICAgICAvLyBGSVhNRTogc3VwcG9ydCBzZXZlcmFsIHByb2pl
Y3RzLgorICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdDsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQorICAgICAq
LworICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9wcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5X
b3Jrc3BhY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Db21wb3NpdGVVSVNv
dXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCiAg
KiBAdHlwZSB7P1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGM5ZmFjNDQxZjhmOGNjNDk0OGQx
ZWY1N2ZlODg2YzYyOTNkZThkYzAuLmYyMzVhZjY3OTQ3MmNhMjBlZmU2MmY0Nzk5MjdlZWMxNzA3
MjkwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCkBAIC00OTIsNyArNDkyLDYgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRo
Q2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogICAgIHRoaXMubmV0d29ya0xvZyA9IG5ldyBXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZygpOwogICAgIHRoaXMuZG9tQWdlbnQgPSBuZXcgV2ViSW5zcGVj
dG9yLkRPTUFnZW50KCk7CiAgICAgdGhpcy5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlcih0aGlzLnJlc291cmNlVHJlZU1v
ZGVsKTsKLSAgICB0aGlzLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2Ny
aXB0U25pcHBldE1vZGVsKCk7CiAKICAgICB0aGlzLmNvbnNvbGVWaWV3ID0gbmV3IFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldyhXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250
ZW5kKCkpOwogCkBAIC01MTgsOCArNTE3LDE4IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25l
V2l0aENhcGFiaWxpdGllcyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLm9wZW5BbmNob3JMb2NhdGlv
blJlZ2lzdHJ5LnJlZ2lzdGVySGFuZGxlcihhdXRvc2VsZWN0UGFuZWwsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gZmFsc2U7IH0pOwogCiAgICAgdGhpcy53b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9y
LldvcmtzcGFjZSgpOworICAgIHRoaXMud29ya3NwYWNlQ29udHJvbGxlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlcih0aGlzLndvcmtzcGFjZSk7CisKICAgICB0aGlzLmJy
ZWFrcG9pbnRNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlcihXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMsIHRoaXMuZGVidWdnZXJNb2RlbCwgdGhpcy53
b3Jrc3BhY2UpOwogCisgICAgdGhpcy5zY3JpcHRTbmlwcGV0TW9kZWwgPSBuZXcgV2ViSW5zcGVj
dG9yLlNjcmlwdFNuaXBwZXRNb2RlbCh0aGlzLndvcmtzcGFjZSk7CisgICAgbmV3IFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcodGhpcy53b3Jrc3BhY2UpOworICAgIG5ldyBXZWJJ
bnNwZWN0b3IuU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIodGhpcy53b3Jrc3BhY2UpOworICAg
IGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zYXNzLmlzRW5hYmxlZCgpKQor
ICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKHRoaXMud29ya3NwYWNl
KTsKKworICAgIG5ldyBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2VIZWxw
ZXIodGhpcy53b3Jrc3BhY2UpOworCiAgICAgdGhpcy5fY3JlYXRlR2xvYmFsU3RhdHVzQmFySXRl
bXMoKTsKIAogICAgIFdlYkluc3BlY3Rvci5faW5zdGFsbERvY2tUb1JpZ2h0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZmI3ZjUzNzZlY2ZmZjU0NGU4MTczMjU5Y2VlODBlMmUyNWI0NmE3Zi4uNTkwMDRjMGQ1Y2NjZDRl
OTczMzhhM2RkYWQ3NjViOGUzYTczMTJjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA4
LTI5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFR1cm4gd29ya3NwYWNlIGludG8gYSBjb250YWluZXIgb2YgVWlTb3VyY2VD
b2RlcyBwdXQgaW4gZGlmZmVyZW50IHByb2plY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNj
cmlwdC1tYXBwaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtbWFuYWdlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25p
cHBldC1tb2RlbC5odG1sOgorCiAyMDEyLTA4LTI5ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21p
bmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZCBFRkwg
Z2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKaW5kZXggYTk3NjdmMTRmNzkwZGVj
Njg3ZDA4MGE0MWQ3NTkyY2YyOTkyNGYxMy4uM2I3MmZkMmJkNGJkZGZjMjNlYmNhYmJkMjY3OTEw
OTUzOGZhMWRlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCkBAIC0xMjUsNyArMTI1LDgg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RDb21waWxlclNjcmlwdE1h
cHBpbmcobmV4dCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7CisgICAgICAgICAgICB2YXIgd29ya3NwYWNlID0g
bmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKKyAgICAgICAgICAgIHZhciBtYXBwaW5nID0g
bmV3IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlKTsKICAgICAg
ICAgICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBp
bGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIiIpOwogICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVS
TCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFw
Lmpzb24iOwogICAgICAgICAgICAgbWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKQEAgLTE2MSw3
ICsxNjIsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gdGVzdElubGluZWRT
b3VyY2VNYXAobmV4dCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbWFwcGluZyA9IG5ldyBXZWJJbnNw
ZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7CisgICAgICAgICAgICB2YXIgd29ya3NwYWNl
ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKKyAgICAgICAgICAgIHZhciBtYXBwaW5n
ID0gbmV3IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlKTsKICAg
ICAgICAgICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImh0
dHA6Ly9leGFtcGxlLmNvbS9jb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIiKTsKICAgICAgICAg
ICAgIHZhciBzb3VyY2VNYXAgPSB7CiAgICAgICAgICAgICAgICAgImZpbGUiOiJjb21waWxlZC5q
cyIsCkBAIC0xOTIsMjAgKzE5NCwxNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkLnNldCh0cnVl
KTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAg
ICAgICAgICAgdmFyIGRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJTY3JpcHRNYXBwaW5nKCk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlUHJvdmlk
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVVJU291cmNlQ29kZVByb3ZpZGVyKGRlYnVn
Z2VyU2NyaXB0TWFwcGluZy51aVNvdXJjZUNvZGVQcm92aWRlcnMoKSk7Ci0gICAgICAgICAgICB1
aVNvdXJjZUNvZGVQcm92aWRlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVk
KTsKKyAgICAgICAgICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFj
ZSgpOworICAgICAgICAgICAgdmFyIGRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKHdvcmtzcGFjZSk7CiAKICAgICAgICAgICAgIHZh
ciBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwg
MCwgMCwgdHJ1ZSwgIiIpOwogICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVSTCA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFwLmpzb25fIjsK
ICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHt9OyAvLyBFcnJvciBtZXNz
YWdlIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KICAgICAgICAgICAgIGRlYnVnZ2VyU2NyaXB0TWFw
cGluZy5fcGFyc2VkU2NyaXB0U291cmNlKHtkYXRhOnNjcmlwdH0pOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZChldmVudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChldmVudC5kYXRhLnVybCk7Ci0gICAgICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHVpTG9jYXRp
b24gPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwgMCk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh1aUxvY2F0aW9uLnVpU291cmNlQ29kZS51cmwpOworICAg
ICAgICAgICAgbmV4dCgpOwogICAgICAgICB9CiAgICAgXSk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCmluZGV4
IDJiODYxMzE5YTEyMTg3YTBkNTJhNjZjMDU5MzJjNTRiMzI3OTJhMzMuLmZiM2QwZDc3NDA5NTc5
NzRhOTkzZWJjNzhkZjQyOWQ0NDIyMjEwMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAgLTEyMCw3ICsxMjAs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICAgICAg
ewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgUmVzZXR0aW5nIHdvcmtz
cGFjZS4iKTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLldvcmtzcGFjZVJlc2V0KTsKKyAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRz
LlByb2plY3RXaWxsUmVzZXQpOwogICAgICAgICB9CiAgICAgfQogICAgIFdvcmtzcGFjZU1vY2su
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1v
ZGVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQt
bW9kZWwuaHRtbAppbmRleCA0MDA5NzMwNzg0MGU0ODIxNWMwM2YyM2U0NThhOGEwMzE5NDQ4Njc5
Li43OWU5ZGQyMTM0OGE2ODk4OWIwNzhmYzY0MDI1ZTU2NmY5MGQ4MzMyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwu
aHRtbApAQCAtMTQsNyArMTQsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAvLyBGSVhNRTogUmVt
b3ZlIG9uY2Ugc25pcHBldHMgYXJlIHRha2VuIG91dCBvZiBleHBlcmltZW50cy4KICAgICBXZWJJ
bnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQgPSB7fTsKICAgICBX
ZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVk
ID0gZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9OwotICAgIFdlYkluc3BlY3Rvci5zY3JpcHRT
bmlwcGV0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCgpOworICAg
IHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOworICAgIFdlYklu
c3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbCh3b3Jrc3BhY2UpOwogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RT
dWl0ZShbCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RXb3Jrc3BhY2VSZXNldChuZXh0KQpAQCAtMjQs
MTAgKzI1LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIHNuaXBwZXROYW1l
ID0gIlRlc3RTbmlwcGV0IiArIE1hdGgucmFuZG9tKCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHNuaXBwZXRKYXZhU2Ny
aXB0U291cmNlLCBzbmlwcGV0TmFtZSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0
U25pcHBldE1vZGVsLnNjcmlwdE1hcHBpbmcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNv
ZGVBZGRlZCk7CisgICAgICAgICAgICB3b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNv
dXJjZUNvZGVBZGRlZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVz
ZXR0aW5nIHNuaXBwZXQgc2NyaXB0IG1hcHBpbmcuIik7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2NyaXB0U25pcHBldE1vZGVsLnNjcmlwdE1hcHBpbmcucmVzZXQoKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2Rl
bC5zY3JpcHRNYXBwaW5nLnVpU291cmNlQ29kZXMoKS5sZW5ndGgsICJTbmlwcGV0cyBzY3JpcHQg
bWFwcGluZyBzaG91bGQgbm90IGhhdmUgYW55IHVpU291cmNlQ29kZWEgYWZ0ZXIgcmVzZXQuIik7
CisgICAgICAgICAgICB3b3Jrc3BhY2UucHJvamVjdCgpLnJlc2V0KCk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXdvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCkubGVuZ3Ro
LCAiU25pcHBldHMgc2NyaXB0IG1hcHBpbmcgc2hvdWxkIG5vdCBoYXZlIGFueSB1aVNvdXJjZUNv
ZGVzIGFmdGVyIHJlc2V0LiIpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVB
ZGRlZChldmVudCkKICAgICAgICAgICAgIHsKQEAgLTM1LDcgKzM2LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS51cmwuaW5kZXhPZihzbmlwcGV0
TmFtZSkgPT09IC0xKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgdWlTb3VyY2VDb2RlIHdhcyByZWNy
ZWF0ZWQuIik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLndvcmtzcGFjZS5yZW1vdmVF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlT
b3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAgICAgICB3b3Jr
c3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlk
ZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAg
ICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9LAo=
</data>
<flag name="review"
          id="171918"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>