<?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>68528</bug_id>
          
          <creation_ts>2011-09-21 06:41:40 -0700</creation_ts>
          <short_desc>Web Inspector: [Extensions API] allow resources to hook on click on resource links</short_desc>
          <delta_ts>2011-11-30 09:38:17 -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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</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>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>470754</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-21 06:41:40 -0700</bug_when>
    <thetext>This adds webInspector.panels.onResourceLinkClicked which allows extensions to intercept request to display resources. In case an extension adds a listener to this event, the default handling in front-end is disabled (i.e. resources are not opened in the resource panel).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470756</commentid>
    <comment_count>1</comment_count>
      <attachid>108146</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-21 06:43:25 -0700</bug_when>
    <thetext>Created attachment 108146
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470783</commentid>
    <comment_count>2</comment_count>
      <attachid>108146</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-21 07:21:44 -0700</bug_when>
    <thetext>Comment on attachment 108146
patch

As discussed offline, there should be one handler for the event and there should be a way to explicitly specify which extension handles the event(in case there are many): either a setting or a popup dialog with a list of potential handlers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473010</commentid>
    <comment_count>3</comment_count>
      <attachid>108638</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-26 00:49:00 -0700</bug_when>
    <thetext>Created attachment 108638
patch

- only allow one handler to receive an event;
- added handler selection to the Settings screen;
- changed API interface from Event to a method that sets handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473018</commentid>
    <comment_count>4</comment_count>
      <attachid>108638</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-26 01:04:24 -0700</bug_when>
    <thetext>Comment on attachment 108638
patch

HandlerRegistry.js is missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473021</commentid>
    <comment_count>5</comment_count>
      <attachid>108643</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-26 01:13:53 -0700</bug_when>
    <thetext>Created attachment 108643
patch

- added missing file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473026</commentid>
    <comment_count>6</comment_count>
      <attachid>108643</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-26 01:37:55 -0700</bug_when>
    <thetext>Comment on attachment 108643
patch

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

&gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:247
&gt; +        // Only send command if we either removed and existing handler or added handler and had none before.

typo: removed and existing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473027</commentid>
    <comment_count>7</comment_count>
      <attachid>108646</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-26 01:48:15 -0700</bug_when>
    <thetext>Created attachment 108646
screenshot (enabled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473028</commentid>
    <comment_count>8</comment_count>
      <attachid>108647</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-26 01:48:50 -0700</bug_when>
    <thetext>Created attachment 108647
screenshot (disabled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511818</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-30 09:38:17 -0800</bug_when>
    <thetext>Manually committed r95942: http://trac.webkit.org/changeset/95942</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108146</attachid>
            <date>2011-09-21 06:43:25 -0700</date>
            <delta_ts>2011-09-26 00:49:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-resorucelinkclicked.diff</filename>
            <type>text/plain</type>
            <size>6513</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNmI1NzI3Li41NzYwZGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDkt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IHJlc291cmNlcyB0byBob29rIG9uIGNs
aWNrIG9uIHJlc291cmNlIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02ODUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWV2ZW50cy5odG1sOgorCiAyMDExLTA5LTIxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgcmViYXNlbGluZSBhbmQgc2tp
cCBhbmQgYTExeSBmYWlsaW5nIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKaW5kZXggNzFi
MjEwMC4uYzhiNWY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMzYsNiArMzYsMTAg
QEAgUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQogICAgICAgICAgICAgICAgIHJlbW92
ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAg
IG9uUmVzb3VyY2VMaW5rQ2xpY2tlZCA6IHsKKyAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1
bmN0aW9uPgorICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CisgICAgICAg
IH0KICAgICAgICAgY3JlYXRlIDogPGZ1bmN0aW9uPgogICAgIH0KICAgICBuZXR3b3JrIDogewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1l
dmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IGU1Y2Q0MzguLjkzZjFjMjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTksNiArOSwxMiBAQCBOYXZpZ2F0ZWQgdG86
IGV4dGVuc2lvbnMtZXZlbnRzLmh0bWw/bmF2aWdhdGVkCiBOYXZpZ2F0ZWQgdG86IGV4dGVuc2lv
bnMtZXZlbnRzLmh0bWwKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPblJlcXVlc3RGaW5p
c2hlZAogb25SZXF1ZXN0RmluaXNoZWQgZmlyZWQKK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RPblJlc291cmNlQ2xpY2tlZAorb25SZXNvdXJjZUxpbmtDbGlja2VkIGZpcmVkCit7CisgICAg
dXJsIDogLi4uL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWwKKyAgICB0eXBlIDogImRvY3VtZW50Igor
fQogUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hhbmdlZAogb25TZWxl
Y3Rpb25DaGFuZ2VkIGZpcmVkCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0UGFuZWxTaG93
SGlkZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtZXZlbnRzLmh0bWwKaW5kZXggMmRjMWYxMy4uNmIzYjk4ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2ZW50cy5odG1s
CkBAIC0xNiw2ICsxNiwyMSBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hh
bmdlZChuZXh0VGVzdCkKICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImlu
c3BlY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlblswXSkiKTsKIH0KIAorZnVuY3Rpb24gZXh0ZW5z
aW9uX3Rlc3RPblJlc291cmNlQ2xpY2tlZChuZXh0VGVzdCkKK3sKKyAgICBmdW5jdGlvbiBvblJl
c291cmNlTGlua0NsaWNrZWQocmVzb3VyY2UpCisgICAgeworICAgICAgICB3ZWJJbnNwZWN0b3Iu
cGFuZWxzLm9uUmVzb3VyY2VMaW5rQ2xpY2tlZC5yZW1vdmVMaXN0ZW5lcihvblJlc291cmNlTGlu
a0NsaWNrZWQpOworICAgICAgICBvdXRwdXQoIm9uUmVzb3VyY2VMaW5rQ2xpY2tlZCBmaXJlZCIp
OworICAgICAgICBkdW1wT2JqZWN0KHJlc291cmNlLCB7IHVybDogInVybCIgfSk7CisgICAgICAg
IG5leHRUZXN0KCk7CisgICAgfQorICAgIHdlYkluc3BlY3Rvci5wYW5lbHMub25SZXNvdXJjZUxp
bmtDbGlja2VkLmFkZExpc3RlbmVyKG9uUmVzb3VyY2VMaW5rQ2xpY2tlZCk7CisgICAgd2ViSW5z
cGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2NhdGlvbi5ocmVmIiwgZnVuY3Rpb24odmFs
dWUpIHsKKyAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJXZWJJbnNwZWN0b3Iub3BlblJlc291
cmNlKCciICsgdmFsdWUgKyAiJywgdHJ1ZSk7Iik7CisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0T25SZXF1ZXN0RmluaXNoZWQobmV4dFRlc3QpCiB7CiAgICAgZnVuY3Rpb24g
b25SZXF1ZXN0RmluaXNoZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdiYWFkZWEuLjkyZGI1MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wOS0yMSAgQW5kcmV5IEtvc3lha292ICA8Y2Fz
ZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25zIEFQ
SV0gYWxsb3cgcmVzb3VyY2VzIHRvIGhvb2sgb24gY2xpY2sgb24gcmVzb3VyY2UgbGlua3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVjdGVkRXh0ZW5zaW9uQVBJ
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLm5vdGlmeVJlc291
cmNlTGlua0NsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5w
cm90b3R5cGUuX2hhc1N1YnNjcmliZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UpOgorCiAy
MDExLTA5LTIxICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgogCiAgICAg
ICAgIFtRdF0gUmVtb3ZlIFF0IHNwZWNpZmljIGNvZGUgZnJvbSBjc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25BUEkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
bkFQSS5qcwppbmRleCA3Y2MzMTkxLi45MmY5ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAtMjE1LDYgKzIxNSw3IEBA
IGZ1bmN0aW9uIFBhbmVscygpCiAgICAgfQogICAgIGZvciAodmFyIHBhbmVsIGluIHBhbmVscykK
ICAgICAgICAgdGhpcy5fX2RlZmluZUdldHRlcl9fKHBhbmVsLCBiaW5kKHBhbmVsR2V0dGVyLCBu
dWxsLCBwYW5lbCkpOworICAgIHRoaXMub25SZXNvdXJjZUxpbmtDbGlja2VkID0gbmV3IEV2ZW50
U2luaygicmVzb3VyY2UtbGluay1jbGlja2VkIik7CiB9CiAKIFBhbmVscy5wcm90b3R5cGUgPSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
U2VydmVyLmpzCmluZGV4IDgxZTc3MDEuLmNhYWQ0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC04Nyw2ICs4
NywxNCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicGFuZWwtaGlkZGVuLSIgKyBwYW5lbElkKTsKICAg
ICB9LAogCisgICAgbm90aWZ5UmVzb3VyY2VMaW5rQ2xpY2tlZDogZnVuY3Rpb24ocmVzb3VyY2Up
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2hhc1N1YnNjcmliZXJzKCJyZXNvdXJjZS1saW5r
LWNsaWNrZWQiKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhpcy5fcG9z
dE5vdGlmaWNhdGlvbigicmVzb3VyY2UtbGluay1jbGlja2VkIiwgdGhpcy5fbWFrZVJlc291cmNl
KHJlc291cmNlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKwogICAgIF9pbnNwZWN0
ZWRVUkxDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3JlcXVl
c3RzID0ge307CkBAIC0xMjAsNiArMTI4LDExIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wb3N0Tm90aWZpY2F0aW9uKCJyZXNvdXJj
ZS1jb250ZW50LWNvbW1pdHRlZCIsIHRoaXMuX21ha2VSZXNvdXJjZShyZXNvdXJjZSksIGNvbnRl
bnQpOwogICAgIH0sCiAKKyAgICBfaGFzU3Vic2NyaWJlcnM6IGZ1bmN0aW9uKHR5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gISF0aGlzLl9zdWJzY3JpYmVyc1t0eXBlXTsKKyAgICB9LAorCiAg
ICAgX3Bvc3ROb3RpZmljYXRpb246IGZ1bmN0aW9uKHR5cGUsIGRldGFpbHMpCiAgICAgewogICAg
ICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpYmVyc1t0eXBlXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNWNkNzIz
NS4uZDIyNTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKQEAgLTcyNSw4ICs3MjUsMTAgQEAgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJj
ZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBpblJlc291cmNlc1BhbmVsKQogewogICAgIHZhciBy
ZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCk7CiAgICAg
aWYgKGluUmVzb3VyY2VzUGFuZWwgJiYgcmVzb3VyY2UpIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5yZXNvdXJjZXMuc2hvd1Jlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9y
LmV4dGVuc2lvblNlcnZlci5ub3RpZnlSZXNvdXJjZUxpbmtDbGlja2VkKHJlc291cmNlKSkgewor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuc2hvd1Jlc291cmNlKHJl
c291cmNlKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInJlc291cmNlcyIp
OworICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIFBhZ2VBZ2VudC5vcGVuKHJlc291cmNl
VVJMLCB0cnVlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108638</attachid>
            <date>2011-09-26 00:49:00 -0700</date>
            <delta_ts>2011-09-26 01:13:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-resourcelinkclicked.diff</filename>
            <type>text/plain</type>
            <size>18881</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMzg4MDBmLi44NGQ1MTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDkt
MjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IHJlc291cmNlcyB0byBob29rIG9uIGNs
aWNrIG9uIHJlc291cmNlIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02ODUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkV4dGVu
c2lvblRlc3RzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc1Rlc3QpOgorICAgICAg
ICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJj
ZXMuaHRtbDoKKwogMjAxMS0wOS0yMyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNwZWN0b3JTdHlsZVNoZWV0IHNob3Vs
ZCB1c2Ugc3R5bGVzaGVldCdzIG9yaWdpbmFsIHVybCwgbm90IGZpbmFsIG9uZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcwppbmRl
eCA0OGM2OTg1Li44MjFkMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCkBAIC01MCw3ICs1MCw3IEBAIEluc3BlY3RvclRl
c3QucnVuRXh0ZW5zaW9uVGVzdHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBwYWdlVVJMLnJl
cGxhY2UoL14oaHR0cHM/OlwvXC9bXi9dKlwvKS4qJC8sIiQxIikgOgogICAgICAgICAgICAgcGFn
ZVVSTC5yZXBsYWNlKC9cL2luc3BlY3RvclwvZXh0ZW5zaW9uc1wvW14vXSokLywgIi9odHRwL3Rl
c3RzIikpICsKICAgICAgICAgICAgICIvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFp
bi5odG1sIjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmFkZEV4dGVuc2lvbnMoW3sgc3RhcnRQYWdl
OiBleHRlbnNpb25VUkwgfV0pOworICAgICAgICBXZWJJbnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyhb
eyBzdGFydFBhZ2U6IGV4dGVuc2lvblVSTCwgbmFtZTogInRlc3QgZXh0ZW5zaW9uIiB9XSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA3MWIyMTAwLi5kZTQyMTVl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CkBAIC0zNyw2ICszNyw3IEBAIFJVTk5JTkcgVEVT
VDogZXh0ZW5zaW9uX3Rlc3RBUEkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBj
cmVhdGUgOiA8ZnVuY3Rpb24+CisgICAgICAgIHNldE9wZW5SZXNvdXJjZUhhbmRsZXIgOiA8ZnVu
Y3Rpb24+CiAgICAgfQogICAgIG5ldHdvcmsgOiB7CiAgICAgICAgIG9uUmVxdWVzdEZpbmlzaGVk
IDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDg3NmJlMzAuLjFk
MDlmZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBkb24ndCBwYW5pYyEKIFRlc3RzIHJlc291
cmNlLXJlbGF0ZWQgbWV0aG9kcyBvZiBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQogCiAKQEAg
LTY3LDYgKzY4LDEyIEBAIHJlc291cmNlIGFkZGVkOgogICAgICAgICBzZXRDb250ZW50IDogPGZ1
bmN0aW9uPgogICAgIH0KIH0KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPcGVuUmVzb3Vy
Y2VIYW5kbGVyCitoYW5kbGVPcGVuUmVzb3VyY2UoKSBpbnZva2VkIFt0aGlzIHNob3VsZCBvbmx5
IGFwcGVhciBvbmNlIV06IAoreworICAgIHVybCA6IC4uLi9leHRlbnNpb25zLXJlc291cmNlcy5o
dG1sCisgICAgdHlwZSA6ICJkb2N1bWVudCIKK30KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RTZXRSZXNvdXJjZUNvbnRlbnQKIGRpdi50ZXN0IHdpZHRoIGFmdGVyIHN0eWxlc2hlZXQgZWRp
dGVkIChzaG91bGQgYmUgMTI2KTogMTI2CiBBbGwgdGVzdHMgZG9uZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy5o
dG1sCmluZGV4IGJiMTUyMTQuLjAxMTVlZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbApAQCAtNyw2
ICs3LDIxIEBACiAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAorZnVuY3Rpb24g
aW5pdGlhbGl6ZV9FeHRlbnNpb25SZXNvdXJjZVRlc3RzKCkKK3sKKworSW5zcGVjdG9yVGVzdC5j
bGlja09uVVJMID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImNv
bnNvbGUiKTsKKyAgICB2YXIgeHBhdGhSZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0ZSgiLy9hW3N0
YXJ0cy13aXRoKC4sICdleHRlbnNpb25zLXJlc291cmNlcy5odG1sJyldIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmNvbnNvbGUu
ZWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUsIG51bGwp
OworICAgIHZhciBjbGljayA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7Cisg
ICAgY2xpY2suaW5pdE1vdXNlRXZlbnQoImNsaWNrIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgeHBhdGhS
ZXN1bHQuc2luZ2xlTm9kZVZhbHVlLmRpc3BhdGNoRXZlbnQoY2xpY2spOworfQorCit9CisKIGZ1
bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0QWxsUmVzb3VyY2VzKG5leHRUZXN0KQogewogICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKHJlc291cmNlcykKQEAgLTEwMyw2ICsxMTgsMjIgQEAgZnVuY3Rpb24g
ZXh0ZW5zaW9uX3Rlc3RPblJlc291cmNlQWRkZWQobmV4dFRlc3QpCiAgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5ldmFsKCJhZGRSZXNvdXJjZSgpIik7CiB9CiAKK2Z1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0T3BlblJlc291cmNlSGFuZGxlcihuZXh0VGVzdCkKK3sKKyAgICBmdW5jdGlv
biBoYW5kbGVPcGVuUmVzb3VyY2UocmVzb3VyY2UpCisgICAgeworICAgICAgICBvdXRwdXQoImhh
bmRsZU9wZW5SZXNvdXJjZSgpIGludm9rZWQgW3RoaXMgc2hvdWxkIG9ubHkgYXBwZWFyIG9uY2Uh
XTogIik7CisgICAgICAgIGR1bXBPYmplY3QocmVzb3VyY2UsIHsgdXJsOiAidXJsIiB9KTsKKyAg
ICAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKG51bGwpOwor
ICAgICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyBy
ZXBseSgpIiwgbmV4dFRlc3QpOworICAgIH0KKyAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLnNldE9w
ZW5SZXNvdXJjZUhhbmRsZXIoaGFuZGxlT3BlblJlc291cmNlKTsKKyAgICB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LmV2YWwoImxvZ01lc3NhZ2UoKSIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyIpOworICAg
ICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIldlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRpb25S
ZWdpc3RyeS5hY3RpdmVIYW5kbGVyID0gJ3Rlc3QgZXh0ZW5zaW9uJzsgSW5zcGVjdG9yVGVzdC5j
bGlja09uVVJMKCk7Iik7CisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGFkZFJlc291cmNlKCkKIHsK
ICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CkBAIC0x
MTAsNiArMTQxLDExIEBAIGZ1bmN0aW9uIGFkZFJlc291cmNlKCkKICAgICBkb2N1bWVudC5oZWFk
LmFwcGVuZENoaWxkKHNjcmlwdCk7CiB9CiAKK2Z1bmN0aW9uIGxvZ01lc3NhZ2UoKQoreworICAg
IGNvbnNvbGUubG9nKCJkb24ndCBwYW5pYyEiKTsKK30KKwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU2MTE1NS4uYmM3ODE5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTA5LTI2ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lv
bnMgQVBJXSBhbGxvdyByZXNvdXJjZXMgdG8gaG9vayBvbiBjbGljayBvbiByZXNvdXJjZSBsaW5r
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVj
dGVkRXh0ZW5zaW9uQVBJLkNvbnNvbGUucHJvdG90eXBlLmdldCBTZXZlcml0eSk6CisgICAgICAg
IChpbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbHMucHJvdG90eXBlLmNyZWF0ZSk6CisgICAgICAg
IChpbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbHMucHJvdG90eXBlLnNldE9wZW5SZXNvdXJjZUhh
bmRsZXIuZWxzZS5jYWxsYmFja1dyYXBwZXIpOgorICAgICAgICAoaW5qZWN0ZWRFeHRlbnNpb25B
UEkuUGFuZWxzLnByb3RvdHlwZS5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKToKKyAgICAgICAgKGlu
amVjdGVkRXh0ZW5zaW9uQVBJLkV4dGVuc2lvblNlcnZlckNsaWVudC5wcm90b3R5cGUuaGFzSGFu
ZGxlcik6CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5FeHRlbnNpb25TZXJ2ZXJDbGll
bnQucHJvdG90eXBlLmRlcmVnaXN0ZXJIYW5kbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNp
b25TZXJ2ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5
cGUuX29uU2V0T3BlblJlc291cmNlSGFuZGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5faGFuZGxlQW5jaG9yQ2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9ucyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5z
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9y
ZWdpc3RlckV4dGVuc2lvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9jcmVhdGVDdXN0b21T
ZXR0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAgKC5oZWxw
LWNvbnRlbnQgc2VsZWN0KToKKyAgICAgICAgKC5oZWxwLWNvbnRlbnQgc2VsZWN0OmRpc2FibGVk
KToKKyAgICAgICAgKC5oZWxwLWNvbnRlbnQgb3B0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNldCBhdHRhY2hlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbik6CisKIDIwMTEtMDktMjMgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW5zcGVjdG9yU3R5bGVTaGVldCBzaG91bGQgdXNlIHN0eWxlc2hlZXQncyBvcmlnaW5h
bCB1cmwsIG5vdCBmaW5hbCBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTIyOGQwNS4uZDgzM2Zh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjM1NSw2ICs2MzU1LDcgQEAKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0dvVG9MaW5lRGlhbG9nLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0hBUkVudHJ5LmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0hh
bmRsZXJSZWdpc3RyeS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFw
U25hcHNob3QuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90UHJveHkuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90V29ya2VyLmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMzRjYzVlYy4uNTgxNTE4YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY4OTg5LDYgKzY4OTg5LDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXEhhbmRsZXJSZWdpc3RyeS5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSEFSRW50cnku
anMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCmluZGV4IDdjYzMxOTEuLjRjYTcwNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
CkBAIC0xNTAsNyArMTUwLDcgQEAgQ29uc29sZS5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IFNldmVy
aXR5KCkKICAgICB7CiAgICAgICAgIHJldHVybiBhcGlQcml2YXRlLmNvbnNvbGUuU2V2ZXJpdHk7
Ci0gICAgfSwKKyAgICB9CiB9OwogCiBmdW5jdGlvbiBOZXR3b3JrKCkKQEAgLTIyOSw2ICsyMjks
MjQgQEAgUGFuZWxzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHBhZ2U6IHBhZ2UKICAgICAg
ICAgfTsKICAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNhbGxi
YWNrICYmIGJpbmQoY2FsbGJhY2ssIHRoaXMsIG5ldyBFeHRlbnNpb25QYW5lbChpZCkpKTsKKyAg
ICB9LAorCisgICAgc2V0T3BlblJlc291cmNlSGFuZGxlcjogZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeworICAgICAgICB2YXIgaGFkSGFuZGxlciA9IGV4dGVuc2lvblNlcnZlci5oYXNIYW5kbGVy
KCJvcGVuLXJlc291cmNlIik7CisKKyAgICAgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAgICAg
IGV4dGVuc2lvblNlcnZlci5kZXJlZ2lzdGVySGFuZGxlcigib3Blbi1yZXNvdXJjZSIpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihtZXNzYWdl
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgbWVz
c2FnZS5yZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHRlbnNpb25TZXJ2
ZXIucmVnaXN0ZXJIYW5kbGVyKCJvcGVuLXJlc291cmNlIiwgY2FsbGJhY2tXcmFwcGVyKTsKKyAg
ICAgICAgfQorICAgICAgICAvLyBPbmx5IHNlbmQgY29tbWFuZCBpZiB3ZSBlaXRoZXIgcmVtb3Zl
ZCBhbmQgZXhpc3RpbmcgaGFuZGxlciBvciBhZGRlZCBoYW5kbGVyIGFuZCBoYWQgbm9uZSBiZWZv
cmUuCisgICAgICAgIGlmIChoYWRIYW5kbGVyID09PSAhY2FsbGJhY2spCisgICAgICAgICAgICBl
eHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAic2V0T3BlblJlc291cmNlSGFu
ZGxlciIsICJoYW5kbGVyUHJlc2VudCI6ICEhY2FsbGJhY2sgfSk7CiAgICAgfQogfQogCkBAIC01
MTMsMTEgKzUzMSwyMSBAQCBFeHRlbnNpb25TZXJ2ZXJDbGllbnQucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gdGhpcy5fcG9ydC5wb3N0TWVzc2FnZShtZXNzYWdlKTsKICAgICB9LAogCisg
ICAgaGFzSGFuZGxlcjogZnVuY3Rpb24oY29tbWFuZCkKKyAgICB7CisgICAgICAgIHJldHVybiAh
IXRoaXMuX2hhbmRsZXJzW2NvbW1hbmRdOworICAgIH0sCisKICAgICByZWdpc3RlckhhbmRsZXI6
IGZ1bmN0aW9uKGNvbW1hbmQsIGhhbmRsZXIpCiAgICAgewogICAgICAgICB0aGlzLl9oYW5kbGVy
c1tjb21tYW5kXSA9IGhhbmRsZXI7CiAgICAgfSwKIAorICAgIGRlcmVnaXN0ZXJIYW5kbGVyOiBm
dW5jdGlvbihjb21tYW5kKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2hhbmRsZXJzW2Nv
bW1hbmRdOworICAgIH0sCisKICAgICBuZXh0T2JqZWN0SWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBpbmplY3RlZFNjcmlwdElkICsgIl8iICsgKyt0aGlzLl9sYXN0T2JqZWN0
SWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uU2VydmVyLmpzCmluZGV4IGU2MjdhMjQuLmZkMmQ4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0zOCw3
ICszOCw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5fZXh0cmFIZWFkZXJzID0ge307CiAgICAgdGhpcy5fcmVxdWVzdHMgPSB7fTsKICAgICB0
aGlzLl9sYXN0UmVxdWVzdElkID0gMDsKLSAgICB0aGlzLl9hbGxvd2VkT3JpZ2lucyA9IHt9Owor
ICAgIHRoaXMuX3JlZ2lzdGVyZWRFeHRlbnNpb25zID0ge307CiAgICAgdGhpcy5fc3RhdHVzID0g
bmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TdGF0dXMoKTsKIAogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcigiYWRkQXVkaXRDYXRlZ29yeSIsIHRoaXMuX29uQWRkQXVkaXRDYXRlZ29yeS5iaW5k
KHRoaXMpKTsKQEAgLTU1LDYgKzU1LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlciA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldFJlc291cmNlQ29udGVu
dCIsIHRoaXMuX29uR2V0UmVzb3VyY2VDb250ZW50LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3Jl
Z2lzdGVySGFuZGxlcigibG9nIiwgdGhpcy5fb25Mb2cuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKCJyZWxvYWQiLCB0aGlzLl9vblJlbG9hZC5iaW5kKHRoaXMpKTsKKyAg
ICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInNldE9wZW5SZXNvdXJjZUhhbmRsZXIiLCB0aGlzLl9v
blNldE9wZW5SZXNvdXJjZUhhbmRsZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJI
YW5kbGVyKCJzZXRSZXNvdXJjZUNvbnRlbnQiLCB0aGlzLl9vblNldFJlc291cmNlQ29udGVudC5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInNldFNpZGViYXJIZWlnaHQi
LCB0aGlzLl9vblNldFNpZGViYXJIZWlnaHQuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0
ZXJIYW5kbGVyKCJzZXRTaWRlYmFyQ29udGVudCIsIHRoaXMuX29uU2V0U2lkZWJhckNvbnRlbnQu
YmluZCh0aGlzKSk7CkBAIC0yNTEsNiArMjUyLDI3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBzaWRlYmFyLnNldFBhZ2UodGhpcy5fZXhwYW5k
UmVzb3VyY2VQYXRoKHBvcnQuX2V4dGVuc2lvbk9yaWdpbiwgbWVzc2FnZS5wYWdlKSk7CiAgICAg
fSwKIAorICAgIF9vblNldE9wZW5SZXNvdXJjZUhhbmRsZXI6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBv
cnQpCisgICAgeworICAgICAgICB2YXIgbmFtZSA9IHRoaXMuX3JlZ2lzdGVyZWRFeHRlbnNpb25z
W3BvcnQuX2V4dGVuc2lvbk9yaWdpbl0ubmFtZSB8fCAoIkV4dGVuc2lvbiAiICsgcG9ydC5fZXh0
ZW5zaW9uT3JpZ2luKTsKKyAgICAgICAgaWYgKG1lc3NhZ2UuaGFuZGxlclByZXNlbnQpCisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkucmVnaXN0ZXJI
YW5kbGVyKG5hbWUsIHRoaXMuX2hhbmRsZUFuY2hvckNsaWNrZWQuYmluZCh0aGlzLCBwb3J0KSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRp
b25SZWdpc3RyeS5kZXJlZ2lzdGVySGFuZGxlcihuYW1lKTsKKyAgICB9LAorCisgICAgX2hhbmRs
ZUFuY2hvckNsaWNrZWQ6IGZ1bmN0aW9uKHBvcnQsIGFuY2hvcikKKyAgICB7CisgICAgICAgIHZh
ciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChhbmNob3IuaHJlZik7Cisg
ICAgICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHBvcnQucG9zdE1lc3NhZ2UoeworICAgICAgICAgICAgY29tbWFuZDogIm9wZW4tcmVzb3VyY2Ui
LAorICAgICAgICAgICAgcmVzb3VyY2U6IHRoaXMuX21ha2VSZXNvdXJjZShyZXNvdXJjZSkKKyAg
ICAgICAgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKICAgICBfb25Mb2c6IGZ1
bmN0aW9uKG1lc3NhZ2UpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IubG9nKG1lc3NhZ2Uu
bWVzc2FnZSk7CkBAIC01MjgsMTAgKzU1MCwxMCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2Vy
dmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gU2VlIEV4dGVuc2lvbkFQSS5qcyBhbmQgRXh0
ZW5zaW9uQ29tbW9uLmpzIGZvciBkZXRhaWxzLgogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhv
c3Quc2V0RXh0ZW5zaW9uQVBJKHRoaXMuX2J1aWxkRXh0ZW5zaW9uQVBJU2NyaXB0KCkpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dGVuc2lvbnMubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICB0aGlzLl9hZGRFeHRlbnNpb24oZXh0ZW5zaW9uc1tpXS5zdGFydFBhZ2UpOworICAgICAg
ICAgICAgdGhpcy5fYWRkRXh0ZW5zaW9uKGV4dGVuc2lvbnNbaV0uc3RhcnRQYWdlLCBleHRlbnNp
b25zW2ldLm5hbWUpOwogICAgIH0sCiAKLSAgICBfYWRkRXh0ZW5zaW9uOiBmdW5jdGlvbihzdGFy
dFBhZ2UpCisgICAgX2FkZEV4dGVuc2lvbjogZnVuY3Rpb24oc3RhcnRQYWdlLCBuYW1lKQogICAg
IHsKICAgICAgICAgY29uc3QgdXJsT3JpZ2luUmVnRXhwID0gbmV3IFJlZ0V4cCgiKFteOl0rOlwv
XC9bXi9dKilcLyIpOyAvLyBDYW4ndCB1c2UgcmVnZXhwIGxpdGVyYWwgaGVyZSwgTWluSlMgY2hv
a2VzIG9uIGl0LgogCkBAIC01NDEsNyArNTYzLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiU2tpcHBp
bmcgZXh0ZW5zaW9uIHdpdGggaW52YWxpZCBVUkw6ICIgKyBzdGFydFBhZ2UpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2Fs
bG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFdXSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9y
ZWdpc3RlcmVkRXh0ZW5zaW9uc1tvcmlnaW5NYXRjaFsxXV0gPSB7IG5hbWU6IG5hbWUgfTsKICAg
ICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
ICAgICAgICAgICAgIGlmcmFtZS5zcmMgPSBzdGFydFBhZ2U7CiAgICAgICAgICAgICBpZnJhbWUu
c3R5bGUuZGlzcGxheSA9ICJub25lIjsKQEAgLTU2Nyw3ICs1ODksNyBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZWdpc3RlckV4dGVuc2lvbjog
ZnVuY3Rpb24ob3JpZ2luLCBwb3J0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9hbGxvd2Vk
T3JpZ2lucy5oYXNPd25Qcm9wZXJ0eShvcmlnaW4pKSB7CisgICAgICAgIGlmICghdGhpcy5fcmVn
aXN0ZXJlZEV4dGVuc2lvbnMuaGFzT3duUHJvcGVydHkob3JpZ2luKSkgewogICAgICAgICAgICAg
aWYgKG9yaWdpbiAhPT0gbG9jYXRpb24ub3JpZ2luKSAvLyBKdXN0IGlnbm9yZSBpbnNwZWN0b3Ig
ZnJhbWVzLgogICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIklnbm9yaW5nIHVuYXV0aG9y
aXplZCBjbGllbnQgcmVxdWVzdCBmcm9tICIgKyBvcmlnaW4pOwogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NT
Y3JlZW4uanMKaW5kZXggZmJjNDg1YS4uOThkMGNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC01OCw2ICs1OCwx
MCBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJMb2cgWE1MSHR0cFJlcXVlc3RzIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5n
WEhSRW5hYmxlZCkpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0
aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJlc2VydmUgbG9nIHVwb24gbmF2aWdhdGlvbiIp
LCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nKSk7CiAKKyAgICB2YXIg
aGFuZGxlclNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5IYW5kbGVyU2VsZWN0b3IoV2ViSW5z
cGVjdG9yLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5KTsKKyAgICBwID0gdGhpcy5fYXBwZW5k
U2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdlbmVyYWwiKSwgdHJ1ZSk7CisgICAgcC5h
cHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDdXN0b21TZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiT3BlbiBsaW5rcyBpbi4uLiIpLCBoYW5kbGVyU2VsZWN0b3IuZWxlbWVudCkpOworCiAgICAg
dmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgICB0YWJsZS5j
bGFzc05hbWUgPSAiaGVscC10YWJsZSI7CiAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidHIiKTsKQEAgLTE0MCw2ICsxNDQsMTUgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBwcC5hcHBlbmRDaGlsZChmaWVsZHNldEVsZW1l
bnQpOwogICAgICAgICByZXR1cm4gcHA7CisgICAgfSwKKworICAgIF9jcmVhdGVDdXN0b21TZXR0
aW5nOiBmdW5jdGlvbihuYW1lLCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB2YXIgcCA9IGRpdi5jcmVhdGVD
aGlsZCgicCIpOworICAgICAgICBwLnRleHRDb250ZW50ID0gbmFtZTsKKyAgICAgICAgZGl2LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICByZXR1cm4gZGl2OwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCBkZTVj
YWQ0Li5kMjdhY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjCkBAIC01NCw2ICs1NCw3IEBACiAgICAgPGZpbGU+Rm9udFZpZXcuanM8L2ZpbGU+
CiAgICAgPGZpbGU+R29Ub0xpbmVEaWFsb2cuanM8L2ZpbGU+CiAgICAgPGZpbGU+SEFSRW50cnku
anM8L2ZpbGU+CisgICAgPGZpbGU+SGFuZGxlclJlZ2lzdHJ5LmpzPC9maWxlPgogICAgIDxmaWxl
PkhlYXBTbmFwc2hvdC5qczwvZmlsZT4KICAgICA8ZmlsZT5IZWFwU25hcHNob3RQcm94eS5qczwv
ZmlsZT4KICAgICA8ZmlsZT5IZWFwU25hcHNob3RXb3JrZXIuanM8L2ZpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwppbmRleCAzOGZl
ZTE4Li5mNjljZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2hlbHBTY3JlZW4uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaGVscFNjcmVlbi5jc3MKQEAgLTE4OCwzICsxODgsMjEgQEAgYm9keS5wbGF0Zm9ybS1tYWMg
LmhlbHAta2V5IHsKICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7
CiB9CisKKy5oZWxwLWNvbnRlbnQgc2VsZWN0IHsKKyAgICBtYXJnaW4tbGVmdDogMWVtOworICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYig2NCwgNjQsIDY0KTsKKyAgICBjb2xvcjogd2hpdGU7Cisg
ICAgYm9yZGVyLWNvbG9yOiBibGFjazsKKyAgICBwYWRkaW5nOiAwcHggNHB4OworfQorCisuaGVs
cC1jb250ZW50IHNlbGVjdDpkaXNhYmxlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMy
LCAzMiwgMzIpOworICAgIGNvbG9yOiBncmF5dGV4dDsKK30KKworLmhlbHAtY29udGVudCBvcHRp
b24geworICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAgIGNvbG9yOiB3aGl0ZTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1s
CmluZGV4IGJhMTJmNmMuLjQ4MGQ2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTc4LDYgKzE3OCw3IEBAIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iV29ya2VyTWFuYWdlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVXNl
ck1ldHJpY3MuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5LmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJkZXRhY2hlZCI+CiAgICAgPGRpdiBpZD0idG9vbGJh
ciI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CmluZGV4IGNkMWE4MDguLjk5NGVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0yOTgsNyArMjk4LDcgQEAgdmFyIFdlYkluc3Bl
Y3RvciA9IHsKICAgICAgICAgICAgIHRoaXMuX2RvY2tUb2dnbGVCdXR0b24udG9nZ2xlZCA9ICF4
OwogICAgICAgICB9CiAKLSAgICAgICAgLy8gVGhpcyBtYXkgYmUgY2FsbGVkIGJlZm9yZSBvbkxv
YWRlZERvbmUsIGhlbmNlIHRoZSBidWxrIG9mIGluc3BlY3RvciBvYmplY3RzIG1heQorICAgICAg
ICAvLyBUaGlzIG1heSBiZSBjYWxsZWQgYmVmb3JlIGRvTG9hZGVkRG9uZSwgaGVuY2UgdGhlIGJ1
bGsgb2YgaW5zcGVjdG9yIG9iamVjdHMgbWF5CiAgICAgICAgIC8vIG5vdCBiZSBjcmVhdGVkIHll
dC4KICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci50b29sYmFyKQogICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnRvb2xiYXIuYXR0YWNoZWQgPSB4OwpAQCAtNTQ5LDYgKzU0OSwxMSBAQCBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIGVycm9yV2FybmluZ0NvdW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5zaG93Q29uc29sZS5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAgICAgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzKCk7CiAKKyAgICB2YXIg
YXV0b3NlbGVjdFBhbmVsID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJhIHBhbmVsIGNob3NlbiBh
dXRvbWF0aWNhbGx5Iik7CisgICAgdmFyIG9wZW5BbmNob3JMb2NhdGlvblNldHRpbmcgPSBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygib3BlbkxpbmtIYW5kbGVyIiwgYXV0b3Nl
bGVjdFBhbmVsKTsKKyAgICB0aGlzLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5ID0gbmV3IFdl
Ykluc3BlY3Rvci5IYW5kbGVyUmVnaXN0cnkob3BlbkFuY2hvckxvY2F0aW9uU2V0dGluZyk7Cisg
ICAgdGhpcy5vcGVuQW5jaG9yTG9jYXRpb25SZWdpc3RyeS5yZWdpc3RlckhhbmRsZXIoYXV0b3Nl
bGVjdFBhbmVsLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9KTsKKwogICAgIHRoaXMuZXh0
ZW5zaW9uU2VydmVyLmluaXRFeHRlbnNpb25zKCk7CiAKICAgICB0aGlzLmNvbnNvbGUuZW5hYmxl
QWdlbnQoKTsKQEAgLTEyMjIsNiArMTIyNyw4IEBAIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZv
clVSTCA9IGZ1bmN0aW9uKHVybCkKIAogV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb24g
PSBmdW5jdGlvbihhbmNob3IpCiB7CisgICAgaWYgKFdlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9j
YXRpb25SZWdpc3RyeS5kaXNwYXRjaChhbmNob3IpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB2YXIgcHJlZmVyZWRQYW5lbCA9IHRoaXMucGFuZWxzW2FuY2hvci5nZXRBdHRyaWJ1dGUoInBy
ZWZlcnJlZF9wYW5lbCIpIHx8ICJyZXNvdXJjZXMiXTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLl9z
aG93QW5jaG9yTG9jYXRpb25JblBhbmVsKGFuY2hvciwgcHJlZmVyZWRQYW5lbCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108643</attachid>
            <date>2011-09-26 01:13:53 -0700</date>
            <delta_ts>2011-09-26 01:37:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-resourcelinkclicked.diff</filename>
            <type>text/plain</type>
            <size>23153</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMzg4MDBmLi44NGQ1MTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDkt
MjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IHJlc291cmNlcyB0byBob29rIG9uIGNs
aWNrIG9uIHJlc291cmNlIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02ODUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkV4dGVu
c2lvblRlc3RzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc1Rlc3QpOgorICAgICAg
ICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJj
ZXMuaHRtbDoKKwogMjAxMS0wOS0yMyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNwZWN0b3JTdHlsZVNoZWV0IHNob3Vs
ZCB1c2Ugc3R5bGVzaGVldCdzIG9yaWdpbmFsIHVybCwgbm90IGZpbmFsIG9uZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcwppbmRl
eCA0OGM2OTg1Li44MjFkMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCkBAIC01MCw3ICs1MCw3IEBAIEluc3BlY3RvclRl
c3QucnVuRXh0ZW5zaW9uVGVzdHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBwYWdlVVJMLnJl
cGxhY2UoL14oaHR0cHM/OlwvXC9bXi9dKlwvKS4qJC8sIiQxIikgOgogICAgICAgICAgICAgcGFn
ZVVSTC5yZXBsYWNlKC9cL2luc3BlY3RvclwvZXh0ZW5zaW9uc1wvW14vXSokLywgIi9odHRwL3Rl
c3RzIikpICsKICAgICAgICAgICAgICIvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFp
bi5odG1sIjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmFkZEV4dGVuc2lvbnMoW3sgc3RhcnRQYWdl
OiBleHRlbnNpb25VUkwgfV0pOworICAgICAgICBXZWJJbnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyhb
eyBzdGFydFBhZ2U6IGV4dGVuc2lvblVSTCwgbmFtZTogInRlc3QgZXh0ZW5zaW9uIiB9XSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA3MWIyMTAwLi5kZTQyMTVl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CkBAIC0zNyw2ICszNyw3IEBAIFJVTk5JTkcgVEVT
VDogZXh0ZW5zaW9uX3Rlc3RBUEkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBj
cmVhdGUgOiA8ZnVuY3Rpb24+CisgICAgICAgIHNldE9wZW5SZXNvdXJjZUhhbmRsZXIgOiA8ZnVu
Y3Rpb24+CiAgICAgfQogICAgIG5ldHdvcmsgOiB7CiAgICAgICAgIG9uUmVxdWVzdEZpbmlzaGVk
IDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDg3NmJlMzAuLjFk
MDlmZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBkb24ndCBwYW5pYyEKIFRlc3RzIHJlc291
cmNlLXJlbGF0ZWQgbWV0aG9kcyBvZiBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQogCiAKQEAg
LTY3LDYgKzY4LDEyIEBAIHJlc291cmNlIGFkZGVkOgogICAgICAgICBzZXRDb250ZW50IDogPGZ1
bmN0aW9uPgogICAgIH0KIH0KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPcGVuUmVzb3Vy
Y2VIYW5kbGVyCitoYW5kbGVPcGVuUmVzb3VyY2UoKSBpbnZva2VkIFt0aGlzIHNob3VsZCBvbmx5
IGFwcGVhciBvbmNlIV06IAoreworICAgIHVybCA6IC4uLi9leHRlbnNpb25zLXJlc291cmNlcy5o
dG1sCisgICAgdHlwZSA6ICJkb2N1bWVudCIKK30KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RTZXRSZXNvdXJjZUNvbnRlbnQKIGRpdi50ZXN0IHdpZHRoIGFmdGVyIHN0eWxlc2hlZXQgZWRp
dGVkIChzaG91bGQgYmUgMTI2KTogMTI2CiBBbGwgdGVzdHMgZG9uZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy5o
dG1sCmluZGV4IGJiMTUyMTQuLjAxMTVlZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbApAQCAtNyw2
ICs3LDIxIEBACiAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAorZnVuY3Rpb24g
aW5pdGlhbGl6ZV9FeHRlbnNpb25SZXNvdXJjZVRlc3RzKCkKK3sKKworSW5zcGVjdG9yVGVzdC5j
bGlja09uVVJMID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImNv
bnNvbGUiKTsKKyAgICB2YXIgeHBhdGhSZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0ZSgiLy9hW3N0
YXJ0cy13aXRoKC4sICdleHRlbnNpb25zLXJlc291cmNlcy5odG1sJyldIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmNvbnNvbGUu
ZWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUsIG51bGwp
OworICAgIHZhciBjbGljayA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7Cisg
ICAgY2xpY2suaW5pdE1vdXNlRXZlbnQoImNsaWNrIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgeHBhdGhS
ZXN1bHQuc2luZ2xlTm9kZVZhbHVlLmRpc3BhdGNoRXZlbnQoY2xpY2spOworfQorCit9CisKIGZ1
bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0QWxsUmVzb3VyY2VzKG5leHRUZXN0KQogewogICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKHJlc291cmNlcykKQEAgLTEwMyw2ICsxMTgsMjIgQEAgZnVuY3Rpb24g
ZXh0ZW5zaW9uX3Rlc3RPblJlc291cmNlQWRkZWQobmV4dFRlc3QpCiAgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5ldmFsKCJhZGRSZXNvdXJjZSgpIik7CiB9CiAKK2Z1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0T3BlblJlc291cmNlSGFuZGxlcihuZXh0VGVzdCkKK3sKKyAgICBmdW5jdGlv
biBoYW5kbGVPcGVuUmVzb3VyY2UocmVzb3VyY2UpCisgICAgeworICAgICAgICBvdXRwdXQoImhh
bmRsZU9wZW5SZXNvdXJjZSgpIGludm9rZWQgW3RoaXMgc2hvdWxkIG9ubHkgYXBwZWFyIG9uY2Uh
XTogIik7CisgICAgICAgIGR1bXBPYmplY3QocmVzb3VyY2UsIHsgdXJsOiAidXJsIiB9KTsKKyAg
ICAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKG51bGwpOwor
ICAgICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyBy
ZXBseSgpIiwgbmV4dFRlc3QpOworICAgIH0KKyAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLnNldE9w
ZW5SZXNvdXJjZUhhbmRsZXIoaGFuZGxlT3BlblJlc291cmNlKTsKKyAgICB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LmV2YWwoImxvZ01lc3NhZ2UoKSIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyIpOworICAg
ICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIldlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRpb25S
ZWdpc3RyeS5hY3RpdmVIYW5kbGVyID0gJ3Rlc3QgZXh0ZW5zaW9uJzsgSW5zcGVjdG9yVGVzdC5j
bGlja09uVVJMKCk7Iik7CisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGFkZFJlc291cmNlKCkKIHsK
ICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CkBAIC0x
MTAsNiArMTQxLDExIEBAIGZ1bmN0aW9uIGFkZFJlc291cmNlKCkKICAgICBkb2N1bWVudC5oZWFk
LmFwcGVuZENoaWxkKHNjcmlwdCk7CiB9CiAKK2Z1bmN0aW9uIGxvZ01lc3NhZ2UoKQoreworICAg
IGNvbnNvbGUubG9nKCJkb24ndCBwYW5pYyEiKTsKK30KKwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU2MTE1NS4uYmM3ODE5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTA5LTI2ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lv
bnMgQVBJXSBhbGxvdyByZXNvdXJjZXMgdG8gaG9vayBvbiBjbGljayBvbiByZXNvdXJjZSBsaW5r
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVj
dGVkRXh0ZW5zaW9uQVBJLkNvbnNvbGUucHJvdG90eXBlLmdldCBTZXZlcml0eSk6CisgICAgICAg
IChpbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbHMucHJvdG90eXBlLmNyZWF0ZSk6CisgICAgICAg
IChpbmplY3RlZEV4dGVuc2lvbkFQSS5QYW5lbHMucHJvdG90eXBlLnNldE9wZW5SZXNvdXJjZUhh
bmRsZXIuZWxzZS5jYWxsYmFja1dyYXBwZXIpOgorICAgICAgICAoaW5qZWN0ZWRFeHRlbnNpb25B
UEkuUGFuZWxzLnByb3RvdHlwZS5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKToKKyAgICAgICAgKGlu
amVjdGVkRXh0ZW5zaW9uQVBJLkV4dGVuc2lvblNlcnZlckNsaWVudC5wcm90b3R5cGUuaGFzSGFu
ZGxlcik6CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5FeHRlbnNpb25TZXJ2ZXJDbGll
bnQucHJvdG90eXBlLmRlcmVnaXN0ZXJIYW5kbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNp
b25TZXJ2ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5
cGUuX29uU2V0T3BlblJlc291cmNlSGFuZGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5faGFuZGxlQW5jaG9yQ2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9ucyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5z
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9y
ZWdpc3RlckV4dGVuc2lvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9jcmVhdGVDdXN0b21T
ZXR0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAgKC5oZWxw
LWNvbnRlbnQgc2VsZWN0KToKKyAgICAgICAgKC5oZWxwLWNvbnRlbnQgc2VsZWN0OmRpc2FibGVk
KToKKyAgICAgICAgKC5oZWxwLWNvbnRlbnQgb3B0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNldCBhdHRhY2hlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbik6CisKIDIwMTEtMDktMjMgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW5zcGVjdG9yU3R5bGVTaGVldCBzaG91bGQgdXNlIHN0eWxlc2hlZXQncyBvcmlnaW5h
bCB1cmwsIG5vdCBmaW5hbCBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTIyOGQwNS4uZDgzM2Zh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjM1NSw2ICs2MzU1LDcgQEAKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0dvVG9MaW5lRGlhbG9nLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0hBUkVudHJ5LmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0hh
bmRsZXJSZWdpc3RyeS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFw
U25hcHNob3QuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90UHJveHkuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90V29ya2VyLmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMzRjYzVlYy4uNTgxNTE4YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY4OTg5LDYgKzY4OTg5LDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXEhhbmRsZXJSZWdpc3RyeS5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSEFSRW50cnku
anMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCmluZGV4IDdjYzMxOTEuLjRjYTcwNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
CkBAIC0xNTAsNyArMTUwLDcgQEAgQ29uc29sZS5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IFNldmVy
aXR5KCkKICAgICB7CiAgICAgICAgIHJldHVybiBhcGlQcml2YXRlLmNvbnNvbGUuU2V2ZXJpdHk7
Ci0gICAgfSwKKyAgICB9CiB9OwogCiBmdW5jdGlvbiBOZXR3b3JrKCkKQEAgLTIyOSw2ICsyMjks
MjQgQEAgUGFuZWxzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHBhZ2U6IHBhZ2UKICAgICAg
ICAgfTsKICAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNhbGxi
YWNrICYmIGJpbmQoY2FsbGJhY2ssIHRoaXMsIG5ldyBFeHRlbnNpb25QYW5lbChpZCkpKTsKKyAg
ICB9LAorCisgICAgc2V0T3BlblJlc291cmNlSGFuZGxlcjogZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeworICAgICAgICB2YXIgaGFkSGFuZGxlciA9IGV4dGVuc2lvblNlcnZlci5oYXNIYW5kbGVy
KCJvcGVuLXJlc291cmNlIik7CisKKyAgICAgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAgICAg
IGV4dGVuc2lvblNlcnZlci5kZXJlZ2lzdGVySGFuZGxlcigib3Blbi1yZXNvdXJjZSIpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihtZXNzYWdl
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgbWVz
c2FnZS5yZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHRlbnNpb25TZXJ2
ZXIucmVnaXN0ZXJIYW5kbGVyKCJvcGVuLXJlc291cmNlIiwgY2FsbGJhY2tXcmFwcGVyKTsKKyAg
ICAgICAgfQorICAgICAgICAvLyBPbmx5IHNlbmQgY29tbWFuZCBpZiB3ZSBlaXRoZXIgcmVtb3Zl
ZCBhbmQgZXhpc3RpbmcgaGFuZGxlciBvciBhZGRlZCBoYW5kbGVyIGFuZCBoYWQgbm9uZSBiZWZv
cmUuCisgICAgICAgIGlmIChoYWRIYW5kbGVyID09PSAhY2FsbGJhY2spCisgICAgICAgICAgICBl
eHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAic2V0T3BlblJlc291cmNlSGFu
ZGxlciIsICJoYW5kbGVyUHJlc2VudCI6ICEhY2FsbGJhY2sgfSk7CiAgICAgfQogfQogCkBAIC01
MTMsMTEgKzUzMSwyMSBAQCBFeHRlbnNpb25TZXJ2ZXJDbGllbnQucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gdGhpcy5fcG9ydC5wb3N0TWVzc2FnZShtZXNzYWdlKTsKICAgICB9LAogCisg
ICAgaGFzSGFuZGxlcjogZnVuY3Rpb24oY29tbWFuZCkKKyAgICB7CisgICAgICAgIHJldHVybiAh
IXRoaXMuX2hhbmRsZXJzW2NvbW1hbmRdOworICAgIH0sCisKICAgICByZWdpc3RlckhhbmRsZXI6
IGZ1bmN0aW9uKGNvbW1hbmQsIGhhbmRsZXIpCiAgICAgewogICAgICAgICB0aGlzLl9oYW5kbGVy
c1tjb21tYW5kXSA9IGhhbmRsZXI7CiAgICAgfSwKIAorICAgIGRlcmVnaXN0ZXJIYW5kbGVyOiBm
dW5jdGlvbihjb21tYW5kKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2hhbmRsZXJzW2Nv
bW1hbmRdOworICAgIH0sCisKICAgICBuZXh0T2JqZWN0SWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBpbmplY3RlZFNjcmlwdElkICsgIl8iICsgKyt0aGlzLl9sYXN0T2JqZWN0
SWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uU2VydmVyLmpzCmluZGV4IGU2MjdhMjQuLmZkMmQ4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0zOCw3
ICszOCw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5fZXh0cmFIZWFkZXJzID0ge307CiAgICAgdGhpcy5fcmVxdWVzdHMgPSB7fTsKICAgICB0
aGlzLl9sYXN0UmVxdWVzdElkID0gMDsKLSAgICB0aGlzLl9hbGxvd2VkT3JpZ2lucyA9IHt9Owor
ICAgIHRoaXMuX3JlZ2lzdGVyZWRFeHRlbnNpb25zID0ge307CiAgICAgdGhpcy5fc3RhdHVzID0g
bmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TdGF0dXMoKTsKIAogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcigiYWRkQXVkaXRDYXRlZ29yeSIsIHRoaXMuX29uQWRkQXVkaXRDYXRlZ29yeS5iaW5k
KHRoaXMpKTsKQEAgLTU1LDYgKzU1LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlciA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldFJlc291cmNlQ29udGVu
dCIsIHRoaXMuX29uR2V0UmVzb3VyY2VDb250ZW50LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3Jl
Z2lzdGVySGFuZGxlcigibG9nIiwgdGhpcy5fb25Mb2cuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKCJyZWxvYWQiLCB0aGlzLl9vblJlbG9hZC5iaW5kKHRoaXMpKTsKKyAg
ICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInNldE9wZW5SZXNvdXJjZUhhbmRsZXIiLCB0aGlzLl9v
blNldE9wZW5SZXNvdXJjZUhhbmRsZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJI
YW5kbGVyKCJzZXRSZXNvdXJjZUNvbnRlbnQiLCB0aGlzLl9vblNldFJlc291cmNlQ29udGVudC5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoInNldFNpZGViYXJIZWlnaHQi
LCB0aGlzLl9vblNldFNpZGViYXJIZWlnaHQuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0
ZXJIYW5kbGVyKCJzZXRTaWRlYmFyQ29udGVudCIsIHRoaXMuX29uU2V0U2lkZWJhckNvbnRlbnQu
YmluZCh0aGlzKSk7CkBAIC0yNTEsNiArMjUyLDI3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBzaWRlYmFyLnNldFBhZ2UodGhpcy5fZXhwYW5k
UmVzb3VyY2VQYXRoKHBvcnQuX2V4dGVuc2lvbk9yaWdpbiwgbWVzc2FnZS5wYWdlKSk7CiAgICAg
fSwKIAorICAgIF9vblNldE9wZW5SZXNvdXJjZUhhbmRsZXI6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBv
cnQpCisgICAgeworICAgICAgICB2YXIgbmFtZSA9IHRoaXMuX3JlZ2lzdGVyZWRFeHRlbnNpb25z
W3BvcnQuX2V4dGVuc2lvbk9yaWdpbl0ubmFtZSB8fCAoIkV4dGVuc2lvbiAiICsgcG9ydC5fZXh0
ZW5zaW9uT3JpZ2luKTsKKyAgICAgICAgaWYgKG1lc3NhZ2UuaGFuZGxlclByZXNlbnQpCisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkucmVnaXN0ZXJI
YW5kbGVyKG5hbWUsIHRoaXMuX2hhbmRsZUFuY2hvckNsaWNrZWQuYmluZCh0aGlzLCBwb3J0KSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRp
b25SZWdpc3RyeS5kZXJlZ2lzdGVySGFuZGxlcihuYW1lKTsKKyAgICB9LAorCisgICAgX2hhbmRs
ZUFuY2hvckNsaWNrZWQ6IGZ1bmN0aW9uKHBvcnQsIGFuY2hvcikKKyAgICB7CisgICAgICAgIHZh
ciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChhbmNob3IuaHJlZik7Cisg
ICAgICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHBvcnQucG9zdE1lc3NhZ2UoeworICAgICAgICAgICAgY29tbWFuZDogIm9wZW4tcmVzb3VyY2Ui
LAorICAgICAgICAgICAgcmVzb3VyY2U6IHRoaXMuX21ha2VSZXNvdXJjZShyZXNvdXJjZSkKKyAg
ICAgICAgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKICAgICBfb25Mb2c6IGZ1
bmN0aW9uKG1lc3NhZ2UpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IubG9nKG1lc3NhZ2Uu
bWVzc2FnZSk7CkBAIC01MjgsMTAgKzU1MCwxMCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2Vy
dmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gU2VlIEV4dGVuc2lvbkFQSS5qcyBhbmQgRXh0
ZW5zaW9uQ29tbW9uLmpzIGZvciBkZXRhaWxzLgogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhv
c3Quc2V0RXh0ZW5zaW9uQVBJKHRoaXMuX2J1aWxkRXh0ZW5zaW9uQVBJU2NyaXB0KCkpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dGVuc2lvbnMubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICB0aGlzLl9hZGRFeHRlbnNpb24oZXh0ZW5zaW9uc1tpXS5zdGFydFBhZ2UpOworICAgICAg
ICAgICAgdGhpcy5fYWRkRXh0ZW5zaW9uKGV4dGVuc2lvbnNbaV0uc3RhcnRQYWdlLCBleHRlbnNp
b25zW2ldLm5hbWUpOwogICAgIH0sCiAKLSAgICBfYWRkRXh0ZW5zaW9uOiBmdW5jdGlvbihzdGFy
dFBhZ2UpCisgICAgX2FkZEV4dGVuc2lvbjogZnVuY3Rpb24oc3RhcnRQYWdlLCBuYW1lKQogICAg
IHsKICAgICAgICAgY29uc3QgdXJsT3JpZ2luUmVnRXhwID0gbmV3IFJlZ0V4cCgiKFteOl0rOlwv
XC9bXi9dKilcLyIpOyAvLyBDYW4ndCB1c2UgcmVnZXhwIGxpdGVyYWwgaGVyZSwgTWluSlMgY2hv
a2VzIG9uIGl0LgogCkBAIC01NDEsNyArNTYzLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiU2tpcHBp
bmcgZXh0ZW5zaW9uIHdpdGggaW52YWxpZCBVUkw6ICIgKyBzdGFydFBhZ2UpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2Fs
bG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFdXSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9y
ZWdpc3RlcmVkRXh0ZW5zaW9uc1tvcmlnaW5NYXRjaFsxXV0gPSB7IG5hbWU6IG5hbWUgfTsKICAg
ICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
ICAgICAgICAgICAgIGlmcmFtZS5zcmMgPSBzdGFydFBhZ2U7CiAgICAgICAgICAgICBpZnJhbWUu
c3R5bGUuZGlzcGxheSA9ICJub25lIjsKQEAgLTU2Nyw3ICs1ODksNyBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZWdpc3RlckV4dGVuc2lvbjog
ZnVuY3Rpb24ob3JpZ2luLCBwb3J0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9hbGxvd2Vk
T3JpZ2lucy5oYXNPd25Qcm9wZXJ0eShvcmlnaW4pKSB7CisgICAgICAgIGlmICghdGhpcy5fcmVn
aXN0ZXJlZEV4dGVuc2lvbnMuaGFzT3duUHJvcGVydHkob3JpZ2luKSkgewogICAgICAgICAgICAg
aWYgKG9yaWdpbiAhPT0gbG9jYXRpb24ub3JpZ2luKSAvLyBKdXN0IGlnbm9yZSBpbnNwZWN0b3Ig
ZnJhbWVzLgogICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIklnbm9yaW5nIHVuYXV0aG9y
aXplZCBjbGllbnQgcmVxdWVzdCBmcm9tICIgKyBvcmlnaW4pOwogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IYW5kbGVy
UmVnaXN0cnkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hhbmRsZXJS
ZWdpc3RyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzk3MTA2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IYW5k
bGVyUmVnaXN0cnkuanMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuSGFuZGxlclJlZ2lz
dHJ5ID0gZnVuY3Rpb24oc2V0dGluZykKK3sKKyAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwo
dGhpcyk7CisgICAgdGhpcy5faGFuZGxlcnMgPSB7fTsKKyAgICB0aGlzLl9zZXR0aW5nID0gc2V0
dGluZzsKKyAgICB0aGlzLl9hY3RpdmVIYW5kbGVyID0gdGhpcy5fc2V0dGluZy5nZXQoKTsKK30K
KworV2ViSW5zcGVjdG9yLkhhbmRsZXJSZWdpc3RyeS5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGhh
bmRsZXJOYW1lcygpCisgICAgeworICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5
TmFtZXModGhpcy5faGFuZGxlcnMpOworICAgIH0sCisKKyAgICBnZXQgYWN0aXZlSGFuZGxlcigp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlSGFuZGxlcjsKKyAgICB9LAorCisg
ICAgc2V0IGFjdGl2ZUhhbmRsZXIodmFsdWUpCisgICAgeworICAgICAgICB0aGlzLl9hY3RpdmVI
YW5kbGVyID0gdmFsdWU7CisgICAgICAgIHRoaXMuX3NldHRpbmcuc2V0KHZhbHVlKTsKKyAgICB9
LAorCisgICAgZGlzcGF0Y2g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBoYW5kbGVy
ID0gdGhpcy5faGFuZGxlcnNbdGhpcy5fYWN0aXZlSGFuZGxlcl07CisgICAgICAgIHZhciByZXN1
bHQgPSBoYW5kbGVyICYmIGhhbmRsZXIuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKKyAgICAgICAg
cmV0dXJuICEhcmVzdWx0OworICAgIH0sCisKKyAgICByZWdpc3RlckhhbmRsZXI6IGZ1bmN0aW9u
KG5hbWUsIGhhbmRsZXIpCisgICAgeworICAgICAgICB0aGlzLl9oYW5kbGVyc1tuYW1lXSA9IGhh
bmRsZXI7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5IYW5kbGVyUmVnaXN0cnkuRXZlbnRUeXBlcy5IYW5kbGVyc1VwZGF0ZWQpOworICAgIH0sCisK
KyAgICBkZXJlZ2lzdGVySGFuZGxlcjogZnVuY3Rpb24obmFtZSkKKyAgICB7CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9oYW5kbGVyc1tuYW1lXTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkhhbmRsZXJSZWdpc3RyeS5FdmVudFR5cGVzLkhhbmRsZXJz
VXBkYXRlZCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuSGFuZGxlclJlZ2lzdHJ5LkV2ZW50
VHlwZXMgPSB7CisgICAgSGFuZGxlcnNVcGRhdGVkOiAiSGFuZGxlcnNVcGRhdGVkIgorfQorCitX
ZWJJbnNwZWN0b3IuSGFuZGxlclJlZ2lzdHJ5LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworV2ViSW5zcGVjdG9yLkhhbmRsZXJTZWxlY3RvciA9
IGZ1bmN0aW9uKGhhbmRsZXJSZWdpc3RyeSkKK3sKKyAgICB0aGlzLl9oYW5kbGVyUmVnaXN0cnkg
PSBoYW5kbGVyUmVnaXN0cnk7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2VsZWN0Iik7CisgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5n
ZSIsIHRoaXMuX29uQ2hhbmdlLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl91cGRhdGUo
KTsKKyAgICB0aGlzLl9oYW5kbGVyUmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuSGFuZGxlclJlZ2lzdHJ5LkV2ZW50VHlwZXMuSGFuZGxlcnNVcGRhdGVkLCB0aGlzLl91cGRh
dGUuYmluZCh0aGlzKSk7Cit9CisKK1dlYkluc3BlY3Rvci5IYW5kbGVyU2VsZWN0b3IucHJvdG90
eXBlID0KK3sKKyAgICBfdXBkYXRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIG5hbWVzID0gdGhpcy5faGFuZGxl
clJlZ2lzdHJ5LmhhbmRsZXJOYW1lczsKKyAgICAgICAgdmFyIGFjdGl2ZUhhbmRsZXIgPSB0aGlz
Ll9oYW5kbGVyUmVnaXN0cnkuYWN0aXZlSGFuZGxlcjsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CisgICAgICAgICAgICBvcHRpb24udGV4dENv
bnRlbnQgPSBuYW1lc1tpXTsKKyAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IGFjdGl2ZUhh
bmRsZXIgPT09IG5hbWVzW2ldOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KG9wdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5lbGVtZW50LmRpc2FibGVkID0gbmFt
ZXMubGVuZ3RoIDw9IDE7CisgICAgfSwKKworICAgIF9vbkNoYW5nZTogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB2YXIgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7CisgICAgICAg
IHRoaXMuX2hhbmRsZXJSZWdpc3RyeS5hY3RpdmVIYW5kbGVyID0gdmFsdWU7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1Nj
cmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3Jl
ZW4uanMKaW5kZXggZmJjNDg1YS4uOThkMGNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC01OCw2ICs1OCwxMCBA
QCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgcC5hcHBlbmRD
aGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJM
b2cgWE1MSHR0cFJlcXVlc3RzIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhS
RW5hYmxlZCkpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5n
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJlc2VydmUgbG9nIHVwb24gbmF2aWdhdGlvbiIpLCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nKSk7CiAKKyAgICB2YXIgaGFu
ZGxlclNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5IYW5kbGVyU2VsZWN0b3IoV2ViSW5zcGVj
dG9yLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5KTsKKyAgICBwID0gdGhpcy5fYXBwZW5kU2Vj
dGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdlbmVyYWwiKSwgdHJ1ZSk7CisgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVDdXN0b21TZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
T3BlbiBsaW5rcyBpbi4uLiIpLCBoYW5kbGVyU2VsZWN0b3IuZWxlbWVudCkpOworCiAgICAgdmFy
IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgICB0YWJsZS5jbGFz
c05hbWUgPSAiaGVscC10YWJsZSI7CiAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidHIiKTsKQEAgLTE0MCw2ICsxNDQsMTUgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBwcC5hcHBlbmRDaGlsZChmaWVsZHNldEVsZW1lbnQp
OwogICAgICAgICByZXR1cm4gcHA7CisgICAgfSwKKworICAgIF9jcmVhdGVDdXN0b21TZXR0aW5n
OiBmdW5jdGlvbihuYW1lLCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB2YXIgcCA9IGRpdi5jcmVhdGVDaGls
ZCgicCIpOworICAgICAgICBwLnRleHRDb250ZW50ID0gbmFtZTsKKyAgICAgICAgZGl2LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworICAgICAgICByZXR1cm4gZGl2OwogICAgIH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCBkZTVjYWQ0
Li5kMjdhY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJL
aXQucXJjCkBAIC01NCw2ICs1NCw3IEBACiAgICAgPGZpbGU+Rm9udFZpZXcuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+R29Ub0xpbmVEaWFsb2cuanM8L2ZpbGU+CiAgICAgPGZpbGU+SEFSRW50cnkuanM8
L2ZpbGU+CisgICAgPGZpbGU+SGFuZGxlclJlZ2lzdHJ5LmpzPC9maWxlPgogICAgIDxmaWxlPkhl
YXBTbmFwc2hvdC5qczwvZmlsZT4KICAgICA8ZmlsZT5IZWFwU25hcHNob3RQcm94eS5qczwvZmls
ZT4KICAgICA8ZmlsZT5IZWFwU25hcHNob3RXb3JrZXIuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcwppbmRleCAzOGZlZTE4
Li5mNjljZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2hlbHBTY3JlZW4uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aGVscFNjcmVlbi5jc3MKQEAgLTE4OCwzICsxODgsMjEgQEAgYm9keS5wbGF0Zm9ybS1tYWMgLmhl
bHAta2V5IHsKICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiB9
CisKKy5oZWxwLWNvbnRlbnQgc2VsZWN0IHsKKyAgICBtYXJnaW4tbGVmdDogMWVtOworICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYig2NCwgNjQsIDY0KTsKKyAgICBjb2xvcjogd2hpdGU7CisgICAg
Ym9yZGVyLWNvbG9yOiBibGFjazsKKyAgICBwYWRkaW5nOiAwcHggNHB4OworfQorCisuaGVscC1j
b250ZW50IHNlbGVjdDpkaXNhYmxlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMyLCAz
MiwgMzIpOworICAgIGNvbG9yOiBncmF5dGV4dDsKK30KKworLmhlbHAtY29udGVudCBvcHRpb24g
eworICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAgIGNvbG9yOiB3aGl0ZTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmlu
ZGV4IGJhMTJmNmMuLjQ4MGQ2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTc4LDYgKzE3OCw3IEBAIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iV29ya2VyTWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVXNlck1l
dHJpY3MuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9IkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5LmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IGNsYXNzPSJkZXRhY2hlZCI+CiAgICAgPGRpdiBpZD0idG9vbGJhciI+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmlu
ZGV4IGNkMWE4MDguLjk5NGVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0yOTgsNyArMjk4LDcgQEAgdmFyIFdlYkluc3BlY3Rv
ciA9IHsKICAgICAgICAgICAgIHRoaXMuX2RvY2tUb2dnbGVCdXR0b24udG9nZ2xlZCA9ICF4Owog
ICAgICAgICB9CiAKLSAgICAgICAgLy8gVGhpcyBtYXkgYmUgY2FsbGVkIGJlZm9yZSBvbkxvYWRl
ZERvbmUsIGhlbmNlIHRoZSBidWxrIG9mIGluc3BlY3RvciBvYmplY3RzIG1heQorICAgICAgICAv
LyBUaGlzIG1heSBiZSBjYWxsZWQgYmVmb3JlIGRvTG9hZGVkRG9uZSwgaGVuY2UgdGhlIGJ1bGsg
b2YgaW5zcGVjdG9yIG9iamVjdHMgbWF5CiAgICAgICAgIC8vIG5vdCBiZSBjcmVhdGVkIHlldC4K
ICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci50b29sYmFyKQogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnRvb2xiYXIuYXR0YWNoZWQgPSB4OwpAQCAtNTQ5LDYgKzU0OSwxMSBAQCBXZWJJbnNwZWN0
b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIGVycm9yV2FybmluZ0NvdW50LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5zaG93Q29uc29sZS5iaW5kKHRoaXMpLCBmYWxzZSk7
CiAgICAgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJuaW5nQ291bnRzKCk7CiAKKyAgICB2YXIgYXV0
b3NlbGVjdFBhbmVsID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJhIHBhbmVsIGNob3NlbiBhdXRv
bWF0aWNhbGx5Iik7CisgICAgdmFyIG9wZW5BbmNob3JMb2NhdGlvblNldHRpbmcgPSBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygib3BlbkxpbmtIYW5kbGVyIiwgYXV0b3NlbGVj
dFBhbmVsKTsKKyAgICB0aGlzLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5ID0gbmV3IFdlYklu
c3BlY3Rvci5IYW5kbGVyUmVnaXN0cnkob3BlbkFuY2hvckxvY2F0aW9uU2V0dGluZyk7CisgICAg
dGhpcy5vcGVuQW5jaG9yTG9jYXRpb25SZWdpc3RyeS5yZWdpc3RlckhhbmRsZXIoYXV0b3NlbGVj
dFBhbmVsLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9KTsKKwogICAgIHRoaXMuZXh0ZW5z
aW9uU2VydmVyLmluaXRFeHRlbnNpb25zKCk7CiAKICAgICB0aGlzLmNvbnNvbGUuZW5hYmxlQWdl
bnQoKTsKQEAgLTEyMjIsNiArMTIyNyw4IEBAIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVS
TCA9IGZ1bmN0aW9uKHVybCkKIAogV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb24gPSBm
dW5jdGlvbihhbmNob3IpCiB7CisgICAgaWYgKFdlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRp
b25SZWdpc3RyeS5kaXNwYXRjaChhbmNob3IpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB2
YXIgcHJlZmVyZWRQYW5lbCA9IHRoaXMucGFuZWxzW2FuY2hvci5nZXRBdHRyaWJ1dGUoInByZWZl
cnJlZF9wYW5lbCIpIHx8ICJyZXNvdXJjZXMiXTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLl9zaG93
QW5jaG9yTG9jYXRpb25JblBhbmVsKGFuY2hvciwgcHJlZmVyZWRQYW5lbCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwo=
</data>
<flag name="review"
          id="105666"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108646</attachid>
            <date>2011-09-26 01:48:15 -0700</date>
            <delta_ts>2011-09-26 01:48:15 -0700</delta_ts>
            <desc>screenshot (enabled)</desc>
            <filename>open-links-selector-enabled.png</filename>
            <type>image/png</type>
            <size>3495</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">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
CVbK3I4rbmb+X3JMzYAo3Osg+WeWJwd/V1Hj3rvze1UH/p1xX+9oqD3bMZL8/KnCNBUAMIzlxf3F
Cwvm+MFbswr2PrFFBLOTk5N8kWAawGt7Xjdkpf8BX2eeHTMhJDQ09Ms/b6v7tm/mupsfpQwOZB1z
AMCTi0SEsK4bjpmJC/oXfu2YAwDgi2TrBQzLsqNdF6A8IzExJsz9Xt+fZ1gWWJYlxPNGkXVfnxFF
KIJZ1gEAACFyGXHPuK+ThYOEEADCEjaICv90tOtIVwvwZVszDrzww+eH3/lR3/+Wj7Z4PsCIcQdJ
wxcUOLb8MFcrOvHCM4OTswCyQ9XVSsLz2t5iG+KXp/RrwnM/nl+etNWdYEz0XXCEb92bHMMjvCjt
rgxNKACZ6OtyhCcfSIvnERIsj3rhv/77P/bGE0JmPhwYcIQ9++y3Ji50TTGEEEJowswJwpVhwTwy
0dc1+3Da3idjeIRII7Y+s+txS1eX10HP65sQotzyzE+PH4lXSAkz45hxM8yMm6HdM1PX502Feyvg
C0Qwx8zM0ITwYp74XtqmUIGIeG1vsQ1ByyeTyWQy2WKPriiEq7tXdt3orSyTGoqKzxeFXh+9NDAx
I2KJ60ZvWVmwPv9H5/X/Aoz7nUuv/fzlSywLQP/9Uvt7mfmb/tj7Z88Kafpvfe9MGPT/KVW+9JPT
l14qEx3OLz6vD2XcNy69dup0y/AswMJBgWoHASAs+39/ePl/IoqKa15dLwD3jdHGqqrhv3/ug4u8
FvD/UH9pa0nN6+fd7pnRvq7XLk18RxnGsuzC9hbdELQW7v0jXe4YHx/fsWOHX7pB6G5dXV33+yJP
nCCiNYeXEyGO8E+UHQ6HVCr1y6oQ8rh58+bSRXfxT5RXdIk0QqvBD2/7EHoQ4B3XiCMwyogjMMqI
IzDKiCMwyogjMMqIIzDKiCMwyogjMMqIIzDKiCMwyogjMMqIIzDKiCMwyogjMMqIIzDKiCP+AduZ
lay1EkjoAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108647</attachid>
            <date>2011-09-26 01:48:50 -0700</date>
            <delta_ts>2011-09-26 01:49:05 -0700</delta_ts>
            <desc>screenshot (disabled)</desc>
            <filename>open-links-selector-disabled.png</filename>
            <type>text/plain</type>
            <size>15204</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">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
PjnDMWzK4ezsvRs+4A4uembGl/WuFSj5816Yx/WZMCbLdXDNjDmb5blrd2RnZ38wIXPRiy/u9iqX
lhDBqClzJ4zMvPixiUltNGq2Iodr4MqVo16558Htv/IqNzG5njAjwkxMGhvT6kxMGhszH6aJSWNj
+joTk8bGtDoTk8bGtDoTk8bGtDoTk8bGtDoTk8bGtDoTk8amnt/VWkdycnIuXcjE5LK4+h+GXRmr
A4C4uLj0dHOHqEl9cvz48dLS0iutxaW5YlbXtm1bhMw3iZvUJ23btt25c+eV1uLSXDGrM3NOm/xu
uWJWZzo6k98tpq+77sAZBldlrb6Ht4HE/i65Yk8O0NUEzSXfeU/PeBq7dElb8p339HTUoeSVAWNv
6Xl7Kk83nFjadsMf7vmDgybqXrtyeOs+zpfNlbqefxWmrwMAMBACAGQYl9TKMOpa8oqAExhJ4Qih
+lUvUqzk9xz8KSTKSt1buDC8dR7nqJw4ccLv91f+abfbW7VqdRlyrjhX431dXFL7zPYtY200gH7+
XO7efcf86oUvibGnZPVq4ysOxcSwOI77Co7vO3RGjVZLZZKzstLOF8mOxBiKwv0Fp37aeyRogDUu
KTOzfWKsTVcCZ44f+Dm3uLYfS6sjJfOm9PKSRw78fKoYIYRwMim98y0pzVhCP5+XG5Zpd7TMzMxw
cqyuBPKyjxzKyVdxJu3mTukpiTQBgbKiI/v25vtkgCitU/aUqHpefExUa3Kv29P2bd7qlQ0Aqn2v
3jF5+3w3ZCaybOKtf2AO7Nh3prSmVrg9JSsrzVskJzhiKBb35h7KUxwZqYlWFveePPRTLSPZomu3
SrFHzls7dM74efPWYlmtOT5GVFVreKTmne9sg5/8dleuAQC49ZY7esGxHfvyfRe/ZhITEyOtLjEx
8VpxbtW46nwdY2/RJTPpxO4t3xT5KWvirb27pjc9s/u0L6IiomiOkY5u3pUHlL1jz14dXP6Dhbaa
tQ6WIIqNZUI7Nq4vACb+1j63tU0687OH7dwjU/5lz+ffFOAxN3S7vVMH5fvDZSisUqRWlDWxW7eb
yo7t/vSbItaRevutnVqWbTmrIIKwxZDuret3qdbEW3t2a5d05mAJ171H+5KDu78/WcTG3ND19s63
IOmQ2LxNgv7DV5+el4kWN9/WvkNa8XeHDWtilNaj6bk3ostRx+RgFZ0NhAAh48iPO/i7evl2bTns
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
</data>

          </attachment>
      

    </bug>

</bugzilla>