<?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>57698</bug_id>
          
          <creation_ts>2011-04-01 22:27:11 -0700</creation_ts>
          <short_desc>Web Inspector: introduce support of &apos;optional&apos; flag for command arguments</short_desc>
          <delta_ts>2011-04-04 03:09:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>378341</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-04-01 22:27:11 -0700</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378343</commentid>
    <comment_count>1</comment_count>
      <attachid>87968</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-04-01 22:35:18 -0700</bug_when>
    <thetext>Created attachment 87968
[patch] initial version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378360</commentid>
    <comment_count>2</comment_count>
      <attachid>87968</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-02 00:12:19 -0700</bug_when>
    <thetext>Comment on attachment 87968
[patch] initial version

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

&gt; LayoutTests/ChangeLog:5
&gt; +        Web Inspector: introduce support of &apos;optional&apos; flag for command arguments.

It is not clear from the ChangeLog / perl script what the behavior would be, but here are the requirements as I see then:
1) it should be possible to make any number of parameters optional
2) optional parameters are the ones not transmitted as a part of the message
3) first parameter described could be made optional, not necessarily the last one
4) there should be a way to distinguish between &quot;columnNumber = 0&quot; and &quot;not given optional columnNumber&quot;

It sounds like (3) and (4) are not supported. Please explain what you intend to do in the bug like this prior to working on the change to aoid further confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378378</commentid>
    <comment_count>3</comment_count>
      <attachid>87973</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-04-02 03:10:03 -0700</bug_when>
    <thetext>Created attachment 87973
[patch] second version

test coverage was extended. See changes in report-API-errors.html, report-protocol-errors.html and runtime-agent.html

optional arguments are transferred by const pointers.

simplest implementation for optional arguments was added to the setBreackpoint* methods. I think we will fix that in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378698</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-04-04 01:34:05 -0700</bug_when>
    <thetext>Committed r82804: &lt;http://trac.webkit.org/changeset/82804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378719</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-04 03:09:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82804 might have broken Windows XP Debug (Tests)
The following tests are not passing:
inspector/extensions/extensions-api.html
inspector/extensions/extensions.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87968</attachid>
            <date>2011-04-01 22:35:18 -0700</date>
            <delta_ts>2011-04-02 03:10:03 -0700</delta_ts>
            <desc>[patch] initial version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12151</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YWE3N2Y3Li44ODAwMzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQt
MDEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJv
ZHVjZSBzdXBwb3J0IG9mICdvcHRpb25hbCcgZmxhZyBmb3IgY29tbWFuZCBhcmd1bWVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzY5OAorCisg
ICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQ6CisKIDIw
MTEtMDQtMDEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBTa2lwIHRoZSB0ZXN0IGxhbmRlZCBpbiByODI3NTgsIHNpbmNlIFdlYktpdFRlc3RSdW5u
ZXIgZG9lc24ndCBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
ZXBvcnQtQVBJLWVycm9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVw
b3J0LUFQSS1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGI1YTgzNjYuLmY3OTQzNDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIFRlc3RzIHRoYXQgSW5zcGVjdG9yQmFja2VuZFN0dWIgaXMg
Y2F0Y2hpbmcgaW5jb3JyZWN0IGFyZ3VtZW50cy4KIAogUHJvdG9jb2wgRXJyb3I6IEludmFsaWQg
dHlwZSBvZiBhcmd1bWVudCAnZW5hYmxlZCcgZm9yICdDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmlu
Z1hIUkVuYWJsZWQnIGNhbGwuIEl0IHNob3VsZCBiZSAnYm9vbGVhbicgYnV0IGl0IGlzICdudW1i
ZXInLgotUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgJ0Nv
bnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCcgY2FsbC4gSXQgc2hvdWxkIGhhdmUg
dGhlIG5leHQgYXJndW1lbnRzICd7ImVuYWJsZWQiOiJib29sZWFuIn0nLgorUHJvdG9jb2wgRXJy
b3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgJ0NvbnNvbGVBZ2VudC5zZXRNb25p
dG9yaW5nWEhSRW5hYmxlZCcgY2FsbC4gSXQgc2hvdWxkIGhhdmUgdGhlIG5leHQgYXJndW1lbnRz
ICd7ImVuYWJsZWQiOnsib3B0aW9uYWwiOmZhbHNlLCJ0eXBlIjoiYm9vbGVhbiJ9fScuCiBQcm90
b2NvbCBFcnJvcjogT3B0aW9uYWwgY2FsbGJhY2sgYXJndW1lbnQgZm9yICdDb25zb2xlQWdlbnQu
c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwgc2hvdWxkIGJlIGEgZnVuY3Rpb24gYnV0IGl0
cyB0eXBlIGlzICdzdHJpbmcnLgogUHJvdG9jb2wgRXJyb3I6IHRoZSBtZXNzYWdlIGlzIGZvciBu
b24tZXhpc3RpbmcgZG9tYWluICd3cm9uZ0RvbWFpbicKIFByb3RvY29sIEVycm9yOiBBdHRlbXB0
ZWQgdG8gZGlzcGF0Y2ggYW4gdW5pbXBsZW1lbnRlZCBtZXRob2QgJ0luc3BlY3Rvci5zb21ldGhp
bmctc3RyYW5nZScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJv
dG9jb2wtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQt
cHJvdG9jb2wtZXJyb3JzLWV4cGVjdGVkLnR4dAppbmRleCAyNTIxZWViLi45OTZhZjJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJv
cnMtZXhwZWN0ZWQudHh0CkBAIC01Myw3ICs1Myw2IEBAIFRlc3RzIHRoYXQgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXIgaXMgY2F0Y2hpbmcgaW5jb3JyZWN0IG1lc3NhZ2VzLgogICAgIHByb3Rv
Y29sRXJyb3JzIDogewogICAgICAgICAwIDogIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnZnJh
bWVJZCcgd2l0aCB0eXBlICdTdHJpbmcnIHdhcyBub3QgZm91bmQuIgogICAgICAgICAxIDogIlBy
b3RvY29sIEVycm9yOiBBcmd1bWVudCAndXJsJyB3aXRoIHR5cGUgJ1N0cmluZycgd2FzIG5vdCBm
b3VuZC4iCi0gICAgICAgIDIgOiAiUHJvdG9jb2wgRXJyb3I6IEFyZ3VtZW50ICdiYXNlNjRFbmNv
ZGUnIHdpdGggdHlwZSAnQm9vbGVhbicgd2FzIG5vdCBmb3VuZC4iCiAgICAgfQogfQogewpAQCAt
NjEsNyArNjAsNiBAQCBUZXN0cyB0aGF0IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyIGlzIGNh
dGNoaW5nIGluY29ycmVjdCBtZXNzYWdlcy4KICAgICBwcm90b2NvbEVycm9ycyA6IHsKICAgICAg
ICAgMCA6ICJQcm90b2NvbCBFcnJvcjogQXJndW1lbnQgJ2ZyYW1lSWQnIHdpdGggdHlwZSAnU3Ry
aW5nJyB3YXMgbm90IGZvdW5kLiIKICAgICAgICAgMSA6ICJQcm90b2NvbCBFcnJvcjogQXJndW1l
bnQgJ3VybCcgd2l0aCB0eXBlICdTdHJpbmcnIHdhcyBub3QgZm91bmQuIgotICAgICAgICAyIDog
IlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnYmFzZTY0RW5jb2RlJyB3aXRoIHR5cGUgJ0Jvb2xl
YW4nIHdhcyBub3QgZm91bmQuIgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmMThjMmUuLmJk
OGY0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNC0wMSAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaW50cm9kdWNlIHN1cHBvcnQg
b2YgJ29wdGlvbmFsJyBmbGFnIGZvciBjb21tYW5kIGFyZ3VtZW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3Njk4CisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1pZGw6
CisKIDIwMTEtMDQtMDEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IGQyMTM4NWIuLmU1YTA5Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtCkBAIC00OTQsNyArNDk0LDggQEAgc3ViIGdlbmVyYXRlQmFja2VuZEZ1bmN0aW9uCiAg
ICAgICAgICAgICBteSAkbmFtZSA9ICRwYXJhbWV0ZXItPm5hbWU7CiAgICAgICAgICAgICBteSAk
dHlwZSA9ICRwYXJhbWV0ZXItPnR5cGU7CiAgICAgICAgICAgICBteSAkdHlwZVN0cmluZyA9IGNh
bWVsQ2FzZSgkcGFyYW1ldGVyLT50eXBlKTsKLSAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAi
ICAgICAgICAiIC4gdHlwZVRyYWl0cygkdHlwZSwgInZhcmlhYmxlIikgLiAiICRuYW1lID0gZ2V0
JHR5cGVTdHJpbmcoYXJndW1lbnRzQ29udGFpbmVyLmdldCgpLCBcIiRuYW1lXCIsIHByb3RvY29s
RXJyb3JzLmdldCgpKTsiKTsKKyAgICAgICAgICAgIG15ICRvcHRpb25hbCA9ICRwYXJhbWV0ZXIt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJvcHRpb25hbCJ9ID8gInRydWUiIDogImZhbHNlIjsKKyAg
ICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgICAgICAiIC4gdHlwZVRyYWl0cygkdHlwZSwg
InZhcmlhYmxlIikgLiAiICRuYW1lID0gZ2V0JHR5cGVTdHJpbmcoYXJndW1lbnRzQ29udGFpbmVy
LmdldCgpLCBcIiRuYW1lXCIsICRvcHRpb25hbCwgcHJvdG9jb2xFcnJvcnMuZ2V0KCkpOyIpOwog
ICAgICAgICB9CiAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiIik7CiAgICAgICAgICRpbmRlbnQg
PSAiICAgICI7CkBAIC02MTgsMTAgKzYxOSwxMCBAQCBzdWIgZ2VuZXJhdGVBcmd1bWVudEdldHRl
cnMKICAgICBteSAkcmV0dXJuICA9IHR5cGVUcmFpdHMoJHR5cGUsICJyZXR1cm4iKSA/IHR5cGVU
cmFpdHMoJHR5cGUsICJyZXR1cm4iKSA6IHR5cGVUcmFpdHMoJHR5cGUsICJwYXJhbSIpOwogCiAg
ICAgbXkgJHR5cGVTdHJpbmcgPSBjYW1lbENhc2UoJHR5cGUpOwotICAgIHB1c2goQGJhY2tlbmRD
b25zdGFudERlY2xhcmF0aW9ucywgIiAgICAkcmV0dXJuIGdldCR0eXBlU3RyaW5nKEluc3BlY3Rv
ck9iamVjdCogb2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEluc3BlY3RvckFycmF5KiBwcm90
b2NvbEVycm9ycyk7Iik7CisgICAgcHVzaChAYmFja2VuZENvbnN0YW50RGVjbGFyYXRpb25zLCAi
ICAgICRyZXR1cm4gZ2V0JHR5cGVTdHJpbmcoSW5zcGVjdG9yT2JqZWN0KiBvYmplY3QsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBvcHRpb25hbCwgSW5zcGVjdG9yQXJyYXkqIHByb3RvY29sRXJy
b3JzKTsiKTsKICAgICBteSAkZ2V0dGVyQm9keSA9IDw8ICJFT0YiOwogCi0kcmV0dXJuIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyOjpnZXQkdHlwZVN0cmluZyhJbnNwZWN0b3JPYmplY3QqIG9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBJbnNwZWN0b3JBcnJheSogcHJvdG9jb2xFcnJvcnMp
CiskcmV0dXJuIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpnZXQkdHlwZVN0cmluZyhJbnNw
ZWN0b3JPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIG9wdGlvbmFsLCBJ
bnNwZWN0b3JBcnJheSogcHJvdG9jb2xFcnJvcnMpCiB7CiAgICAgQVNTRVJUKG9iamVjdCk7CiAg
ICAgQVNTRVJUKHByb3RvY29sRXJyb3JzKTsKQEAgLTYzMCwxMiArNjMxLDE0IEBAICRyZXR1cm4g
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmdldCR0eXBlU3RyaW5nKEluc3BlY3Rvck9iamVj
dCogb2JqZWN0LCBjb25zCiAgICAgSW5zcGVjdG9yT2JqZWN0Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSBvYmplY3QtPmVuZCgpOwogICAgIEluc3BlY3Rvck9iamVjdDo6Y29uc3RfaXRlcmF0b3IgdmFs
dWVJdGVyYXRvciA9IG9iamVjdC0+ZmluZChuYW1lKTsKIAotICAgIGlmICh2YWx1ZUl0ZXJhdG9y
ID09IGVuZCkKLSAgICAgICAgcHJvdG9jb2xFcnJvcnMtPnB1c2hTdHJpbmcoU3RyaW5nOjpmb3Jt
YXQoIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnXCVzJyB3aXRoIHR5cGUgJyRqc29uJyB3YXMg
bm90IGZvdW5kLiIsIG5hbWUudXRmOCgpLmRhdGEoKSkpOwotICAgIGVsc2UgewotICAgICAgICBp
ZiAoIXZhbHVlSXRlcmF0b3ItPnNlY29uZC0+YXMkanNvbigmdmFsdWUpKQotICAgICAgICAgICAg
cHJvdG9jb2xFcnJvcnMtPnB1c2hTdHJpbmcoU3RyaW5nOjpmb3JtYXQoIlByb3RvY29sIEVycm9y
OiBBcmd1bWVudCAnXCVzJyBoYXMgd3JvbmcgdHlwZS4gSXQgc2hvdWxkIGJlICckanNvbicuIiwg
bmFtZS51dGY4KCkuZGF0YSgpKSk7CisgICAgaWYgKHZhbHVlSXRlcmF0b3IgPT0gZW5kKSB7Cisg
ICAgICAgIGlmICghb3B0aW9uYWwpCisgICAgICAgICAgICBwcm90b2NvbEVycm9ycy0+cHVzaFN0
cmluZyhTdHJpbmc6OmZvcm1hdCgiUHJvdG9jb2wgRXJyb3I6IEFyZ3VtZW50ICdcJXMnIHdpdGgg
dHlwZSAnJGpzb24nIHdhcyBub3QgZm91bmQuIiwgbmFtZS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIHJldHVybiB2YWx1ZTsKICAgICB9CisKKyAgICBpZiAoIXZhbHVlSXRlcmF0b3ItPnNlY29u
ZC0+YXMkanNvbigmdmFsdWUpKQorICAgICAgICBwcm90b2NvbEVycm9ycy0+cHVzaFN0cmluZyhT
dHJpbmc6OmZvcm1hdCgiUHJvdG9jb2wgRXJyb3I6IEFyZ3VtZW50ICdcJXMnIGhhcyB3cm9uZyB0
eXBlLiBJdCBzaG91bGQgYmUgJyRqc29uJy4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkpKTsKICAgICBy
ZXR1cm4gdmFsdWU7CiB9CiBFT0YKQEAgLTc2MSw3ICs3NjQsMTMgQEAgc3ViIGNvbGxlY3RCYWNr
ZW5kSlNTdHViRnVuY3Rpb25zCiAKICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQGZ1bmN0aW9u
cykgewogICAgICAgICBteSAkbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAg
ICAgICBteSAkYXJndW1lbnROYW1lcyA9IGpvaW4oIiwiLCBtYXAoIlwiIiAuICRfLT5uYW1lIC4g
IlwiOiBcIiIgLiB0eXBlVHJhaXRzKCRfLT50eXBlLCAiSlNUeXBlIikgLiAiXCIiLCBncmVwKCRf
LT5kaXJlY3Rpb24gZXEgImluIiwgQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSkpOworICAgICAg
ICBteSAkYXJndW1lbnROYW1lcyA9IGpvaW4oCisgICAgICAgICAgICAiLCIsCisgICAgICAgICAg
ICBtYXAoIlwiIiAuICRfLT5uYW1lIC4gIlwiOiB7IgorICAgICAgICAgICAgICAgIC4gIlwib3B0
aW9uYWxcIjogIiAuICgkXy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Im9wdGlvbmFsIn0gPyAidHJ1
ZSAiIDogImZhbHNlIikgLiAiLCAiCisgICAgICAgICAgICAgICAgLiAiXCJ0eXBlXCI6IFwiIiAu
IHR5cGVUcmFpdHMoJF8tPnR5cGUsICJKU1R5cGUiKSAuICJcIiIKKyAgICAgICAgICAgICAgICAu
ICJ9IiwKKyAgICAgICAgICAgICAgICBncmVwKCRfLT5kaXJlY3Rpb24gZXEgImluIiwgQHskZnVu
Y3Rpb24tPnBhcmFtZXRlcnN9KSkpOwogICAgICAgICBwdXNoKEBiYWNrZW5kSlNTdHVicywgIiAg
ICB0aGlzLl9yZWdpc3RlckRlbGVnYXRlKCd7IiAuCiAgICAgICAgICAgICAiXCJpZFwiOiAwLCAi
IC4KICAgICAgICAgICAgICJcImRvbWFpblwiOiBcIiRkb21haW5cIiwgIiAuCkBAIC04MDcsMjcg
KzgxNiwyOSBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CiAg
ICAgICAgIHZhciByZXF1ZXN0ID0gSlNPTi5wYXJzZShhcmdzLnNoaWZ0KCkpOworICAgICAgICB2
YXIgY2FsbGJhY2sgPSAoYXJncy5sZW5ndGggJiYgdHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAx
XSA9PT0gImZ1bmN0aW9uIikgPyBhcmdzLnBvcCgpIDogMDsKIAogICAgICAgICBmb3IgKHZhciBr
ZXkgaW4gcmVxdWVzdC5hcmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9
PT0gMCkgeworICAgICAgICAgICAgdmFyIHR5cGVOYW1lID0gcmVxdWVzdC5hcmd1bWVudHNba2V5
XS50eXBlOworICAgICAgICAgICAgdmFyIG9wdGlvbmFsRmxhZyA9IHJlcXVlc3QuYXJndW1lbnRz
W2tleV0ub3B0aW9uYWw7CisKKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMCAmJiAh
b3B0aW9uYWxGbGFnKSB7CiAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wg
RXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgJyIgKyByZXF1ZXN0LmRvbWFp
biArICJBZ2VudC4iICsgcmVxdWVzdC5jb21tYW5kICsgIicgY2FsbC4gSXQgc2hvdWxkIGhhdmUg
dGhlIG5leHQgYXJndW1lbnRzICciICsgSlNPTi5zdHJpbmdpZnkocmVxdWVzdC5hcmd1bWVudHMp
ICsgIicuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgdmFyIHZhbHVlID0gYXJncy5zaGlmdCgpOwotICAgICAgICAgICAgaWYgKHJlcXVlc3Qu
YXJndW1lbnRzW2tleV0gJiYgdHlwZW9mIHZhbHVlICE9PSByZXF1ZXN0LmFyZ3VtZW50c1trZXld
KSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IEludmFs
aWQgdHlwZSBvZiBhcmd1bWVudCAnIiArIGtleSArICInIGZvciAnIiArIHJlcXVlc3QuZG9tYWlu
ICsgIkFnZW50LiIgKyByZXF1ZXN0LmNvbW1hbmQgKyAiJyBjYWxsLiBJdCBzaG91bGQgYmUgJyIg
KyByZXF1ZXN0LmFyZ3VtZW50c1trZXldICsgIicgYnV0IGl0IGlzICciICsgdHlwZW9mIHZhbHVl
ICsgIicuIik7CisgICAgICAgICAgICBpZiAodHlwZU5hbWUgJiYgdHlwZW9mIHZhbHVlICE9PSB0
eXBlTmFtZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9y
OiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJyIgKyBrZXkgKyAiJyBmb3IgJyIgKyByZXF1ZXN0
LmRvbWFpbiArICJBZ2VudC4iICsgcmVxdWVzdC5jb21tYW5kICsgIicgY2FsbC4gSXQgc2hvdWxk
IGJlICciICsgdHlwZU5hbWUgKyAiJyBidXQgaXQgaXMgJyIgKyB0eXBlb2YgdmFsdWUgKyAiJy4i
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBy
ZXF1ZXN0LmFyZ3VtZW50c1trZXldID0gdmFsdWU7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIg
Y2FsbGJhY2s7Ci0gICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkgewotICAgICAgICAgICAg
aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBhcmdzWzBdICE9PSAi
dW5kZWZpbmVkIikgeworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEgJiYgIWNhbGxiYWNr
KSB7CisgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gIT09ICJ1bmRlZmluZWQiKSB7CiAg
ICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IE9wdGlvbmFsIGNh
bGxiYWNrIGFyZ3VtZW50IGZvciAnIiArIHJlcXVlc3QuZG9tYWluICsgIkFnZW50LiIgKyByZXF1
ZXN0LmNvbW1hbmQgKyAiJyBjYWxsIHNob3VsZCBiZSBhIGZ1bmN0aW9uIGJ1dCBpdHMgdHlwZSBp
cyAnIiArIHR5cGVvZiBhcmdzWzBdICsgIicuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2sgPSBhcmdzWzBdOwogICAgICAgICB9
CiAgICAgICAgIHJlcXVlc3QuaWQgPSB0aGlzLl93cmFwKGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkg
e30pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNjQ1NGM5
MS4uYTIyMjE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
NzksNyArNzksNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJl
bG9hZFBhZ2UiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlnbm9yZUNhY2hlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlnbm9yZUNhY2hlIiwgInR5cGUiOiAiYm9vbGVh
biIsICJvcHRpb25hbCI6IHRydWUgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICB7CkBAIC0xMzksNyArMTM5LDcgQEAKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHByZXNzaW9uIiwg
InR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVj
dEdyb3VwIiwgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJi
b29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1
bHQiLCAiJHJlZiI6ICJSdW50aW1lT2JqZWN0IiB9CkBAIC02MzEsNiArNjMxLDcgQEAKICAgICAg
ICAgICAgICAgICAgICAgIm5vZGVOYW1lIjogeyAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiPGNvZGU+Tm9kZTwvY29kZT4ncyBub2RlTmFtZS4iIH0sCiAgICAgICAgICAgICAgICAg
ICAgICJsb2NhbE5hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICI8Y29k
ZT5Ob2RlPC9jb2RlPidzIGxvY2FsTmFtZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgICJub2Rl
VmFsdWUiOiB7ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT5Ob2RlPC9j
b2RlPidzIG5vZGVWYWx1ZS4iIH0sCisKICAgICAgICAgICAgICAgICAgICAgImNoaWxkTm9kZUNv
dW50IjogeyAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNoaWxkIGNvdW50IGZvciA8Y29kZT5Db250YWluZXI8L2NvZGU+IG5vZGVzLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgImNoaWxkcmVuIjogeyAidHlwZSI6ICJhcnJheSIsICJvcHRpb25h
bCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiIDogIkRPTU5vZGUiIH0sICJkZXNjcmlwdGlvbiI6
ICJDaGlsZCBub2RlcyBvZiB0aGlzIG5vZGUgd2hlbiByZXF1ZXN0ZWQgd2l0aCBjaGlsZHJlbi4i
IH0sCiAgICAgICAgICAgICAgICAgICAgICJhdHRyaWJ1dGVzIjogeyAidHlwZSI6ICJhcnJheSIs
ICJvcHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgInR5cGUiIDogInN0cmluZyIgfSwgImRlc2Ny
aXB0aW9uIjogIkF0dHJpYnV0ZXMgb2YgdGhlIDxjb2RlPkVsZW1lbnQ8L2NvZGU+IG5vZGUgaW4g
dGhlIGZvcm0gb2YgZmxhdCBhcnJheSA8Y29kZT5bbmFtZTEsIHZhbHVlMSwgbmFtZTIsIHZhbHVl
Ml08L2NvZGU+LiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5l
cmF0ZS1pbnNwZWN0b3ItaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWlu
c3BlY3Rvci1pZGwKaW5kZXggZjJmMGUzNS4uNmJkYzZiNSAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1pZGwKQEAgLTEwNiw3ICsxMDYsMTEgQEAg
Zm9yIGRvbWFpbiBpbiBqc29uX2FwaToKICAgICAgICAgICAgIHBhcmFtcyA9IFtdOwogICAgICAg
ICAgICAgaWYgKCJwYXJhbWV0ZXJzIiBpbiBjb21tYW5kKToKICAgICAgICAgICAgICAgICBmb3Ig
aW5fcGFyYW0gaW4gY29tbWFuZFsicGFyYW1ldGVycyJdOgotICAgICAgICAgICAgICAgICAgICBw
YXJhbXMuYXBwZW5kKCJpbiAlcyAlcyIgJSAocGFyYW1fdHlwZShpbl9wYXJhbSksIGluX3BhcmFt
WyJuYW1lIl0pKQorICAgICAgICAgICAgICAgICAgICBpZiAoIm9wdGlvbmFsIiBpbiBpbl9wYXJh
bSk6CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCA9ICIgW29wdGlvbmFsXSIKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
ID0gIiIKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgiaW4lcyAlcyAlcyIgJSAo
b3B0aW9uYWwsIHBhcmFtX3R5cGUoaW5fcGFyYW0pLCBpbl9wYXJhbVsibmFtZSJdKSkKICAgICAg
ICAgICAgIGlmICgicmV0dXJucyIgaW4gY29tbWFuZCk6CiAgICAgICAgICAgICAgICAgZm9yIG91
dF9wYXJhbSBpbiBjb21tYW5kWyJyZXR1cm5zIl06CiAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cy5hcHBlbmQoIm91dCAlcyAlcyIgJSAocGFyYW1fdHlwZShvdXRfcGFyYW0pLCBvdXRfcGFyYW1b
Im5hbWUiXSkpCg==
</data>
<flag name="review"
          id="80432"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87973</attachid>
            <date>2011-04-02 03:10:03 -0700</date>
            <delta_ts>2011-04-04 00:50:42 -0700</delta_ts>
            <desc>[patch] second version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>29213</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2Y2M4MDcxLi5mNjZjZjgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDQt
MDIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJv
ZHVjZSBzdXBwb3J0IG9mICdvcHRpb25hbCcgZmxhZyBmb3IgY29tbWFuZCBhcmd1bWVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzY5OAorCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVw
b3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQ6CisKKzIwMTEtMDQtMDEgIElseWEgVGlr
aG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBzdXBwb3J0
IG9mICdvcHRpb25hbCcgZmxhZyBmb3IgY29tbWFuZCBhcmd1bWVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzY5OAorCisgICAgICAgICogaW5z
cGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDQtMDEgIEFu
YW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDVmNGJmNjQu
LjkyZGJmZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50
aW1lLWFnZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50eHQKQEAgLTI5LDYgKzI5LDMzIEBAIHJlc3BvbnNl
OgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUnVudGltZUFnZW50LmV2YWx1YXRlKCJ0ZXN0T2JqZWN0IiwidGVzdCIpCisK
K3JlcXVlc3Q6Cit7CisgICAgaWQgOiA8bnVtYmVyPgorICAgIGRvbWFpbiA6ICJSdW50aW1lIgor
ICAgIGNvbW1hbmQgOiAiZXZhbHVhdGUiCisgICAgYXJndW1lbnRzIDogeworICAgICAgICBleHBy
ZXNzaW9uIDogInRlc3RPYmplY3QiCisgICAgICAgIG9iamVjdEdyb3VwIDogInRlc3QiCisgICAg
fQorfQorCityZXNwb25zZToKK3sKKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgorICAgIGJvZHkg
OiB7CisgICAgICAgIHJlc3VsdCA6IHsKKyAgICAgICAgICAgIG9iamVjdElkIDogPHN0cmluZz4K
KyAgICAgICAgICAgIGhhc0NoaWxkcmVuIDogdHJ1ZQorICAgICAgICAgICAgdHlwZSA6ICJvYmpl
Y3QiCisgICAgICAgICAgICBkZXNjcmlwdGlvbiA6ICJUZXN0T2JqZWN0IgorICAgICAgICB9Cisg
ICAgfQorfQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogUnVudGltZUFnZW50LmV2YWx1YXRlT24oPHN0cmluZz4sInRoaXMuYXNz
aWduZWRCeUV2YWx1YXRlT24gPSBcImV2YWx1YXRlT24gZnVuY3Rpb24gd29ya3MgZmluZVwiOyIp
CiAKIHJlcXVlc3Q6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wv
cnVudGltZS1hZ2VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRp
bWUtYWdlbnQuaHRtbAppbmRleCBiNjc5Yjc0Li43YjkzMmZjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwKQEAgLTE5LDYgKzE5LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHZhciBpbnZhbGlkT2JqZWN0SWQgPSB7aWQ6IC0x
LCBpbmplY3RlZFNjcmlwdElkOiByZXN1bHQub2JqZWN0SWQuaW5qZWN0ZWRTY3JpcHRJZH07CiAg
ICAgICAgIHZhciB0ZXN0U3VpdGUgPSBbCiAgICAgICAgICAgICBbIlJ1bnRpbWVBZ2VudCIsICJl
dmFsdWF0ZSIsICd0ZXN0T2JqZWN0JywgJ3Rlc3QnLCBmYWxzZV0sCisgICAgICAgICAgICBbIlJ1
bnRpbWVBZ2VudCIsICJldmFsdWF0ZSIsICd0ZXN0T2JqZWN0JywgJ3Rlc3QnXSwKICAgICAgICAg
ICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlT24iLCByZXN1bHQub2JqZWN0SWQsICd0aGlz
LmFzc2lnbmVkQnlFdmFsdWF0ZU9uID0gImV2YWx1YXRlT24gZnVuY3Rpb24gd29ya3MgZmluZSI7
J10sCiAgICAgICAgICAgICBbIlJ1bnRpbWVBZ2VudCIsICJzZXRQcm9wZXJ0eVZhbHVlIiwgcmVz
dWx0Lm9iamVjdElkLCAnYXNzaWduZWRCeVNldFByb3BlcnR5VmFsdWUnLCAndHJ1ZSddLAogICAg
ICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAic2V0UHJvcGVydHlWYWx1ZSIsIHJlc3VsdC5vYmpl
Y3RJZCwgJ3JlbW92ZWRCeVNldFByb3BlcnR5VmFsdWUnLCAnJ10sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dAppbmRleCBiNWE4
MzY2Li5mNzk0MzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQ
SS1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQt
QVBJLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUZXN0cyB0aGF0IEluc3Bl
Y3RvckJhY2tlbmRTdHViIGlzIGNhdGNoaW5nIGluY29ycmVjdCBhcmd1bWVudHMuCiAKIFByb3Rv
Y29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJ2VuYWJsZWQnIGZvciAnQ29uc29s
ZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkJyBjYWxsLiBJdCBzaG91bGQgYmUgJ2Jvb2xl
YW4nIGJ1dCBpdCBpcyAnbnVtYmVyJy4KLVByb3RvY29sIEVycm9yOiBJbnZhbGlkIG51bWJlciBv
ZiBhcmd1bWVudHMgZm9yICdDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNh
bGwuIEl0IHNob3VsZCBoYXZlIHRoZSBuZXh0IGFyZ3VtZW50cyAneyJlbmFibGVkIjoiYm9vbGVh
biJ9Jy4KK1Byb3RvY29sIEVycm9yOiBJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICdD
b25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwuIEl0IHNob3VsZCBoYXZl
IHRoZSBuZXh0IGFyZ3VtZW50cyAneyJlbmFibGVkIjp7Im9wdGlvbmFsIjpmYWxzZSwidHlwZSI6
ImJvb2xlYW4ifX0nLgogUHJvdG9jb2wgRXJyb3I6IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50
IGZvciAnQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkJyBjYWxsIHNob3VsZCBi
ZSBhIGZ1bmN0aW9uIGJ1dCBpdHMgdHlwZSBpcyAnc3RyaW5nJy4KIFByb3RvY29sIEVycm9yOiB0
aGUgbWVzc2FnZSBpcyBmb3Igbm9uLWV4aXN0aW5nIGRvbWFpbiAnd3JvbmdEb21haW4nCiBQcm90
b2NvbCBFcnJvcjogQXR0ZW1wdGVkIHRvIGRpc3BhdGNoIGFuIHVuaW1wbGVtZW50ZWQgbWV0aG9k
ICdJbnNwZWN0b3Iuc29tZXRoaW5nLXN0cmFuZ2UnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
ZXBvcnQtQVBJLWVycm9ycy5odG1sCmluZGV4IDZjYTA1ZGQuLmJkODQ0NjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sCkBAIC0xNSw2ICsxNSw5IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZCgpOwogICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgIm5v
dCBhIGZ1bmN0aW9uIik7CiAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVk
KGZhbHNlLCB1bmRlZmluZWQpOworICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgidHJ1ZSIsICJ0
ZXN0Iik7CisgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJ0cnVlIiwgInRlc3QiLCBmdW5jdGlv
bigpe30pOworICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgidHJ1ZSIsICJ0ZXN0IiwgdW5kZWZp
bmVkLCBmdW5jdGlvbigpe30pOwogICAgIEluc3BlY3RvckJhY2tlbmQuZGlzcGF0Y2goJ3sidHlw
ZSI6ICJldmVudCIsICJkb21haW4iOiAid3JvbmdEb21haW4iLCAiZXZlbnQiOiAic29tZXRoaW5n
LXN0cmFuZ2UiLCAiZGF0YSI6IHt9fScpOwogICAgIEluc3BlY3RvckJhY2tlbmQuZGlzcGF0Y2go
J3sidHlwZSI6ICJldmVudCIsICJkb21haW4iOiAiSW5zcGVjdG9yIiwgImV2ZW50IjogInNvbWV0
aGluZy1zdHJhbmdlIiwgImRhdGEiOiB7fX0nKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDI1
MjFlZWIuLjk5NmFmMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQt
cHJvdG9jb2wtZXJyb3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTUzLDcgKzUzLDYgQEAgVGVz
dHMgdGhhdCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciBpcyBjYXRjaGluZyBpbmNvcnJlY3Qg
bWVzc2FnZXMuCiAgICAgcHJvdG9jb2xFcnJvcnMgOiB7CiAgICAgICAgIDAgOiAiUHJvdG9jb2wg
RXJyb3I6IEFyZ3VtZW50ICdmcmFtZUlkJyB3aXRoIHR5cGUgJ1N0cmluZycgd2FzIG5vdCBmb3Vu
ZC4iCiAgICAgICAgIDEgOiAiUHJvdG9jb2wgRXJyb3I6IEFyZ3VtZW50ICd1cmwnIHdpdGggdHlw
ZSAnU3RyaW5nJyB3YXMgbm90IGZvdW5kLiIKLSAgICAgICAgMiA6ICJQcm90b2NvbCBFcnJvcjog
QXJndW1lbnQgJ2Jhc2U2NEVuY29kZScgd2l0aCB0eXBlICdCb29sZWFuJyB3YXMgbm90IGZvdW5k
LiIKICAgICB9CiB9CiB7CkBAIC02MSw3ICs2MCw2IEBAIFRlc3RzIHRoYXQgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXIgaXMgY2F0Y2hpbmcgaW5jb3JyZWN0IG1lc3NhZ2VzLgogICAgIHByb3Rv
Y29sRXJyb3JzIDogewogICAgICAgICAwIDogIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnZnJh
bWVJZCcgd2l0aCB0eXBlICdTdHJpbmcnIHdhcyBub3QgZm91bmQuIgogICAgICAgICAxIDogIlBy
b3RvY29sIEVycm9yOiBBcmd1bWVudCAndXJsJyB3aXRoIHR5cGUgJ1N0cmluZycgd2FzIG5vdCBm
b3VuZC4iCi0gICAgICAgIDIgOiAiUHJvdG9jb2wgRXJyb3I6IEFyZ3VtZW50ICdiYXNlNjRFbmNv
ZGUnIHdpdGggdHlwZSAnQm9vbGVhbicgd2FzIG5vdCBmb3VuZC4iCiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbAppbmRl
eCA2OWUzYWYzLi44MTExOTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVw
b3J0LXByb3RvY29sLWVycm9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBv
cnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKQEAgLTE2LDYgKzE2LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICd7ImlkIjozLCJkb21haW4iOiJOZXR3b3JrIiwiY29tbWFuZCI6ImdldFJlc291
cmNlQ29udGVudCIsImFyZ3VtZW50cyI6W119JywKICAgICAgICAgJ3siaWQiOjQsImRvbWFpbiI6
Ik5ldHdvcmsiLCJjb21tYW5kIjoiZ2V0UmVzb3VyY2VDb250ZW50IiwiYXJndW1lbnRzIjp7fX0n
LAogICAgICAgICAneyJpZCI6NSwiZG9tYWluIjoiTmV0d29yayIsImNvbW1hbmQiOiJnZXRSZXNv
dXJjZUNvbnRlbnQiLCJhcmd1bWVudHMiOnsiaWRlbnRpZmllciI6Im5vdCBhIG51bWJlciJ9fScs
CisgICAgICAgICd7ImlkIjo2LCJkb21haW4iOiJQYWdlIiwiY29tbWFuZCI6InJlbG9hZFBhZ2Ui
LCJhcmd1bWVudHMiOnt9fScsCiAgICAgXTsKICAgICB2YXIgbnVtYmVyT2ZSZXBvcnRzID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDY2YWM5MzUuLmMzNDM3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwz
MCBAQAogMjAxMS0wNC0wMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogaW50cm9kdWNlIHN1cHBvcnQgb2YgJ29wdGlvbmFsJyBmbGFnIGZvciBjb21tYW5k
IGFyZ3VtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU3Njk4CisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
bToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludEJ5VXJsKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBh
Z2VBZ2VudDo6cmVsb2FkUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmdldFJlc291cmNlQ29u
dGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZ2VuZXJh
dGUtaW5zcGVjdG9yLWlkbDoKKworMjAxMS0wNC0wMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNs
b0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiB3ZSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGluIGFuZCBv
dXQgYXJndW1lbnRzIG9mIGEgY29tbWFuZCB3aXRoIHNhbWUgbmFtZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5kZXggNzY2ZmM4
OS4uYzE3MjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucG0KQEAgLTQ5NCwxMyArNDk0LDE5IEBAIHN1YiBnZW5lcmF0ZUJhY2tl
bmRGdW5jdGlvbgogICAgICAgICAgICAgbXkgJG5hbWUgPSAkcGFyYW1ldGVyLT5uYW1lOwogICAg
ICAgICAgICAgbXkgJHR5cGUgPSAkcGFyYW1ldGVyLT50eXBlOwogICAgICAgICAgICAgbXkgJHR5
cGVTdHJpbmcgPSBjYW1lbENhc2UoJHBhcmFtZXRlci0+dHlwZSk7Ci0gICAgICAgICAgICBwdXNo
KEBmdW5jdGlvbiwgIiAgICAgICAgIiAuIHR5cGVUcmFpdHMoJHR5cGUsICJ2YXJpYWJsZSIpIC4g
IiBpbl8kbmFtZSA9IGdldCR0eXBlU3RyaW5nKGFyZ3VtZW50c0NvbnRhaW5lci5nZXQoKSwgXCIk
bmFtZVwiLCBwcm90b2NvbEVycm9ycy5nZXQoKSk7Iik7CisgICAgICAgICAgICBteSAkb3B0aW9u
YWwgPSAkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsib3B0aW9uYWwifSA/ICJ0cnVl
IiA6ICJmYWxzZSI7CisgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICAgICAgIiAuIHR5
cGVUcmFpdHMoJHR5cGUsICJ2YXJpYWJsZSIpIC4gIiBpbl8kbmFtZSA9IGdldCR0eXBlU3RyaW5n
KGFyZ3VtZW50c0NvbnRhaW5lci5nZXQoKSwgXCIkbmFtZVwiLCAkb3B0aW9uYWwsIHByb3RvY29s
RXJyb3JzLmdldCgpKTsiKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBmdW5jdGlvbiwgIiIp
OwogICAgICAgICAkaW5kZW50ID0gIiAgICAiOwogICAgIH0KIAotICAgIG15ICRhcmdzID0gam9p
bigiLCAiLCAoIiZlcnJvciIsIG1hcCgiaW5fIiAuICRfLT5uYW1lLCBAaW5BcmdzKSwgbWFwKCIm
b3V0XyIgLiAkXy0+bmFtZSwgQG91dEFyZ3MpKSk7CisKKyAgICBteSAkYXJncyA9IGpvaW4oIiwg
IiwKKyAgICAgICAgICAgICAgICAgICAgKCImZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAg
bWFwKCgkXy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Im9wdGlvbmFsIn0gPyAiJiIgOiAiIikgLiAi
aW5fIiAuICRfLT5uYW1lLCBAaW5BcmdzKSwKKyAgICAgICAgICAgICAgICAgICAgIG1hcCgiJm91
dF8iIC4gJF8tPm5hbWUsIEBvdXRBcmdzKSkpOworCiAgICAgcHVzaChAZnVuY3Rpb24sICIkaW5k
ZW50ICAgIGlmICghcHJvdG9jb2xFcnJvcnMtPmxlbmd0aCgpKSIpOwogICAgIHB1c2goQGZ1bmN0
aW9uLCAiJGluZGVudCAgICAgICAgJGRvbWFpbkFjY2Vzc29yLT4kZnVuY3Rpb25OYW1lKCRhcmdz
KTsiKTsKICAgICBpZiAoc2NhbGFyKEBpbkFyZ3MpKSB7CkBAIC02MTgsMTAgKzYyNCwxMCBAQCBz
dWIgZ2VuZXJhdGVBcmd1bWVudEdldHRlcnMKICAgICBteSAkcmV0dXJuICA9IHR5cGVUcmFpdHMo
JHR5cGUsICJyZXR1cm4iKSA/IHR5cGVUcmFpdHMoJHR5cGUsICJyZXR1cm4iKSA6IHR5cGVUcmFp
dHMoJHR5cGUsICJwYXJhbSIpOwogCiAgICAgbXkgJHR5cGVTdHJpbmcgPSBjYW1lbENhc2UoJHR5
cGUpOwotICAgIHB1c2goQGJhY2tlbmRDb25zdGFudERlY2xhcmF0aW9ucywgIiAgICAkcmV0dXJu
IGdldCR0eXBlU3RyaW5nKEluc3BlY3Rvck9iamVjdCogb2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUsIEluc3BlY3RvckFycmF5KiBwcm90b2NvbEVycm9ycyk7Iik7CisgICAgcHVzaChAYmFja2Vu
ZENvbnN0YW50RGVjbGFyYXRpb25zLCAiICAgICRyZXR1cm4gZ2V0JHR5cGVTdHJpbmcoSW5zcGVj
dG9yT2JqZWN0KiBvYmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBvcHRpb25hbCwgSW5z
cGVjdG9yQXJyYXkqIHByb3RvY29sRXJyb3JzKTsiKTsKICAgICBteSAkZ2V0dGVyQm9keSA9IDw8
ICJFT0YiOwogCi0kcmV0dXJuIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpnZXQkdHlwZVN0
cmluZyhJbnNwZWN0b3JPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBJbnNwZWN0
b3JBcnJheSogcHJvdG9jb2xFcnJvcnMpCiskcmV0dXJuIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyOjpnZXQkdHlwZVN0cmluZyhJbnNwZWN0b3JPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIG9wdGlvbmFsLCBJbnNwZWN0b3JBcnJheSogcHJvdG9jb2xFcnJvcnMpCiB7
CiAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgQVNTRVJUKHByb3RvY29sRXJyb3JzKTsKQEAgLTYz
MCwxMiArNjM2LDE0IEBAICRyZXR1cm4gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmdldCR0
eXBlU3RyaW5nKEluc3BlY3Rvck9iamVjdCogb2JqZWN0LCBjb25zCiAgICAgSW5zcGVjdG9yT2Jq
ZWN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBvYmplY3QtPmVuZCgpOwogICAgIEluc3BlY3Rvck9i
amVjdDo6Y29uc3RfaXRlcmF0b3IgdmFsdWVJdGVyYXRvciA9IG9iamVjdC0+ZmluZChuYW1lKTsK
IAotICAgIGlmICh2YWx1ZUl0ZXJhdG9yID09IGVuZCkKLSAgICAgICAgcHJvdG9jb2xFcnJvcnMt
PnB1c2hTdHJpbmcoU3RyaW5nOjpmb3JtYXQoIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnXCVz
JyB3aXRoIHR5cGUgJyRqc29uJyB3YXMgbm90IGZvdW5kLiIsIG5hbWUudXRmOCgpLmRhdGEoKSkp
OwotICAgIGVsc2UgewotICAgICAgICBpZiAoIXZhbHVlSXRlcmF0b3ItPnNlY29uZC0+YXMkanNv
bigmdmFsdWUpKQotICAgICAgICAgICAgcHJvdG9jb2xFcnJvcnMtPnB1c2hTdHJpbmcoU3RyaW5n
Ojpmb3JtYXQoIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnXCVzJyBoYXMgd3JvbmcgdHlwZS4g
SXQgc2hvdWxkIGJlICckanNvbicuIiwgbmFtZS51dGY4KCkuZGF0YSgpKSk7CisgICAgaWYgKHZh
bHVlSXRlcmF0b3IgPT0gZW5kKSB7CisgICAgICAgIGlmICghb3B0aW9uYWwpCisgICAgICAgICAg
ICBwcm90b2NvbEVycm9ycy0+cHVzaFN0cmluZyhTdHJpbmc6OmZvcm1hdCgiUHJvdG9jb2wgRXJy
b3I6IEFyZ3VtZW50ICdcJXMnIHdpdGggdHlwZSAnJGpzb24nIHdhcyBub3QgZm91bmQuIiwgbmFt
ZS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CisKKyAgICBp
ZiAoIXZhbHVlSXRlcmF0b3ItPnNlY29uZC0+YXMkanNvbigmdmFsdWUpKQorICAgICAgICBwcm90
b2NvbEVycm9ycy0+cHVzaFN0cmluZyhTdHJpbmc6OmZvcm1hdCgiUHJvdG9jb2wgRXJyb3I6IEFy
Z3VtZW50ICdcJXMnIGhhcyB3cm9uZyB0eXBlLiBJdCBzaG91bGQgYmUgJyRqc29uJy4iLCBuYW1l
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiBFT0YKQEAgLTc2MSw3ICs3
NjksMTMgQEAgc3ViIGNvbGxlY3RCYWNrZW5kSlNTdHViRnVuY3Rpb25zCiAKICAgICBmb3JlYWNo
IG15ICRmdW5jdGlvbiAoQGZ1bmN0aW9ucykgewogICAgICAgICBteSAkbmFtZSA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICBteSAkYXJndW1lbnROYW1lcyA9IGpvaW4oIiwi
LCBtYXAoIlwiIiAuICRfLT5uYW1lIC4gIlwiOiBcIiIgLiB0eXBlVHJhaXRzKCRfLT50eXBlLCAi
SlNUeXBlIikgLiAiXCIiLCBncmVwKCRfLT5kaXJlY3Rpb24gZXEgImluIiwgQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9KSkpOworICAgICAgICBteSAkYXJndW1lbnROYW1lcyA9IGpvaW4oCisgICAg
ICAgICAgICAiLCIsCisgICAgICAgICAgICBtYXAoIlwiIiAuICRfLT5uYW1lIC4gIlwiOiB7Igor
ICAgICAgICAgICAgICAgIC4gIlwib3B0aW9uYWxcIjogIiAuICgkXy0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Im9wdGlvbmFsIn0gPyAidHJ1ZSAiIDogImZhbHNlIikgLiAiLCAiCisgICAgICAgICAg
ICAgICAgLiAiXCJ0eXBlXCI6IFwiIiAuIHR5cGVUcmFpdHMoJF8tPnR5cGUsICJKU1R5cGUiKSAu
ICJcIiIKKyAgICAgICAgICAgICAgICAuICJ9IiwKKyAgICAgICAgICAgICAgICBncmVwKCRfLT5k
aXJlY3Rpb24gZXEgImluIiwgQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSkpOwogICAgICAgICBw
dXNoKEBiYWNrZW5kSlNTdHVicywgIiAgICB0aGlzLl9yZWdpc3RlckRlbGVnYXRlKCd7IiAuCiAg
ICAgICAgICAgICAiXCJpZFwiOiAwLCAiIC4KICAgICAgICAgICAgICJcImRvbWFpblwiOiBcIiRk
b21haW5cIiwgIiAuCkBAIC04MDcsMjcgKzgyMSwzNiBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5w
cm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3VtZW50cyk7CiAgICAgICAgIHZhciByZXF1ZXN0ID0gSlNPTi5wYXJzZShh
cmdzLnNoaWZ0KCkpOworICAgICAgICB2YXIgY2FsbGJhY2sgPSAoYXJncy5sZW5ndGggJiYgdHlw
ZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gImZ1bmN0aW9uIikgPyBhcmdzLnBvcCgpIDog
MDsKIAogICAgICAgICBmb3IgKHZhciBrZXkgaW4gcmVxdWVzdC5hcmd1bWVudHMpIHsKLSAgICAg
ICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkgeworICAgICAgICAgICAgdmFyIHR5cGVOYW1l
ID0gcmVxdWVzdC5hcmd1bWVudHNba2V5XS50eXBlOworICAgICAgICAgICAgdmFyIG9wdGlvbmFs
RmxhZyA9IHJlcXVlc3QuYXJndW1lbnRzW2tleV0ub3B0aW9uYWw7CisKKyAgICAgICAgICAgIGlm
IChhcmdzLmxlbmd0aCA9PT0gMCAmJiAhb3B0aW9uYWxGbGFnKSB7CiAgICAgICAgICAgICAgICAg
Y29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50
cyBmb3IgJyIgKyByZXF1ZXN0LmRvbWFpbiArICJBZ2VudC4iICsgcmVxdWVzdC5jb21tYW5kICsg
IicgY2FsbC4gSXQgc2hvdWxkIGhhdmUgdGhlIG5leHQgYXJndW1lbnRzICciICsgSlNPTi5zdHJp
bmdpZnkocmVxdWVzdC5hcmd1bWVudHMpICsgIicuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQorCiAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcmdzLnNoaWZ0KCk7
Ci0gICAgICAgICAgICBpZiAocmVxdWVzdC5hcmd1bWVudHNba2V5XSAmJiB0eXBlb2YgdmFsdWUg
IT09IHJlcXVlc3QuYXJndW1lbnRzW2tleV0pIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmVy
cm9yKCJQcm90b2NvbCBFcnJvcjogSW52YWxpZCB0eXBlIG9mIGFyZ3VtZW50ICciICsga2V5ICsg
IicgZm9yICciICsgcmVxdWVzdC5kb21haW4gKyAiQWdlbnQuIiArIHJlcXVlc3QuY29tbWFuZCAr
ICInIGNhbGwuIEl0IHNob3VsZCBiZSAnIiArIHJlcXVlc3QuYXJndW1lbnRzW2tleV0gKyAiJyBi
dXQgaXQgaXMgJyIgKyB0eXBlb2YgdmFsdWUgKyAiJy4iKTsKKyAgICAgICAgICAgIGlmIChvcHRp
b25hbEZsYWcgJiYgdHlwZW9mIHZhbHVlID09PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAg
ICAgIGRlbGV0ZSByZXF1ZXN0LmFyZ3VtZW50c1trZXldOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSB0
eXBlTmFtZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9y
OiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJyIgKyBrZXkgKyAiJyBmb3IgJyIgKyByZXF1ZXN0
LmRvbWFpbiArICJBZ2VudC4iICsgcmVxdWVzdC5jb21tYW5kICsgIicgY2FsbC4gSXQgc2hvdWxk
IGJlICciICsgdHlwZU5hbWUgKyAiJyBidXQgaXQgaXMgJyIgKyB0eXBlb2YgdmFsdWUgKyAiJy4i
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAg
IHJlcXVlc3QuYXJndW1lbnRzW2tleV0gPSB2YWx1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHZh
ciBjYWxsYmFjazsKLSAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7Ci0gICAgICAgICAg
ICBpZiAodHlwZW9mIGFyZ3NbMF0gIT09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIGFyZ3NbMF0gIT09
ICJ1bmRlZmluZWQiKSB7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMSAmJiAhY2FsbGJh
Y2spIHsKKyAgICAgICAgICAgIGlmICh0eXBlb2YgYXJnc1swXSAhPT0gInVuZGVmaW5lZCIpIHsK
ICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJQcm90b2NvbCBFcnJvcjogT3B0aW9uYWwg
Y2FsbGJhY2sgYXJndW1lbnQgZm9yICciICsgcmVxdWVzdC5kb21haW4gKyAiQWdlbnQuIiArIHJl
cXVlc3QuY29tbWFuZCArICInIGNhbGwgc2hvdWxkIGJlIGEgZnVuY3Rpb24gYnV0IGl0cyB0eXBl
IGlzICciICsgdHlwZW9mIGFyZ3NbMF0gKyAiJy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsYmFjayA9IGFyZ3NbMF07CiAgICAgICAg
IH0KICAgICAgICAgcmVxdWVzdC5pZCA9IHRoaXMuX3dyYXAoY2FsbGJhY2sgfHwgZnVuY3Rpb24o
KSB7fSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBiMDJj
YzJiLi42ZGEwYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBA
IC03OSw3ICs3OSw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAi
cmVsb2FkUGFnZSIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaWdub3JlQ2FjaGUiLCAidHlwZSI6ICJib29sZWFuIiB9Cisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWdub3JlQ2FjaGUiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgIHsKQEAgLTEzOSw3ICsxMzksNyBAQAogICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cHJlc3Npb24i
LCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Jq
ZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
c3VsdCIsICIkcmVmIjogIlJ1bnRpbWVPYmplY3QiIH0KQEAgLTYzMSw2ICs2MzEsNyBAQAogICAg
ICAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICI8Y29kZT5Ob2RlPC9jb2RlPidzIG5vZGVOYW1lLiIgfSwKICAgICAgICAgICAgICAg
ICAgICAgImxvY2FsTmFtZSI6IHsgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIjxj
b2RlPk5vZGU8L2NvZGU+J3MgbG9jYWxOYW1lLiIgfSwKICAgICAgICAgICAgICAgICAgICAgIm5v
ZGVWYWx1ZSI6IHsgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIjxjb2RlPk5vZGU8
L2NvZGU+J3Mgbm9kZVZhbHVlLiIgfSwKKwogICAgICAgICAgICAgICAgICAgICAiY2hpbGROb2Rl
Q291bnQiOiB7ICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiQ2hpbGQgY291bnQgZm9yIDxjb2RlPkNvbnRhaW5lcjwvY29kZT4gbm9kZXMuIiB9LAog
ICAgICAgICAgICAgICAgICAgICAiY2hpbGRyZW4iOiB7ICJ0eXBlIjogImFycmF5IiwgIm9wdGlv
bmFsIjogdHJ1ZSwgIml0ZW1zIjogeyAiJHJlZiIgOiAiRE9NTm9kZSIgfSwgImRlc2NyaXB0aW9u
IjogIkNoaWxkIG5vZGVzIG9mIHRoaXMgbm9kZSB3aGVuIHJlcXVlc3RlZCB3aXRoIGNoaWxkcmVu
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgImF0dHJpYnV0ZXMiOiB7ICJ0eXBlIjogImFycmF5
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1zIjogeyAidHlwZSIgOiAic3RyaW5nIiB9LCAiZGVz
Y3JpcHRpb24iOiAiQXR0cmlidXRlcyBvZiB0aGUgPGNvZGU+RWxlbWVudDwvY29kZT4gbm9kZSBp
biB0aGUgZm9ybSBvZiBmbGF0IGFycmF5IDxjb2RlPltuYW1lMSwgdmFsdWUxLCBuYW1lMiwgdmFs
dWUyXTwvY29kZT4uIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDA0MWU4M2UuLmRlN2MxZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTE0MSw4ICsxNDEsMTIgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjppbnNwZWN0ZWRV
UkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCiAgICAgbV9icmVha3BvaW50SWRUb0RlYnVnU2VydmVy
QnJlYWtwb2ludElkcy5jbGVhcigpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBjb25kaXRpb24sIGJv
b2wgZW5hYmxlZCwgU3RyaW5nKiBvdXRCcmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4qIGxvY2F0aW9ucykKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2lu
dEJ5VXJsKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBpbnQqIGNvbnN0IG9wdGlvbmFsQ29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0
IG9wdGlvbmFsQ29uZGl0aW9uLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbEVuYWJsZWQsIFN0
cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBsb2NhdGlvbnMp
CiB7CisgICAgaW50IGNvbHVtbk51bWJlciA9IG9wdGlvbmFsQ29sdW1uTnVtYmVyID8gKm9wdGlv
bmFsQ29sdW1uTnVtYmVyIDogMDsKKyAgICBTdHJpbmcgY29uZGl0aW9uID0gb3B0aW9uYWxDb25k
aXRpb24gPyAqb3B0aW9uYWxDb25kaXRpb24gOiAiIjsKKyAgICBib29sIGVuYWJsZWQgPSBvcHRp
b25hbEVuYWJsZWQgPyAqb3B0aW9uYWxFbmFibGVkIDogdHJ1ZTsKKwogICAgIFN0cmluZyBicmVh
a3BvaW50SWQgPSBtYWtlU3RyaW5nKHVybCwgIjoiLCBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVy
KSwgIjoiLCBTdHJpbmc6Om51bWJlcihjb2x1bW5OdW1iZXIpKTsKICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBicmVha3BvaW50c0Nvb2tpZSA9IG1faW5zcGVjdG9yU3RhdGUtPmdldE9iamVj
dChEZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cyk7CiAgICAgaWYgKGJy
ZWFrcG9pbnRzQ29va2llLT5maW5kKGJyZWFrcG9pbnRJZCkgIT0gYnJlYWtwb2ludHNDb29raWUt
PmVuZCgpKQpAQCAtMTcyLDggKzE3NiwxMiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLAogICAg
ICpvdXRCcmVha3BvaW50SWQgPSBicmVha3BvaW50SWQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291
cmNlSWQsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIGNv
bmRpdGlvbiwgYm9vbCBlbmFibGVkLCBTdHJpbmcqIG91dEJyZWFrcG9pbnRJZCwgaW50KiBhY3R1
YWxMaW5lTnVtYmVyLCBpbnQqIGFjdHVhbENvbHVtbk51bWJlcikKK3ZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291
cmNlSWQsIGludCBsaW5lTnVtYmVyLCBjb25zdCBpbnQqIGNvbnN0IG9wdGlvbmFsQ29sdW1uTnVt
YmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBjb25zdCBib29sKiBj
b25zdCBvcHRpb25hbEVuYWJsZWQsIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBpbnQqIGFjdHVh
bExpbmVOdW1iZXIsIGludCogYWN0dWFsQ29sdW1uTnVtYmVyKQogeworICAgIGludCBjb2x1bW5O
dW1iZXIgPSBvcHRpb25hbENvbHVtbk51bWJlciA/ICpvcHRpb25hbENvbHVtbk51bWJlciA6IDA7
CisgICAgU3RyaW5nIGNvbmRpdGlvbiA9IG9wdGlvbmFsQ29uZGl0aW9uID8gKm9wdGlvbmFsQ29u
ZGl0aW9uIDogIiI7CisgICAgYm9vbCBlbmFibGVkID0gb3B0aW9uYWxFbmFibGVkID8gKm9wdGlv
bmFsRW5hYmxlZCA6IHRydWU7CisKICAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gbWFrZVN0cmlu
Zyhzb3VyY2VJZCwgIjoiLCBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVyKSwgIjoiLCBTdHJpbmc6
Om51bWJlcihjb2x1bW5OdW1iZXIpKTsKICAgICBpZiAobV9icmVha3BvaW50SWRUb0RlYnVnU2Vy
dmVyQnJlYWtwb2ludElkcy5maW5kKGJyZWFrcG9pbnRJZCkgIT0gbV9icmVha3BvaW50SWRUb0Rl
YnVnU2VydmVyQnJlYWtwb2ludElkcy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzAwLDgg
KzMwOCwxMCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFBhdXNlT25FeGNlcHRp
b25zU3RhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLAogICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiSW50ZXJuYWwgZXJyb3IuIENvdWxkIG5vdCBjaGFuZ2UgcGF1c2Ugb24gZXhjZXB0aW9ucyBz
dGF0ZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxG
cmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQs
IGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9v
bCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQp
Cit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNv
bnN0IG9wdGlvbmFsSW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiogcmVzdWx0KQogeworICAgIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gb3B0aW9uYWxJ
bmNsdWRlQ29tbWFuZExpbmVBUEkgPyAqb3B0aW9uYWxJbmNsdWRlQ29tbWFuZExpbmVBUEkgOiBm
YWxzZTsKKwogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQoY2FsbEZyYW1lSWQpOwogICAg
IGlmICghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQogICAgICAgICBpbmplY3RlZFNjcmlw
dC5ldmFsdWF0ZU9uQ2FsbEZyYW1lKGVycm9yU3RyaW5nLCBjYWxsRnJhbWVJZCwgZXhwcmVzc2lv
biwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgcmVzdWx0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IGM4
Y2E4OGUuLjRlNmMwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAgICAgLy8gUGFy
dCBvZiB0aGUgcHJvdG9jb2wuCiAgICAgdm9pZCBzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0
cmluZyosIGJvb2wgYWN0aXZlKTsKIAotICAgIHZvaWQgc2V0QnJlYWtwb2ludEJ5VXJsKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVt
YmVyLCBjb25zdCBTdHJpbmcmIGNvbmRpdGlvbiwgYm9vbCBlbmFibGVkLCBTdHJpbmcqIGJyZWFr
cG9pbnRJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbG9jYXRpb25zKTsKLSAgICB2b2lkIHNl
dEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBjb25kaXRpb24sIGJvb2wg
ZW5hYmxlZCwgU3RyaW5nKiBicmVha3BvaW50SWQsIGludCogYWN0dWFsTGluZU51bWJlciwgaW50
KiBhY3R1YWxDb2x1bW5OdW1iZXIpOworICAgIHZvaWQgc2V0QnJlYWtwb2ludEJ5VXJsKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBjb25zdCBpbnQqIGNv
bnN0IG9wdGlvbmFsQ29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsQ29u
ZGl0aW9uLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbEVuYWJsZWQsIFN0cmluZyogYnJlYWtw
b2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBsb2NhdGlvbnMpOworICAgIHZvaWQgc2V0
QnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBpbnQqIGNvbnN0IG9wdGlvbmFsQ29sdW1uTnVtYmVyLCBjb25zdCBTdHJp
bmcqIGNvbnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbEVu
YWJsZWQsIFN0cmluZyogYnJlYWtwb2ludElkLCBpbnQqIGFjdHVhbExpbmVOdW1iZXIsIGludCog
YWN0dWFsQ29sdW1uTnVtYmVyKTsKICAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCk7CiAgICAgdm9pZCBjb250aW51ZVRvTG9j
YXRpb24oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBpbnQgbGluZU51bWJl
ciwgaW50IGNvbHVtbk51bWJlcik7CiAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc3RlcEludG8oRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIHN0ZXBPdXQoRXJyb3JTdHJpbmcq
KTsKICAgICB2b2lkIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoRXJyb3JTdHJpbmcqLCBpbnQg
cGF1c2VTdGF0ZSk7Ci0gICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25z
dCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7CisgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1l
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBv
cHRpb25hbEluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJl
c3VsdCk7CiAKICAgICBjbGFzcyBMaXN0ZW5lciB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBjZDdhZTcyLi44
NjA4NTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcApAQCAtOTMsOSArOTMsOSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVtb3Zl
QWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqKQogICAgIG1fc2NyaXB0c1Rv
RXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJl
bG9hZFBhZ2UoRXJyb3JTdHJpbmcqLCBib29sIGlnbm9yZUNhY2hlKQordm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlbG9hZFBhZ2UoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRp
b25hbElnbm9yZUNhY2hlKQogewotICAgIG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxv
YWRlcigpLT5yZWxvYWQoaWdub3JlQ2FjaGUpOworICAgIG1faW5zcGVjdGVkUGFnZS0+bWFpbkZy
YW1lKCktPmxvYWRlcigpLT5yZWxvYWQob3B0aW9uYWxJZ25vcmVDYWNoZSA/ICpvcHRpb25hbEln
bm9yZUNhY2hlIDogZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6b3Blbklu
SW5zcGVjdGVkV2luZG93KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggMWE3MWM0MS4u
MjMzYTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gUGFnZSBBUEkgZm9yIEluc3Bl
Y3RvckZyb250ZW5kCiAgICAgdm9pZCBhZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpOwogICAgIHZvaWQgcmVtb3ZlQWxsU2NyaXB0c1Rv
RXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIHJlbG9hZFBhZ2UoRXJyb3JT
dHJpbmcqLCBib29sIGlnbm9yZUNhY2hlKTsKKyAgICB2b2lkIHJlbG9hZFBhZ2UoRXJyb3JTdHJp
bmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElnbm9yZUNhY2hlKTsKICAgICB2b2lkIG9w
ZW5Jbkluc3BlY3RlZFdpbmRvdyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsKTsKICAg
ICB2b2lkIHNldFVzZXJBZ2VudE92ZXJyaWRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQpOwogICAgIHZvaWQgZ2V0Q29va2llcyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4qIGNvb2tpZXMsIFdURjo6U3RyaW5nKiBjb29raWVzU3RyaW5nKTsKQEAgLTky
LDQgKzkyLDQgQEAgcHJpdmF0ZToKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiAKLSNl
bmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JQYWdlQWdlbnRfaCkKKyNlbmRpZiAvLyAhZGVmaW5l
ZChJbnNwZWN0b3JQYWdlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggMjA4MzhkZi4uNzU3MTlkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcApAQCAtNDg5LDE0ICs0ODksMTQgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpn
ZXRDYWNoZWRSZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2IKICAgICAq
b2JqZWN0ID0gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUobV9wYWdlLT5tYWluRnJhbWUoKSk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcm
IHVybCwgYm9vbCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCkKK3ZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCog
Y29uc3Qgb3B0aW9uYWxCYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCkKIHsKICAgICBGcmFt
ZSogZnJhbWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOwogICAgIGlmICghZnJhbWUpIHsKICAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgaWYgKGJhc2U2NEVuY29kZSkKKyAgICBpZiAob3B0aW9uYWxC
YXNlNjRFbmNvZGUgPyAqb3B0aW9uYWxCYXNlNjRFbmNvZGUgOiBmYWxzZSkKICAgICAgICAgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50QmFzZTY0KGVycm9yU3RyaW5nLCBm
cmFtZSwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQpOwogICAgIGVsc2UKICAg
ICAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KGVycm9yU3RyaW5n
LCBmcmFtZSwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggYzkx
OTQ2OS4uZTNiOWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CiAg
ICAgdm9pZCBnZXRDYWNoZWRSZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiopOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBiYXNlNjRFbmNvZGUs
IFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29s
KiBjb25zdCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCk7CiAgICAgdm9pZCBzZXRFeHRy
YUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4pOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAppbmRleCAxODllY2YyLi4xZGQyYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcApAQCAtNTcsMTIgKzU3LDEy
IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgpCiB7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RH
cm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiByZXN1bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYg
b2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsSW5jbHVkZUNvbW1hbmRMaW5l
QVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQogewogICAgIFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1faW5zcGVjdGVkUGFnZS0+bWFp
bkZyYW1lKCkpOwogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0YXRlKTsKICAgICBpZiAo
IWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZXZh
bHVhdGUoZXJyb3JTdHJpbmcsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIHJlc3VsdCk7CisgICAgICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9y
U3RyaW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCwgb3B0aW9uYWxJbmNsdWRlQ29tbWFuZExp
bmVBUEkgPyAqb3B0aW9uYWxJbmNsdWRlQ29tbWFuZExpbmVBUEkgOiBmYWxzZSwgcmVzdWx0KTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlT24oRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggMzJiZmM3YS4uOWZl
ZjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfkluc3BlY3RvclJ1bnRpbWVB
Z2VudCgpOwogCiAgICAgLy8gUGFydCBvZiB0aGUgcHJvdG9jb2wuCi0gICAgdm9pZCBldmFsdWF0
ZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBv
YmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+KiByZXN1bHQpOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wq
IGNvbnN0IG9wdGlvbmFsSW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKICAgICB2b2lkIGV2YWx1YXRlT24oRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiByZXN1bHQpOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHks
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLWlkbCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsCmluZGV4IGYyZjBlMzUuLjZiZGM2YjUgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsCkBA
IC0xMDYsNyArMTA2LDExIEBAIGZvciBkb21haW4gaW4ganNvbl9hcGk6CiAgICAgICAgICAgICBw
YXJhbXMgPSBbXTsKICAgICAgICAgICAgIGlmICgicGFyYW1ldGVycyIgaW4gY29tbWFuZCk6CiAg
ICAgICAgICAgICAgICAgZm9yIGluX3BhcmFtIGluIGNvbW1hbmRbInBhcmFtZXRlcnMiXToKLSAg
ICAgICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgiaW4gJXMgJXMiICUgKHBhcmFtX3R5cGUo
aW5fcGFyYW0pLCBpbl9wYXJhbVsibmFtZSJdKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKCJv
cHRpb25hbCIgaW4gaW5fcGFyYW0pOgorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
PSAiIFtvcHRpb25hbF0iCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCA9ICIiCisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBl
bmQoImluJXMgJXMgJXMiICUgKG9wdGlvbmFsLCBwYXJhbV90eXBlKGluX3BhcmFtKSwgaW5fcGFy
YW1bIm5hbWUiXSkpCiAgICAgICAgICAgICBpZiAoInJldHVybnMiIGluIGNvbW1hbmQpOgogICAg
ICAgICAgICAgICAgIGZvciBvdXRfcGFyYW0gaW4gY29tbWFuZFsicmV0dXJucyJdOgogICAgICAg
ICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCJvdXQgJXMgJXMiICUgKHBhcmFtX3R5cGUob3V0
X3BhcmFtKSwgb3V0X3BhcmFtWyJuYW1lIl0pKQo=
</data>
<flag name="review"
          id="80437"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>