<?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>80286</bug_id>
          
          <creation_ts>2012-03-05 07:59:24 -0800</creation_ts>
          <short_desc>Web Inspector: stop using RawSourceCode in BreakpointManager.</short_desc>
          <delta_ts>2012-03-06 00:11:46 -0800</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="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</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>570697</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-05 07:59:24 -0800</bug_when>
    <thetext>Web Inspector: stop using RawSourceCode in BreakpointManager.

See bug 79130 for why it&apos;s needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570702</commentid>
    <comment_count>1</comment_count>
      <attachid>130135</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-05 08:02:53 -0800</bug_when>
    <thetext>Created attachment 130135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570749</commentid>
    <comment_count>2</comment_count>
      <attachid>130135</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-05 08:59:06 -0800</bug_when>
    <thetext>Comment on attachment 130135
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=130135&amp;action=review

&gt; Source/WebCore/inspector/front-end/BreakpointManager.js:37
&gt; + * @param {WebInspector.DebuggerPresentationModel} sourceMapping

Maybe scriptMapping?
Could you please add an interface (ScriptMapping?) and implement it in DebuggerPresentationModel?

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:45
&gt; +    this._breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints,

I think one long line would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570775</commentid>
    <comment_count>3</comment_count>
      <attachid>130153</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-05 09:32:06 -0800</bug_when>
    <thetext>Created attachment 130153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570780</commentid>
    <comment_count>4</comment_count>
      <attachid>130153</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-05 09:36:38 -0800</bug_when>
    <thetext>Comment on attachment 130153
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=130153&amp;action=review

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:45
&gt; +    this._breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints,

One line?

&gt; Source/WebCore/inspector/front-end/ScriptMapping.js:48
&gt; +    rawLocationToUILocation: function(rawLocation)

rawLocationToUILocation: function(rawLocation) { },

&gt; Source/WebCore/inspector/front-end/ScriptMapping.js:58
&gt; +    uiLocationToRawLocation: function(uiSourceCode, lineNumber, columnNumber)

ditto

&gt; Source/WebCore/inspector/front-end/ScriptMapping.js:68
&gt; +    {

ditto

&gt; Source/WebCore/inspector/front-end/ScriptMapping.js:75
&gt; +    {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571575</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-06 00:11:46 -0800</bug_when>
    <thetext>Committed r109872: &lt;http://trac.webkit.org/changeset/109872&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130135</attachid>
            <date>2012-03-05 08:02:53 -0800</date>
            <delta_ts>2012-03-05 09:31:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80286-20120305200251.patch</filename>
            <type>text/plain</type>
            <size>14862</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI0OWUyOGUzZGQ3YzIw
N2M2YWM2OWM3NGViNGY3YWUyOGYxMzhlMC4uMWQxZjQ5NGIxZWY5NmJiY2FlODk3NWI4ZmU5ZmI0
NTQ4ODE4ZTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDEyLTAzLTA1ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHN0b3AgdXNpbmcgUmF3U291cmNlQ29kZSBpbiBCcmVha3BvaW50TWFuYWdlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS51aVNvdXJjZUNvZGVBZGRlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLnNldEJyZWFrcG9pbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fbWF0ZXJp
YWxpemVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdl
ci5wcm90b3R5cGUuX2JyZWFrcG9pbnREZWJ1Z2dlckxvY2F0aW9uQ2hhbmdlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwpOgorCisyMDEyLTAz
LTA1ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGZpeCBleHRlbnNpb25zLXJlc291cmNlLmh0bWwgdGVzdC4KICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTgzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFn
ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5h
Z2VyLmpzCmluZGV4IDg3MTkxZTg2ZTJmZWMyNzZkNDI0MTcwNDRjZDQxNTVlYWYzNWUxMjEuLjZj
YTdiYjA4YzBhMmJlZWIyNDk5NmZkNmVhYjY3MjdmZDk1MzNhNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpA
QCAtMzQsOCArMzQsOSBAQAogICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludCl9IGJyZWFrcG9pbnRBZGRlZERlbGVnYXRlCiAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50KX0gYnJlYWtwb2ludFJlbW92ZWREZWxlZ2F0ZQogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbH0gZGVidWdnZXJNb2RlbAorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbH0gc291cmNlTWFwcGluZwogICov
Ci1XZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIgPSBmdW5jdGlvbihicmVha3BvaW50U3Rv
cmFnZSwgYnJlYWtwb2ludEFkZGVkRGVsZWdhdGUsIGJyZWFrcG9pbnRSZW1vdmVkRGVsZWdhdGUs
IGRlYnVnZ2VyTW9kZWwpCitXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIgPSBmdW5jdGlv
bihicmVha3BvaW50U3RvcmFnZSwgYnJlYWtwb2ludEFkZGVkRGVsZWdhdGUsIGJyZWFrcG9pbnRS
ZW1vdmVkRGVsZWdhdGUsIGRlYnVnZ2VyTW9kZWwsIHNvdXJjZU1hcHBpbmcpCiB7CiAgICAgdGhp
cy5fYnJlYWtwb2ludFN0b3JhZ2UgPSBicmVha3BvaW50U3RvcmFnZTsKICAgICB0aGlzLl9icmVh
a3BvaW50QWRkZWREZWxlZ2F0ZSA9IGJyZWFrcG9pbnRBZGRlZERlbGVnYXRlOwpAQCAtNDYsNiAr
NDcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIgPSBmdW5jdGlvbihicmVha3Bv
aW50U3RvcmFnZSwgYnJlYWtwb2ludEFkZGVkRGVsZQogICAgIHRoaXMuX2JyZWFrcG9pbnRzQnlV
SUxvY2F0aW9uID0ge307CiAKICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsID0gZGVidWdnZXJNb2Rl
bDsKKyAgICB0aGlzLl9zb3VyY2VNYXBwaW5nID0gc291cmNlTWFwcGluZzsKIAogICAgIC8qKgog
ICAgICAqIEB0eXBlIHtPYmplY3QuPERlYnVnZ2VyQWdlbnQuQnJlYWtwb2ludElkLCBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludD59CkBAIC03MSw3ICs3Myw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4g
YnJlYWtwb2ludHMpIHsKICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNb
bGluZU51bWJlcl07CiAgICAgICAgICAgICBicmVha3BvaW50LnVpU291cmNlQ29kZSA9IHVpU291
cmNlQ29kZTsKLSAgICAgICAgICAgIHRoaXMuX21hdGVyaWFsaXplQnJlYWtwb2ludChicmVha3Bv
aW50LCB1aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAg
ICAgIHRoaXMuX21hdGVyaWFsaXplQnJlYWtwb2ludChicmVha3BvaW50LCB1aVNvdXJjZUNvZGUp
OwogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQuX2RlYnVnZ2VyTG9jYXRpb24pCiAgICAgICAg
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludERlYnVnZ2VyTG9jYXRpb25DaGFuZ2VkKGJyZWFrcG9p
bnQpOwogICAgICAgICB9CkBAIC0xMDAsNyArMTAyLDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBuZXcgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLmlkLCBsaW5lTnVtYmVyLCBjb25kaXRp
b24sIGVuYWJsZWQsIHBlcnNpc3RlbnQpOwogICAgICAgICBicmVha3BvaW50LnVpU291cmNlQ29k
ZSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludFRvVUkoYnJlYWtw
b2ludCk7Ci0gICAgICAgIHRoaXMuX21hdGVyaWFsaXplQnJlYWtwb2ludChicmVha3BvaW50LCB1
aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5f
bWF0ZXJpYWxpemVCcmVha3BvaW50KGJyZWFrcG9pbnQsIHVpU291cmNlQ29kZSk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtMTMxLDE2ICsxMzMsMTUgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnR9IGJyZWFrcG9pbnQKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlfSByYXdTb3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KLSAgICBfbWF0ZXJpYWxpemVCcmVh
a3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50LCByYXdTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUp
CisgICAgX21hdGVyaWFsaXplQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtwb2ludCwgdWlTb3Vy
Y2VDb2RlKQogICAgIHsKICAgICAgICAgaWYgKCFicmVha3BvaW50LmVuYWJsZWQgfHwgYnJlYWtw
b2ludC5fbWF0ZXJpYWxpemVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGJyZWFr
cG9pbnQuX21hdGVyaWFsaXplZCA9IHRydWU7Ci0gICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHJh
d1NvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCBicmVha3Bv
aW50LmxpbmVOdW1iZXIsIDApOworICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSB0aGlzLl9zb3Vy
Y2VNYXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgYnJlYWtwb2lu
dC5saW5lTnVtYmVyLCAwKTsKICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludEluRGVidWdnZXIo
YnJlYWtwb2ludCwgcmF3TG9jYXRpb24pOwogICAgIH0sCiAKQEAgLTE0OSw5ICsxNTAsOSBAQCBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAg
IF9icmVha3BvaW50RGVidWdnZXJMb2NhdGlvbkNoYW5nZWQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnQp
CiAgICAgewotICAgICAgICBpZiAoIWJyZWFrcG9pbnQudWlTb3VyY2VDb2RlKQorICAgICAgICB2
YXIgdWlMb2NhdGlvbiA9IHRoaXMuX3NvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRp
b24oYnJlYWtwb2ludC5fZGVidWdnZXJMb2NhdGlvbik7CisgICAgICAgIGlmICghdWlMb2NhdGlv
bikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHVpTG9jYXRpb24gPSBicmVha3Bv
aW50LnVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGJy
ZWFrcG9pbnQuX2RlYnVnZ2VyTG9jYXRpb24pOwogICAgICAgICBpZiAodWlMb2NhdGlvbi5saW5l
TnVtYmVyID09PSBicmVha3BvaW50LmxpbmVOdW1iZXIpCiAgICAgICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCAwYmVjZmE5ZjNjYWY1N2RhNGJkMTUz
Yzg0OWYyMjM3YzhjMDkwOTcyLi4yNWFhNWNjOWFiZGU0ZWM0N2Q3NzA4NWJiMDUzZjg1YzM3MjQ3
NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC00Miw3ICs0MiwxMCBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkwgPSB7fTsKICAgICB0aGlzLl9wcmVzZW50
YXRpb25DYWxsRnJhbWVzID0gW107CiAKLSAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlciA9IG5l
dyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJy
ZWFrcG9pbnRzLCB0aGlzLl9icmVha3BvaW50QWRkZWQuYmluZCh0aGlzKSwgdGhpcy5fYnJlYWtw
b2ludFJlbW92ZWQuYmluZCh0aGlzKSwgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwpOworICAg
IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlcihXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Jy
ZWFrcG9pbnRBZGRlZC5iaW5kKHRoaXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50UmVtb3Zl
ZC5iaW5kKHRoaXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgdGhpcyk7
CiAKICAgICB0aGlzLl9wZW5kaW5nQ29uc29sZU1lc3NhZ2VzID0ge307CiAgICAgdGhpcy5fY29u
c29sZU1lc3NhZ2VMaXZlTG9jYXRpb25zID0gW107CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDAxNTQ2NTdjZDIyOWM1MGJm
NjEyMDFlMGQ1ZDg4YjQzYzU1YjFmMC4uYzkwMTU5N2NlZTgxM2VhODdjNDE5NWVjYTlkOGE2NjRh
ZWNjNjQwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDEyLTAzLTA1ICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN0
b3AgdXNpbmcgUmF3U291cmNlQ29kZSBpbiBCcmVha3BvaW50TWFuYWdlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWtwb2ludC1tYW5hZ2VyLmh0bWw6CisKKzIwMTItMDMtMDUgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogZml4IGV4
dGVuc2lvbnMtcmVzb3VyY2UuaHRtbCB0ZXN0LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxODMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCmluZGV4IGMyZTNlNWZlYjZj
ZTMzMzc0YTA3N2RmZTEzZjQxYzc1ZGFhOTRiYTQuLmVkZmFiMWQ2MmIxMDQyZTU2YzY1NDJlNGVk
M2YzNzUyZmRjZWFkODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAgLTU4LDM1ICs1OCwzMSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBzZXJpYWxpemVkQnJlYWtwb2ludHMucHVzaChjcmVhdGVCcmVha3BvaW50
KCJhLmpzIiwgMjAsICIiLCBmYWxzZSkpOwogICAgIHNlcmlhbGl6ZWRCcmVha3BvaW50cy5wdXNo
KGNyZWF0ZUJyZWFrcG9pbnQoImIuanMiLCAzLCAiIiwgdHJ1ZSkpOwogCi0gICAgZnVuY3Rpb24g
Y3JlYXRlVUlTb3VyY2VDb2RlKGlkLCB1cmwsIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uLCB1aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbikKKyAgICBmdW5jdGlvbiBjcmVhdGVVSVNvdXJjZUNvZGUoaWQs
IHVybCkgeyByZXR1cm4geyBpZDogaWQsIHVybDogdXJsIH07IH0KKyAgICB2YXIgdWlTb3VyY2VD
b2RlQSA9IGNyZWF0ZVVJU291cmNlQ29kZSgiYS5qcyIsICJhLmpzIik7CisgICAgdmFyIHVpU291
cmNlQ29kZUIgPSBjcmVhdGVVSVNvdXJjZUNvZGUoImIuanMiLCAiYi5qcyIpOworCisgICAgdmFy
IHNvdXJjZU1hcHBpbmcgPSB7fTsKKyAgICBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxv
Y2F0aW9uID0gZnVuY3Rpb24ocmF3TG9jYXRpb24pIHsgcmV0dXJuIHJhd0xvY2F0aW9uOyB9Owor
ICAgIHNvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24gPSBmdW5jdGlvbih1aVNv
dXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAg
ICAgaWQ6IGlkLAotICAgICAgICAgICAgdXJsOiB1cmwsCi0gICAgICAgICAgICByYXdTb3VyY2VD
b2RlOiB7IHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiByYXdMb2NhdGlvblRvVUlMb2NhdGlvbiwg
dWlMb2NhdGlvblRvUmF3TG9jYXRpb246IHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uIH0KLSAgICAg
ICAgfTsKKyAgICAgICAgc2NyaXB0SWQgPSB1aVNvdXJjZUNvZGUgPT09IHVpU291cmNlQ29kZUEg
PyAiYS5qcyIgOiAiYi5qcyI7CisgICAgICAgIHJldHVybiB7IHNjcmlwdElkOiBzY3JpcHRJZCwg
bGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiAwIH07CiAgICAgfQogCi0gICAg
dmFyIHVpU291cmNlQ29kZUEgPSBjcmVhdGVVSVNvdXJjZUNvZGUoImEuanMiLCAiYS5qcyIsCi0g
ICAgICAgICAgICBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyByZXR1cm4gcmF3TG9jYXRpb247IH0s
Ci0gICAgICAgICAgICBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpIHsgcmV0dXJu
IHsgc2NyaXB0SWQ6ICJhLmpzIiwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVy
OiAwIH07IH0pOwotICAgIHZhciB1aVNvdXJjZUNvZGVCID0gY3JlYXRlVUlTb3VyY2VDb2RlKCJi
LmpzIiwgImIuanMiLAotICAgICAgICAgICAgZnVuY3Rpb24ocmF3TG9jYXRpb24pIHsgcmV0dXJu
IHJhd0xvY2F0aW9uOyB9LAotICAgICAgICAgICAgZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5l
TnVtYmVyKSB7IHJldHVybiB7IHNjcmlwdElkOiAiYi5qcyIsIGxpbmVOdW1iZXI6IGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcjogMCB9OyB9KTsKLQotICAgIGZ1bmN0aW9uIGNyZWF0ZUJyZWFrcG9p
bnRNYW5hZ2VyKGJyZWFrcG9pbnRzKQorICAgIGZ1bmN0aW9uIGNyZWF0ZUJyZWFrcG9pbnRNYW5h
Z2VyKGJyZWFrcG9pbnRzLCBzb3VyY2VNYXBwaW5nKQogICAgIHsKICAgICAgICAgYnJlYWtwb2lu
dFN0b3JhZ2Uuc2V0KGJyZWFrcG9pbnRzKTsKICAgICAgICAgdWlCcmVha3BvaW50cyA9IHt9Owog
ICAgICAgICBkZWJ1Z2dlckJyZWFrcG9pbnRzID0ge307CiAgICAgICAgIGRlYnVnZ2VyTW9kZWwu
cmVtb3ZlQWxsTGlzdGVuZXJzKCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyKGJyZWFrcG9pbnRTdG9yYWdlLCBicmVha3BvaW50QWRkZWQsIGJyZWFr
cG9pbnRSZW1vdmVkLCBkZWJ1Z2dlck1vZGVsKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludFN0b3JhZ2UsIGJyZWFrcG9pbnRBZGRl
ZCwgYnJlYWtwb2ludFJlbW92ZWQsIGRlYnVnZ2VyTW9kZWwsIHNvdXJjZU1hcHBpbmcpOwogICAg
IH0KIAogICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKICAgICAgICAgZnVuY3Rpb24g
dWlTb3VyY2VDb2RlQWRkZWQobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFr
cG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9p
bnRzKTsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9p
bnRNYW5hZ2VyKHNlcmlhbGl6ZWRCcmVha3BvaW50cywgc291cmNlTWFwcGluZyk7CiAKICAgICAg
ICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUEp
OwogICAgICAgICAgICAgc2V0VGltZW91dChjaGVja1Jlc3VsdHMsIDApOwpAQCAtMTAxLDcgKzk3
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gc2V0QW5kUmVtb3ZlQnJl
YWtwb2ludHMobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5h
Z2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9pbnRzKTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2Vy
KHNlcmlhbGl6ZWRCcmVha3BvaW50cywgc291cmNlTWFwcGluZyk7CiAKICAgICAgICAgICAgIGJy
ZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUEpOwogICAgICAg
ICAgICAgc2V0VGltZW91dChzZXRBbmRSZW1vdmUsIDApOwpAQCAtMTI3LDcgKzEyMyw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHNldEJyZWFrcG9pbnRPbkNvbW1lbnQo
bmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3Jl
YXRlQnJlYWtwb2ludE1hbmFnZXIoW10pOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5h
Z2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoW10sIHNvdXJjZU1hcHBpbmcpOwogCiAgICAg
ICAgICAgICBicmVha3BvaW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGVB
KTsKIApAQCAtMTQzLDcgKzEzOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0
aW9uIHNldEJyZWFrcG9pbnRPdXRzaWRlT2ZTY3JpcHQobmV4dCkKICAgICAgICAgewotICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoW10p
OworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1h
bmFnZXIoW10sIHNvdXJjZU1hcHBpbmcpOwogCiAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdl
ci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGVBKTsKIApAQCAtMTU5LDcgKzE1NSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3ROYXZpZ2F0aW9uKG5leHQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJy
ZWFrcG9pbnRNYW5hZ2VyKHNlcmlhbGl6ZWRCcmVha3BvaW50cyk7CisgICAgICAgICAgICB2YXIg
YnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihzZXJpYWxpemVkQnJl
YWtwb2ludHMsIHNvdXJjZU1hcHBpbmcpOwogCiAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdl
ci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGVBKTsKICAgICAgICAgICAgIHNldFRpbWVv
dXQobmF2aWdhdGVUb0IsIDApOwpAQCAtMjAyLDE1ICsxOTgsMTYgQEAgZnVuY3Rpb24gdGVzdCgp
CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRpbmcobmV4dCkKICAgICAgICAgewotICAg
ICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIo
W2NyZWF0ZUJyZWFrcG9pbnQoImMuanMiLCA0LCAiIiwgdHJ1ZSldKTsKLSAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGVDID0gY3JlYXRlVUlTb3VyY2VDb2RlKCJjLmpzIiwgImMuanMiLAotICAg
ICAgICAgICAgICAgICAgICBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyByZXR1cm4gcmF3TG9jYXRp
b247IH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51
bWJlcikgeyByZXR1cm4geyBzY3JpcHRJZDogImMuanMiLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXI6IDAgfTsgfSk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlQ0Zv
cm1hdHRlZCA9IGNyZWF0ZVVJU291cmNlQ29kZSgiZGVvYmZ1c2NhdGVkOmMuanMiLCAiYy5qcyIs
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHJhd0xvY2F0aW9uKSB7IHJldHVybiB7IGxp
bmVOdW1iZXI6IHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIgKiAyLCBjb2x1bW5OdW1iZXI6IHJhd0xv
Y2F0aW9uLmNvbHVtbk51bWJlciAqIDIgfTsgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rp
b24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKSB7IHJldHVybiB7IHNjcmlwdElkOiAiYy5qcyIs
IGxpbmVOdW1iZXI6IE1hdGguZmxvb3IobGluZU51bWJlciAvIDIpLCBjb2x1bW5OdW1iZXI6IDAg
fTsgfSk7Ci0KLSAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVk
KHVpU291cmNlQ29kZUMpOworICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSB7fTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2Vy
KFtjcmVhdGVCcmVha3BvaW50KCJjLmpzIiwgNCwgIiIsIHRydWUpXSwgc291cmNlTWFwcGluZyk7
CisKKyAgICAgICAgICAgIHZhciBvcmlnaW5hbFVJU291cmNlQ29kZSA9IGNyZWF0ZVVJU291cmNl
Q29kZSgiYy5qcyIsICJjLmpzIik7CisgICAgICAgICAgICB2YXIgZm9ybWF0dGVkVUlTb3VyY2VD
b2RlID0gY3JlYXRlVUlTb3VyY2VDb2RlKCJkZW9iZnVzY2F0ZWQ6Yy5qcyIsICJjLmpzIik7CisK
KyAgICAgICAgICAgIHNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24gPSBmdW5j
dGlvbihyYXdMb2NhdGlvbikgeyByZXR1cm4gcmF3TG9jYXRpb247IH07CisgICAgICAgICAgICBz
b3VyY2VNYXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uID0gZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyKSB7IHJldHVybiB7IHNjcmlwdElkOiAiYy5qcyIsIGxpbmVOdW1iZXI6
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogMCB9OyB9OworCisgICAgICAgICAgICBicmVha3Bv
aW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZChvcmlnaW5hbFVJU291cmNlQ29kZSk7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZvcm1hdCwgMCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGZv
cm1hdCgpCkBAIC0yMjEsOSArMjE4LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkZvcm1hdCBzb3VyY2UuIik7CiAgICAgICAg
ICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIucmVzZXQoKTsKIAotICAgICAgICAgICAgICAgIGJy
ZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUNGb3JtYXR0ZWQp
OwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodWlTb3Vy
Y2VDb2RlQ0Zvcm1hdHRlZCwgNCwgIiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGJyZWFrcG9p
bnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQ0Zvcm1hdHRlZCwgOCwgIiIsIGZh
bHNlKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0
aW9uID0gZnVuY3Rpb24ocmF3TG9jYXRpb24pIHsgcmV0dXJuIHsgbGluZU51bWJlcjogcmF3TG9j
YXRpb24ubGluZU51bWJlciAqIDIsIGNvbHVtbk51bWJlcjogcmF3TG9jYXRpb24uY29sdW1uTnVt
YmVyICogMiB9OyB9OworICAgICAgICAgICAgICAgIHNvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24gPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpIHsgcmV0dXJu
IHsgc2NyaXB0SWQ6ICJjLmpzIiwgbGluZU51bWJlcjogTWF0aC5mbG9vcihsaW5lTnVtYmVyIC8g
MiksIGNvbHVtbk51bWJlcjogMCB9OyB9OworCisgICAgICAgICAgICAgICAgYnJlYWtwb2ludE1h
bmFnZXIudWlTb3VyY2VDb2RlQWRkZWQoZm9ybWF0dGVkVUlTb3VyY2VDb2RlKTsKKyAgICAgICAg
ICAgICAgICBicmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KGZvcm1hdHRlZFVJU291cmNl
Q29kZSwgNCwgIiIsIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnNl
dEJyZWFrcG9pbnQoZm9ybWF0dGVkVUlTb3VyY2VDb2RlLCA4LCAiIiwgZmFsc2UpOwogICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoY2hhbmdlQnJlYWtwb2ludHMsIDApOwogICAgICAgICAgICAg
fQogCkBAIC0yMzIsOCArMjMyLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAg
YXNzZXJ0RXF1YWxzKHsiYy5qczoyOjAiOiIifSwgZGVidWdnZXJCcmVha3BvaW50cyk7CiAKICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5DaGFuZ2UgYnJlYWtwb2lu
dHMuIik7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2lu
dCh1aVNvdXJjZUNvZGVDRm9ybWF0dGVkLCA4KTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50
TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZUNGb3JtYXR0ZWQsIDEyLCAiIiwgdHJ1
ZSk7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludChm
b3JtYXR0ZWRVSVNvdXJjZUNvZGUsIDgpOworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5h
Z2VyLnNldEJyZWFrcG9pbnQoZm9ybWF0dGVkVUlTb3VyY2VDb2RlLCAxMiwgIiIsIHRydWUpOwog
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVsb2FkLCAwKTsKICAgICAgICAgICAgIH0KIApA
QCAtMjQ0LDcgKzI0NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJcblJlbG9hZC4iKTsKICAgICAgICAgICAgICAgICBicmVha3Bv
aW50TWFuYWdlci5kZWJ1Z2dlclJlc2V0KCk7CiAKLSAgICAgICAgICAgICAgICBicmVha3BvaW50
TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGVDRm9ybWF0dGVkKTsKKyAgICAg
ICAgICAgICAgICBicmVha3BvaW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZChmb3JtYXR0ZWRV
SVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgICAgIHZhciBldmVudERhdGEgPSB7IGJyZWFrcG9p
bnRJZDogImMuanM6MjowIiwgbG9jYXRpb246IHsgc2NyaXB0SWQ6ICJjLmpzIiwgbGluZU51bWJl
cjogMywgY29sdW1uTnVtYmVyOiAwIH19OwogICAgICAgICAgICAgICAgIGRlYnVnZ2VyTW9kZWwu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50
cy5CcmVha3BvaW50UmVzb2x2ZWQsIGV2ZW50RGF0YSk7CiAgICAgICAgICAgICAgICAgZXZlbnRE
YXRhID0geyBicmVha3BvaW50SWQ6ICJjLmpzOjY6MCIsIGxvY2F0aW9uOiB7IHNjcmlwdElkOiAi
Yy5qcyIsIGxpbmVOdW1iZXI6IDYsIGNvbHVtbk51bWJlcjogMCB9fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130153</attachid>
            <date>2012-03-05 09:32:06 -0800</date>
            <delta_ts>2012-03-05 09:36:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80286-20120305213203.patch</filename>
            <type>text/plain</type>
            <size>21659</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI0OWUyOGUzZGQ3YzIw
N2M2YWM2OWM3NGViNGY3YWUyOGYxMzhlMC4uNzgxYWY2MWViNmRhYmE4OTNiZDc0NWNlZTQzYzkx
NmRhNjhlOGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTAzLTA1ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHN0b3AgdXNpbmcgUmF3U291cmNlQ29kZSBpbiBCcmVha3BvaW50TWFuYWdlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUudWlTb3VyY2VDb2RlQWRkZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5zZXRCcmVh
a3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5
cGUuX21hdGVyaWFsaXplQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludE1hbmFnZXIucHJvdG90eXBlLl9icmVha3BvaW50RGVidWdnZXJMb2NhdGlvbkNoYW5nZWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanM6IEFkZGVkLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNjcmlwdE1hcHBpbmcucHJvdG90eXBlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZS51aUxvY2F0aW9uVG9S
YXdMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUuY3JlYXRlTGl2ZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBw
aW5nLnByb3RvdHlwZS51aVNvdXJjZUNvZGVMaXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbDoKKworMjAxMi0wMy0wNSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggZXh0ZW5zaW9ucy1yZXNvdXJj
ZS5odG1sIHRlc3QuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDE4MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGYwZTBmYjg4YzEwOGJjMTE1YWMzY2Vk
NGNkY2YzNjJmZjRlYjg2Yi4uNDNjM2ZhMDIxNTQxMWNhZjBjNDA1NTc5Mzk2ZDNmNmEzNmRmM2Iz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjIyOCw2ICs2MjI4LDcgQEAKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c05hdmlnYXRvci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1NlYXJjaFNjb3BlLmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMmVjY2UyMjJhOTFjMWI1MTE0ODZkMTlhMzM5YWJkNzZmMTY5
ODRkMC4uNTU2YzIxY2Y2YTYwNmRhNDM2MTY1YjQyNWI3NTk3OTZlZjU5MDFhNSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTczMjI1LDYgKzcz
MjI1LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNjcmlwdE1hcHBpbmcuanMiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJv
bnQtZW5kXFNjcmlwdHNOYXZpZ2F0b3IuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2Vy
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdl
ci5qcwppbmRleCA4NzE5MWU4NmUyZmVjMjc2ZDQyNDE3MDQ0Y2Q0MTU1ZWFmMzVlMTIxLi4zMjQ4
ODI4YjNlYTk4MjJjMmI3Nzc0YTdmMTQxOTBlZDk1MWI2MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKQEAg
LTM0LDggKzM0LDkgQEAKICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnQpfSBicmVha3BvaW50QWRkZWREZWxlZ2F0ZQogICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludCl9IGJyZWFrcG9pbnRSZW1vdmVkRGVsZWdhdGUKICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWx9IGRlYnVnZ2VyTW9kZWwKKyAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNjcmlwdE1hcHBpbmd9IHNjcmlwdE1hcHBpbmcKICAqLwotV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnRNYW5hZ2VyID0gZnVuY3Rpb24oYnJlYWtwb2ludFN0b3JhZ2UsIGJyZWFrcG9p
bnRBZGRlZERlbGVnYXRlLCBicmVha3BvaW50UmVtb3ZlZERlbGVnYXRlLCBkZWJ1Z2dlck1vZGVs
KQorV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyID0gZnVuY3Rpb24oYnJlYWtwb2ludFN0
b3JhZ2UsIGJyZWFrcG9pbnRBZGRlZERlbGVnYXRlLCBicmVha3BvaW50UmVtb3ZlZERlbGVnYXRl
LCBkZWJ1Z2dlck1vZGVsLCBzY3JpcHRNYXBwaW5nKQogewogICAgIHRoaXMuX2JyZWFrcG9pbnRT
dG9yYWdlID0gYnJlYWtwb2ludFN0b3JhZ2U7CiAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkRGVs
ZWdhdGUgPSBicmVha3BvaW50QWRkZWREZWxlZ2F0ZTsKQEAgLTQ2LDYgKzQ3LDcgQEAgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyID0gZnVuY3Rpb24oYnJlYWtwb2ludFN0b3JhZ2UsIGJy
ZWFrcG9pbnRBZGRlZERlbGUKICAgICB0aGlzLl9icmVha3BvaW50c0J5VUlMb2NhdGlvbiA9IHt9
OwogCiAgICAgdGhpcy5fZGVidWdnZXJNb2RlbCA9IGRlYnVnZ2VyTW9kZWw7CisgICAgdGhpcy5f
c2NyaXB0TWFwcGluZyA9IHNjcmlwdE1hcHBpbmc7CiAKICAgICAvKioKICAgICAgKiBAdHlwZSB7
T2JqZWN0LjxEZWJ1Z2dlckFnZW50LkJyZWFrcG9pbnRJZCwgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnQ+fQpAQCAtNzEsNyArNzMsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJv
dG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7
CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOwog
ICAgICAgICAgICAgYnJlYWtwb2ludC51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdWlTb3VyY2VD
b2RlLnJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICB0aGlzLl9tYXRl
cmlhbGl6ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlKTsKICAgICAgICAgICAg
IGlmIChicmVha3BvaW50Ll9kZWJ1Z2dlckxvY2F0aW9uKQogICAgICAgICAgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnREZWJ1Z2dlckxvY2F0aW9uQ2hhbmdlZChicmVha3BvaW50KTsKICAgICAgICAg
fQpAQCAtMTAwLDcgKzEwMiw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBicmVha3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50KHVpU291cmNlQ29kZS5pZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBw
ZXJzaXN0ZW50KTsKICAgICAgICAgYnJlYWtwb2ludC51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNv
ZGU7CiAgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9pbnRUb1VJKGJyZWFrcG9pbnQpOwotICAgICAg
ICB0aGlzLl9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlLnJh
d1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuX21hdGVyaWFsaXplQnJl
YWtwb2ludChicmVha3BvaW50LCB1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTEzMSwxNiArMTMzLDE1IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5
cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5CcmVha3BvaW50
fSBicmVha3BvaW50Ci0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZX0g
cmF3U291cmNlQ29kZQogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0g
dWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAgX21hdGVyaWFsaXplQnJlYWtwb2ludDogZnVuY3Rp
b24oYnJlYWtwb2ludCwgcmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKQorICAgIF9tYXRlcmlh
bGl6ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnQsIHVpU291cmNlQ29kZSkKICAgICB7
CiAgICAgICAgIGlmICghYnJlYWtwb2ludC5lbmFibGVkIHx8IGJyZWFrcG9pbnQuX21hdGVyaWFs
aXplZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBicmVha3BvaW50Ll9tYXRlcmlh
bGl6ZWQgPSB0cnVlOwotICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnVp
TG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgYnJlYWtwb2ludC5saW5lTnVtYmVy
LCAwKTsKKyAgICAgICAgdmFyIHJhd0xvY2F0aW9uID0gdGhpcy5fc2NyaXB0TWFwcGluZy51aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJlciwg
MCk7CiAgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnRJbkRlYnVnZ2VyKGJyZWFrcG9pbnQsIHJh
d0xvY2F0aW9uKTsKICAgICB9LAogCkBAIC0xNDksOSArMTUwLDkgQEAgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfYnJlYWtwb2ludERl
YnVnZ2VyTG9jYXRpb25DaGFuZ2VkOiBmdW5jdGlvbihicmVha3BvaW50KQogICAgIHsKLSAgICAg
ICAgaWYgKCFicmVha3BvaW50LnVpU291cmNlQ29kZSkKKyAgICAgICAgdmFyIHVpTG9jYXRpb24g
PSB0aGlzLl9zY3JpcHRNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGJyZWFrcG9pbnQu
X2RlYnVnZ2VyTG9jYXRpb24pOworICAgICAgICBpZiAoIXVpTG9jYXRpb24pCiAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIHZhciB1aUxvY2F0aW9uID0gYnJlYWtwb2ludC51aVNvdXJjZUNv
ZGUucmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihicmVha3BvaW50Ll9kZWJ1
Z2dlckxvY2F0aW9uKTsKICAgICAgICAgaWYgKHVpTG9jYXRpb24ubGluZU51bWJlciA9PT0gYnJl
YWtwb2ludC5saW5lTnVtYmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMKaW5kZXggMGJlY2ZhOWYzY2FmNTdkYTRiZDE1M2M4NDlmMjIzN2M4YzA5
MDk3Mi4uYmQ5MDcwMDVlZjMwYTk1N2JmNTFlYjY5ODFiNjRjZGI0M2E4MzljNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzAsNyArMzAsNyBAQAogCiAvKioKICAqIEBjb25z
dHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CisgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmd9CiAgKi8KIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsID0gZnVuY3Rpb24oKQogewpAQCAtNDIsNyArNDIsMTAgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5f
cmF3U291cmNlQ29kZUZvckRvY3VtZW50VVJMID0ge307CiAgICAgdGhpcy5fcHJlc2VudGF0aW9u
Q2FsbEZyYW1lcyA9IFtdOwogCi0gICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3Bv
aW50cywgdGhpcy5fYnJlYWtwb2ludEFkZGVkLmJpbmQodGhpcyksIHRoaXMuX2JyZWFrcG9pbnRS
ZW1vdmVkLmJpbmQodGhpcyksIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsKTsKKyAgICB0aGlz
Ll9icmVha3BvaW50TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIo
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9icmVha3Bv
aW50QWRkZWQuYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQuYmlu
ZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsIHRoaXMpOwogCiAg
ICAgdGhpcy5fcGVuZGluZ0NvbnNvbGVNZXNzYWdlcyA9IHt9OwogICAgIHRoaXMuX2NvbnNvbGVN
ZXNzYWdlTGl2ZUxvY2F0aW9ucyA9IFtdOwpAQCAtNzE2LDcgKzcxOSw3IEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLVdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKK1dlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2NyaXB0
TWFwcGluZy5wcm90b3R5cGU7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDQ0NjM1MzJiYTZmYzZiMjM2YWRjNGE3NzI3ZjQ0ODI3OWFiNzczMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5q
cwpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJ
bnNwZWN0b3IuT2JqZWN0fQorICovCitXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZyA9IGZ1bmN0
aW9uKCkKK3sKK30KKworV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzID0geworICAg
IFVJU291cmNlQ29kZUxpc3RDaGFuZ2VkOiAidXMtc291cmNlLWNvZGUtbGlzdC1jaGFuZ2VkIgor
fQorCitXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2NhdGlvbgorICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQorICAgICAqLworICAgIHJhd0xvY2F0
aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikKKyAgICB7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3Vy
Y2VDb2RlCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFyYW0g
e251bWJlcn0gY29sdW1uTnVtYmVyCisgICAgICogQHJldHVybiB7RGVidWdnZXJBZ2VudC5Mb2Nh
dGlvbn0KKyAgICAgKi8KKyAgICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24odWlT
b3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0aW9u
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbil9IHVwZGF0
ZURlbGVnYXRlCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuTGl2
ZUxvY2F0aW9ufQorICAgICAqLworICAgIGNyZWF0ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24ocmF3
TG9jYXRpb24sIHVwZGF0ZURlbGVnYXRlKQorICAgIHsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQorICAgICAqLwor
ICAgIHVpU291cmNlQ29kZUxpc3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgfQorfQorCitXZWJJ
bnNwZWN0b3IuU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
Lk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKaW5kZXggOGRiMzkxZDkwMzA5MTk2NWVmN2QzNzk2MDFjYjY2ZDExOTBiYWQ5
Yi4uNTdjNThlNjUxYzIxNzYwMTllNjJmMThlMWUwNWY0NGEyNTJkYzE1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTE4LDYgKzExOCw3
IEBACiAgICAgPGZpbGU+U2NyaXB0LmpzPC9maWxlPgogICAgIDxmaWxlPlNjcmlwdEZvcm1hdHRl
ci5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanM8L2ZpbGU+Cisg
ICAgPGZpbGU+U2NyaXB0TWFwcGluZy5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRzUGFuZWwu
anM8L2ZpbGU+CiAgICAgPGZpbGU+U2NyaXB0c05hdmlnYXRvci5qczwvZmlsZT4KICAgICA8Zmls
ZT5TY3JpcHRzU2VhcmNoU2NvcGUuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA0MTI0ZjA3NjE5MDc1NmZjYTI3
MjRhYTI2MjFjM2IzNTQ0NTcyZTAwLi43YzIwNzc4YWVjZTcxZThiYmU3N2FiMmQ5ZmQ3ZWQ4NWI0
N2RmOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKQEAgLTE2OCw2ICsxNjgsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRldGFpbGVk
SGVhcHNob3RWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJEZWJ1Z2dlck1vZGVsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJCcmVha3BvaW50TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iVUlTb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMDE1
NDY1N2NkMjI5YzUwYmY2MTIwMWUwZDVkODhiNDNjNTViMWYwLi5jOTAxNTk3Y2VlODEzZWE4N2M0
MTk1ZWNhOWQ4YTY2NGFlY2M2NDBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTItMDMtMDUg
IFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2Vi
IEluc3BlY3Rvcjogc3RvcCB1c2luZyBSYXdTb3VyY2VDb2RlIGluIEJyZWFrcG9pbnRNYW5hZ2Vy
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyODYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKworMjAxMi0wMy0wNSAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBmaXggZXh0ZW5zaW9ucy1yZXNvdXJjZS5odG1sIHRlc3QuCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE4MwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKaW5k
ZXggYzJlM2U1ZmViNmNlMzMzNzRhMDc3ZGZlMTNmNDFjNzVkYWE5NGJhNC4uZTg3ODUwZWM5N2E1
MTMwN2E1MzI0YjdhN2Y1ZDViOGRjYWM4ZWU1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbApAQCAtNTgsMzUgKzU4
LDMxIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHNlcmlhbGl6ZWRCcmVha3BvaW50cy5wdXNoKGNy
ZWF0ZUJyZWFrcG9pbnQoImEuanMiLCAyMCwgIiIsIGZhbHNlKSk7CiAgICAgc2VyaWFsaXplZEJy
ZWFrcG9pbnRzLnB1c2goY3JlYXRlQnJlYWtwb2ludCgiYi5qcyIsIDMsICIiLCB0cnVlKSk7CiAK
LSAgICBmdW5jdGlvbiBjcmVhdGVVSVNvdXJjZUNvZGUoaWQsIHVybCwgcmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24sIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKQorICAgIGZ1bmN0aW9uIGNyZWF0ZVVJ
U291cmNlQ29kZShpZCwgdXJsKSB7IHJldHVybiB7IGlkOiBpZCwgdXJsOiB1cmwgfTsgfQorICAg
IHZhciB1aVNvdXJjZUNvZGVBID0gY3JlYXRlVUlTb3VyY2VDb2RlKCJhLmpzIiwgImEuanMiKTsK
KyAgICB2YXIgdWlTb3VyY2VDb2RlQiA9IGNyZWF0ZVVJU291cmNlQ29kZSgiYi5qcyIsICJiLmpz
Iik7CisKKyAgICB2YXIgc2NyaXB0TWFwcGluZyA9IHt9OworICAgIHNjcmlwdE1hcHBpbmcucmF3
TG9jYXRpb25Ub1VJTG9jYXRpb24gPSBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyByZXR1cm4gcmF3
TG9jYXRpb247IH07CisgICAgc2NyaXB0TWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbiA9
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHJldHVy
biB7Ci0gICAgICAgICAgICBpZDogaWQsCi0gICAgICAgICAgICB1cmw6IHVybCwKLSAgICAgICAg
ICAgIHJhd1NvdXJjZUNvZGU6IHsgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IHJhd0xvY2F0aW9u
VG9VSUxvY2F0aW9uLCB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogdWlMb2NhdGlvblRvUmF3TG9j
YXRpb24gfQotICAgICAgICB9OworICAgICAgICBzY3JpcHRJZCA9IHVpU291cmNlQ29kZSA9PT0g
dWlTb3VyY2VDb2RlQSA/ICJhLmpzIiA6ICJiLmpzIjsKKyAgICAgICAgcmV0dXJuIHsgc2NyaXB0
SWQ6IHNjcmlwdElkLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IDAgfTsK
ICAgICB9CiAKLSAgICB2YXIgdWlTb3VyY2VDb2RlQSA9IGNyZWF0ZVVJU291cmNlQ29kZSgiYS5q
cyIsICJhLmpzIiwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHJhd0xvY2F0aW9uKSB7IHJldHVybiBy
YXdMb2NhdGlvbjsgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51
bWJlcikgeyByZXR1cm4geyBzY3JpcHRJZDogImEuanMiLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXI6IDAgfTsgfSk7Ci0gICAgdmFyIHVpU291cmNlQ29kZUIgPSBjcmVhdGVV
SVNvdXJjZUNvZGUoImIuanMiLCAiYi5qcyIsCi0gICAgICAgICAgICBmdW5jdGlvbihyYXdMb2Nh
dGlvbikgeyByZXR1cm4gcmF3TG9jYXRpb247IH0sCi0gICAgICAgICAgICBmdW5jdGlvbih1aVNv
dXJjZUNvZGUsIGxpbmVOdW1iZXIpIHsgcmV0dXJuIHsgc2NyaXB0SWQ6ICJiLmpzIiwgbGluZU51
bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiAwIH07IH0pOwotCi0gICAgZnVuY3Rpb24g
Y3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludHMpCisgICAgZnVuY3Rpb24gY3JlYXRl
QnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludHMsIHNjcmlwdE1hcHBpbmcpCiAgICAgewogICAg
ICAgICBicmVha3BvaW50U3RvcmFnZS5zZXQoYnJlYWtwb2ludHMpOwogICAgICAgICB1aUJyZWFr
cG9pbnRzID0ge307CiAgICAgICAgIGRlYnVnZ2VyQnJlYWtwb2ludHMgPSB7fTsKICAgICAgICAg
ZGVidWdnZXJNb2RlbC5yZW1vdmVBbGxMaXN0ZW5lcnMoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludFN0b3JhZ2UsIGJyZWFrcG9p
bnRBZGRlZCwgYnJlYWtwb2ludFJlbW92ZWQsIGRlYnVnZ2VyTW9kZWwpOworICAgICAgICByZXR1
cm4gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlcihicmVha3BvaW50U3RvcmFnZSwg
YnJlYWtwb2ludEFkZGVkLCBicmVha3BvaW50UmVtb3ZlZCwgZGVidWdnZXJNb2RlbCwgc2NyaXB0
TWFwcGluZyk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwogICAg
ICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZChuZXh0KQogICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihzZXJp
YWxpemVkQnJlYWtwb2ludHMpOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0g
Y3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9pbnRzLCBzY3JpcHRNYXBw
aW5nKTsKIAogICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQo
dWlTb3VyY2VDb2RlQSk7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrUmVzdWx0cywgMCk7
CkBAIC0xMDEsNyArOTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiBz
ZXRBbmRSZW1vdmVCcmVha3BvaW50cyhuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
YnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihzZXJpYWxpemVkQnJl
YWtwb2ludHMpOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJl
YWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9pbnRzLCBzY3JpcHRNYXBwaW5nKTsKIAog
ICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VD
b2RlQSk7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KHNldEFuZFJlbW92ZSwgMCk7CkBAIC0xMjcs
NyArMTIzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gc2V0QnJlYWtw
b2ludE9uQ29tbWVudChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2lu
dE1hbmFnZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihbXSk7CisgICAgICAgICAgICB2YXIg
YnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihbXSwgc2NyaXB0TWFw
cGluZyk7CiAKICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVk
KHVpU291cmNlQ29kZUEpOwogCkBAIC0xNDMsNyArMTM5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAK
ICAgICAgICAgZnVuY3Rpb24gc2V0QnJlYWtwb2ludE91dHNpZGVPZlNjcmlwdChuZXh0KQogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVha3Bv
aW50TWFuYWdlcihbXSk7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBjcmVh
dGVCcmVha3BvaW50TWFuYWdlcihbXSwgc2NyaXB0TWFwcGluZyk7CiAKICAgICAgICAgICAgIGJy
ZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUEpOwogCkBAIC0x
NTksNyArMTU1LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdE5h
dmlnYXRpb24obmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5h
Z2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9pbnRzKTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2Vy
KHNlcmlhbGl6ZWRCcmVha3BvaW50cywgc2NyaXB0TWFwcGluZyk7CiAKICAgICAgICAgICAgIGJy
ZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUEpOwogICAgICAg
ICAgICAgc2V0VGltZW91dChuYXZpZ2F0ZVRvQiwgMCk7CkBAIC0yMDIsMTUgKzE5OCwxNiBAQCBm
dW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9ybWF0dGluZyhuZXh0KQog
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBjcmVhdGVCcmVh
a3BvaW50TWFuYWdlcihbY3JlYXRlQnJlYWtwb2ludCgiYy5qcyIsIDQsICIiLCB0cnVlKV0pOwot
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUMgPSBjcmVhdGVVSVNvdXJjZUNvZGUoImMuanMi
LCAiYy5qcyIsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHJhd0xvY2F0aW9uKSB7IHJl
dHVybiByYXdMb2NhdGlvbjsgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24odWlTb3Vy
Y2VDb2RlLCBsaW5lTnVtYmVyKSB7IHJldHVybiB7IHNjcmlwdElkOiAiYy5qcyIsIGxpbmVOdW1i
ZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogMCB9OyB9KTsKLSAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGVDRm9ybWF0dGVkID0gY3JlYXRlVUlTb3VyY2VDb2RlKCJkZW9iZnVzY2F0ZWQ6
Yy5qcyIsICJjLmpzIiwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmF3TG9jYXRpb24p
IHsgcmV0dXJuIHsgbGluZU51bWJlcjogcmF3TG9jYXRpb24ubGluZU51bWJlciAqIDIsIGNvbHVt
bk51bWJlcjogcmF3TG9jYXRpb24uY29sdW1uTnVtYmVyICogMiB9OyB9LAotICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpIHsgcmV0dXJuIHsgc2Ny
aXB0SWQ6ICJjLmpzIiwgbGluZU51bWJlcjogTWF0aC5mbG9vcihsaW5lTnVtYmVyIC8gMiksIGNv
bHVtbk51bWJlcjogMCB9OyB9KTsKLQotICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIudWlT
b3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlQyk7CisgICAgICAgICAgICB2YXIgc2NyaXB0TWFw
cGluZyA9IHt9OworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJl
YWtwb2ludE1hbmFnZXIoW2NyZWF0ZUJyZWFrcG9pbnQoImMuanMiLCA0LCAiIiwgdHJ1ZSldLCBz
Y3JpcHRNYXBwaW5nKTsKKworICAgICAgICAgICAgdmFyIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0g
Y3JlYXRlVUlTb3VyY2VDb2RlKCJjLmpzIiwgImMuanMiKTsKKyAgICAgICAgICAgIHZhciBmb3Jt
YXR0ZWRVSVNvdXJjZUNvZGUgPSBjcmVhdGVVSVNvdXJjZUNvZGUoImRlb2JmdXNjYXRlZDpjLmpz
IiwgImMuanMiKTsKKworICAgICAgICAgICAgc2NyaXB0TWFwcGluZy5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbiA9IGZ1bmN0aW9uKHJhd0xvY2F0aW9uKSB7IHJldHVybiByYXdMb2NhdGlvbjsgfTsK
KyAgICAgICAgICAgIHNjcmlwdE1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24gPSBmdW5j
dGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpIHsgcmV0dXJuIHsgc2NyaXB0SWQ6ICJjLmpz
IiwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiAwIH07IH07CisKKyAgICAg
ICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKG9yaWdpbmFsVUlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZm9ybWF0LCAwKTsKIAogICAgICAgICAg
ICAgZnVuY3Rpb24gZm9ybWF0KCkKQEAgLTIyMSw5ICsyMTgsMTIgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuRm9ybWF0IHNvdXJj
ZS4iKTsKICAgICAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdlci5yZXNldCgpOwogCi0gICAg
ICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VD
b2RlQ0Zvcm1hdHRlZCk7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJl
YWtwb2ludCh1aVNvdXJjZUNvZGVDRm9ybWF0dGVkLCA0LCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludCh1aVNvdXJjZUNvZGVDRm9ybWF0
dGVkLCA4LCAiIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIHNjcmlwdE1hcHBpbmcucmF3TG9j
YXRpb25Ub1VJTG9jYXRpb24gPSBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyByZXR1cm4geyBsaW5l
TnVtYmVyOiByYXdMb2NhdGlvbi5saW5lTnVtYmVyICogMiwgY29sdW1uTnVtYmVyOiByYXdMb2Nh
dGlvbi5jb2x1bW5OdW1iZXIgKiAyIH07IH07CisgICAgICAgICAgICAgICAgc2NyaXB0TWFwcGlu
Zy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbiA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51
bWJlcikgeyByZXR1cm4geyBzY3JpcHRJZDogImMuanMiLCBsaW5lTnVtYmVyOiBNYXRoLmZsb29y
KGxpbmVOdW1iZXIgLyAyKSwgY29sdW1uTnVtYmVyOiAwIH07IH07CisKKyAgICAgICAgICAgICAg
ICBicmVha3BvaW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZChmb3JtYXR0ZWRVSVNvdXJjZUNv
ZGUpOworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQoZm9y
bWF0dGVkVUlTb3VyY2VDb2RlLCA0LCAiIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWtw
b2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChmb3JtYXR0ZWRVSVNvdXJjZUNvZGUsIDgsICIiLCBm
YWxzZSk7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGFuZ2VCcmVha3BvaW50cywgMCk7
CiAgICAgICAgICAgICB9CiAKQEAgLTIzMiw4ICsyMzIsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoeyJjLmpzOjI6MCI6IiJ9LCBkZWJ1Z2dlckJyZWFr
cG9pbnRzKTsKIAogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkNo
YW5nZSBicmVha3BvaW50cy4iKTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdlci5y
ZW1vdmVCcmVha3BvaW50KHVpU291cmNlQ29kZUNGb3JtYXR0ZWQsIDgpOwotICAgICAgICAgICAg
ICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQ0Zvcm1hdHRl
ZCwgMTIsICIiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdlci5yZW1v
dmVCcmVha3BvaW50KGZvcm1hdHRlZFVJU291cmNlQ29kZSwgOCk7CisgICAgICAgICAgICAgICAg
YnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChmb3JtYXR0ZWRVSVNvdXJjZUNvZGUsIDEy
LCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChyZWxvYWQsIDApOwogICAg
ICAgICAgICAgfQogCkBAIC0yNDQsNyArMjQ0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuUmVsb2FkLiIpOwogICAgICAgICAg
ICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsKIAotICAgICAgICAgICAg
ICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZUNGb3Jt
YXR0ZWQpOworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFk
ZGVkKGZvcm1hdHRlZFVJU291cmNlQ29kZSk7CiAgICAgICAgICAgICAgICAgdmFyIGV2ZW50RGF0
YSA9IHsgYnJlYWtwb2ludElkOiAiYy5qczoyOjAiLCBsb2NhdGlvbjogeyBzY3JpcHRJZDogImMu
anMiLCBsaW5lTnVtYmVyOiAzLCBjb2x1bW5OdW1iZXI6IDAgfX07CiAgICAgICAgICAgICAgICAg
ZGVidWdnZXJNb2RlbC5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZXNvbHZlZCwgZXZlbnREYXRhKTsKICAgICAgICAg
ICAgICAgICBldmVudERhdGEgPSB7IGJyZWFrcG9pbnRJZDogImMuanM6NjowIiwgbG9jYXRpb246
IHsgc2NyaXB0SWQ6ICJjLmpzIiwgbGluZU51bWJlcjogNiwgY29sdW1uTnVtYmVyOiAwIH19Owo=
</data>
<flag name="review"
          id="133071"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>