<?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>52443</bug_id>
          
          <creation_ts>2011-01-14 05:31:52 -0800</creation_ts>
          <short_desc>Web Inspector: include source position in debugger call frames</short_desc>
          <delta_ts>2011-01-18 03:05:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334258</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-14 05:31:52 -0800</bug_when>
    <thetext>Web Inspector: include source position in debugger call frames. This is needed for debugging beautified scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334259</commentid>
    <comment_count>1</comment_count>
      <attachid>78931</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-14 05:32:36 -0800</bug_when>
    <thetext>Created attachment 78931
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334260</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-14 05:34:55 -0800</bug_when>
    <thetext>Attachment 78931 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/js/ScriptDebugServer.h:121:  The parameter name &quot;debuggerCallFrame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/js/ScriptDebugServer.h:122:  The parameter name &quot;debuggerCallFrame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334268</commentid>
    <comment_count>3</comment_count>
      <attachid>78935</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-14 06:03:00 -0800</bug_when>
    <thetext>Created attachment 78935
Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334275</commentid>
    <comment_count>4</comment_count>
      <attachid>78935</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-14 06:15:06 -0800</bug_when>
    <thetext>Comment on attachment 78935
Fix style.

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

&gt; Source/WebCore/bindings/js/ScriptDebugServer.h:157
&gt; +    ScriptsMap m_scripts;

This map is never populated nor cleared, is it intentional? r- for this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335232</commentid>
    <comment_count>5</comment_count>
      <attachid>79148</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-17 03:38:10 -0800</bug_when>
    <thetext>Created attachment 79148
Use line:column instead of source position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335233</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-17 03:39:59 -0800</bug_when>
    <thetext>Attachment 79148 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/js/JavaScriptCallFrame.h:78:  The parameter name &quot;textPosition&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335313</commentid>
    <comment_count>7</comment_count>
      <attachid>79170</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-17 07:27:14 -0800</bug_when>
    <thetext>Created attachment 79170
Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335734</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-01-18 03:05:26 -0800</bug_when>
    <thetext>Committed r76013: &lt;http://trac.webkit.org/changeset/76013&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78931</attachid>
            <date>2011-01-14 05:32:36 -0800</date>
            <delta_ts>2011-01-14 06:03:00 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15571</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NjRjNTNjLi5kZmNiZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDEtMTQgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdjJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGluY2x1ZGUgc291cmNlIHBvc2l0aW9uIGluIGRlYnVnZ2VyIGNhbGwgZnJhbWVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0NDMK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6SmF2YVNjcmlwdENhbGxGcmFtZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okph
dmFTY3JpcHRDYWxsRnJhbWU6OnBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkphdmFTY3Jp
cHRDYWxsRnJhbWU6OnVwZGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNyZWF0ZUNh
bGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdT
ZXJ2ZXI6OnVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhbGxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHREZWJ1Z1NlcnZlcjo6YXRTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVi
dWdTZXJ2ZXI6OnJldHVybkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2Vy
dmVyOjpleGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6Ondp
bGxFeGVjdXRlUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6
ZGlkRXhlY3V0ZVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OmRpZFJlYWNoQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6bGluZU51bWJlclRvUG9zaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanM6Cisg
ICAgICAgICgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6cG9zaXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICgpOgorICAgICAgICAqIGlu
c3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbDoKKwogMjAxMS0wMS0xMyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5j
cHAKaW5kZXggYzI4MGQ5OC4uYThlNjVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKQEAgLTQyLDEwICs0MiwxMSBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1KYXZhU2NyaXB0
Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBk
ZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIs
IGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZSkKK0phdmFTY3JpcHRDYWxsRnJhbWU6OkphdmFT
Y3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1l
LCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNl
SUQsIGludCBwb3NpdGlvbiwgaW50IGxpbmUpCiAgICAgOiBtX2RlYnVnZ2VyQ2FsbEZyYW1lKGRl
YnVnZ2VyQ2FsbEZyYW1lKQogICAgICwgbV9jYWxsZXIoY2FsbGVyKQogICAgICwgbV9zb3VyY2VJ
RChzb3VyY2VJRCkKKyAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2xpbmUobGlu
ZSkKICAgICAsIG1faXNWYWxpZCh0cnVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IGMyM2E0M2QuLjk2MTdkOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKQEAg
LTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKYXZhU2NyaXB0Q2Fs
bEZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8SmF2YVNjcmlwdENhbGxGcmFtZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShjb25z
dCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxK
YXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZSkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUoY29uc3Qg
SlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIFBhc3NSZWZQdHI8SmF2
YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHBvc2l0aW9u
LCBpbnQgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSmF2YVNjcmlw
dENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSwgY2FsbGVyLCBzb3VyY2VJRCwgbGluZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdnZXJD
YWxsRnJhbWUsIGNhbGxlciwgc291cmNlSUQsIHBvc2l0aW9uLCBsaW5lKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCkKQEAgLTU0LDEwICs1NCwxMyBAQCBwdWJsaWM6CiAgICAgSmF2
YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7CiAKICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlSUQ7IH0KKyAgICBpbnQgcG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uOyB9CiAgICAgaW50IGxpbmUoKSBjb25zdCB7IHJldHVybiBtX2xpbmU7
IH0KLSAgICB2b2lkIHVwZGF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dl
ckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lKQorCisgICAgdm9pZCB1cGRh
dGUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0
cl90IHNvdXJjZUlELCBpbnQgcG9zaXRpb24sIGludCBsaW5lKQogICAgIHsKICAgICAgICAgbV9k
ZWJ1Z2dlckNhbGxGcmFtZSA9IGRlYnVnZ2VyQ2FsbEZyYW1lOworICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9zaXRpb247CiAgICAgICAgIG1fbGluZSA9IGxpbmU7CiAgICAgICAgIG1fc291cmNlSUQg
PSBzb3VyY2VJRDsKICAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKQEAgLTcyLDExICs3NSwxMiBA
QCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKGNvbnN0IEpTQzo6VVN0cmluZyYg
c2NyaXB0LCBKU0M6OkpTVmFsdWUmIGV4Y2VwdGlvbikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgot
ICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIFBh
c3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwg
aW50IGxpbmUpOworICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNh
bGxGcmFtZSYsIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJf
dCBzb3VyY2VJRCwgaW50IHBvc2l0aW9uLCBpbnQgbGluZSk7CiAKICAgICBKU0M6OkRlYnVnZ2Vy
Q2FsbEZyYW1lIG1fZGVidWdnZXJDYWxsRnJhbWU7CiAgICAgUmVmUHRyPEphdmFTY3JpcHRDYWxs
RnJhbWU+IG1fY2FsbGVyOwogICAgIGludHB0cl90IG1fc291cmNlSUQ7CisgICAgaW50IG1fcG9z
aXRpb247CiAgICAgaW50IG1fbGluZTsKICAgICBib29sIG1faXNWYWxpZDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggMTBk
ZjIyMy4uMWVmZmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dERlYnVnU2VydmVyLmNwcApAQCAtNDQxLDYgKzQ0MSwyNCBAQCB2b2lkIFNjcmlwdERlYnVnU2Vy
dmVyOjpzZXRKYXZhU2NyaXB0UGF1c2VkKEZyYW1lVmlldyogdmlldywgYm9vbCBwYXVzZWQpCiAg
ICAgfQogfQogCit2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpjcmVhdGVDYWxsRnJhbWVBbmRQYXVz
ZUlmTmVlZGVkKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50
cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQoreworICAgIGludCBwb3NpdGlvbiA9IGxp
bmVOdW1iZXJUb1Bvc2l0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKKyAgICBtX2N1cnJlbnRD
YWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUs
IG1fY3VycmVudENhbGxGcmFtZSwgc291cmNlSUQsIHBvc2l0aW9uLCBsaW5lTnVtYmVyKTsKKyAg
ICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpKTsKK30KKwordm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6dXBkYXRlQ2FsbEZyYW1lQW5k
UGF1c2VJZk5lZWRlZChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUs
IGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZU51bWJlcikKK3sKKyAgICBBU1NFUlQobV9jdXJy
ZW50Q2FsbEZyYW1lKTsKKyAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaW50IHBvc2l0aW9uID0gbGluZU51bWJlclRvUG9zaXRpb24oc291cmNlSUQs
IGxpbmVOdW1iZXIpOworICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2Fs
bEZyYW1lLCBzb3VyY2VJRCwgcG9zaXRpb24sIGxpbmVOdW1iZXIpOworICAgIHBhdXNlSWZOZWVk
ZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworfQor
CiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpwYXVzZUlmTmVlZGVkKFBhZ2UqIHBhZ2UpCiB7CiAg
ICAgaWYgKG1fcGF1c2VkKQpAQCAtNDgxLDI0ICs0OTksMTQgQEAgdm9pZCBTY3JpcHREZWJ1Z1Nl
cnZlcjo6cGF1c2VJZk5lZWRlZChQYWdlKiBwYWdlKQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVy
OjpjYWxsRXZlbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBp
bnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291
cmNlSUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2Fs
bEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIGlmICghbV9wYXVzZWQpCisgICAg
ICAgIGNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNv
dXJjZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6YXRTdGF0
ZW1lbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRwdHJf
dCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1f
Y3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZy
YW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAg
ICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpKTsKKyAgICBpZiAoIW1fcGF1c2VkKQorICAgICAgICB1cGRhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiB9
CiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJldHVybkV2ZW50KGNvbnN0IERlYnVnZ2VyQ2Fs
bEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVt
YmVyKQpAQCAtNTA2LDEyICs1MTQsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZXR1cm5F
dmVudChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsCiAgICAgaWYg
KG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZy
YW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlE
LCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFt
ZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlm
TmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiAKICAgICAv
LyBkZXRhY2ggbWF5IGhhdmUgYmVlbiBjYWxsZWQgZHVyaW5nIHBhdXNlSWZOZWVkZWQKICAgICBp
ZiAoIW1fY3VycmVudENhbGxGcmFtZSkKQEAgLTUyOCwyNCArNTMxLDE2IEBAIHZvaWQgU2NyaXB0
RGVidWdTZXJ2ZXI6OmV4Y2VwdGlvbihjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJD
YWxsRnJhbWUsIGluCiAgICAgaWYgKG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBB
U1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkK
LSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBQ
YXVzZU9uQWxsRXhjZXB0aW9ucyB8fCAobV9wYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFBhdXNl
T25VbmNhdWdodEV4Y2VwdGlvbnMgJiYgIWhhc0hhbmRsZXIpKQogICAgICAgICBtX3BhdXNlT25O
ZXh0U3RhdGVtZW50ID0gdHJ1ZTsKIAotICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRl
YnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRl
ZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAg
dXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNl
SUQsIGxpbmVOdW1iZXIpOwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjp3aWxsRXhlY3V0
ZVByb2dyYW0oY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRw
dHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZy
YW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291cmNl
SUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZy
YW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIGlmICghbV9wYXVzZWQpCisgICAgICAg
IGNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJj
ZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkRXhlY3V0
ZVByb2dyYW0oY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRw
dHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCkBAIC01NTMsMTIgKzU0OCw3IEBAIHZvaWQg
U2NyaXB0RGVidWdTZXJ2ZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKGNvbnN0IERlYnVnZ2VyQ2FsbEZy
YW1lJiBkZWJ1Z2dlckNhbGxGCiAgICAgaWYgKG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxG
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUo
ZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVl
ZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAg
ICB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3Vy
Y2VJRCwgbGluZU51bWJlcik7CiAKICAgICAvLyBUcmVhdCBzdGVwcGluZyBvdmVyIHRoZSBlbmQg
b2YgYSBwcm9ncmFtIGxpa2Ugc3RlcHBpbmcgb3V0LgogICAgIGlmIChtX2N1cnJlbnRDYWxsRnJh
bWUgPT0gbV9wYXVzZU9uQ2FsbEZyYW1lKQpAQCAtNTcxLDEzICs1NjEsOCBAQCB2b2lkIFNjcmlw
dERlYnVnU2VydmVyOjpkaWRSZWFjaEJyZWFrcG9pbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUm
IGRlYnVnZ2VyQ2FsbAogICAgIGlmIChtX3BhdXNlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
QVNTRVJUKG1fY3VycmVudENhbGxGcmFtZSk7Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIG1fcGF1c2VPbk5leHRTdGF0ZW1lbnQgPSB0cnVlOwot
ICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJ
RCwgbGluZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJh
bWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAgdXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJ
Zk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwogfQogCiB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKQpAQCAt
NjEzLDYgKzU5OCwyOSBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMaXN0ZW5l
cihQYWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldERlYnVnZ2VyKDApOwogfQogCitpbnQgU2NyaXB0
RGVidWdTZXJ2ZXI6OmxpbmVOdW1iZXJUb1Bvc2l0aW9uKGludHB0cl90IHNvdXJjZUlELCBpbnQg
bGluZU51bWJlcikKK3sKKyAgICBTY3JpcHRzTWFwOjppdGVyYXRvciBpdCA9IG1fc2NyaXB0cy5m
aW5kKHNvdXJjZUlEKTsKKyAgICBpZiAoaXQgPT0gbV9zY3JpcHRzLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBTY3JpcHREYXRhJiBzY3JpcHREYXRhID0gaXQtPnNlY29uZDsKKyAgICBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlID0gc2NyaXB0RGF0YS5maXJzdDsKKyAgICBWZWN0
b3I8aW50PiYgbGluZUVuZGluZ3MgPSBzY3JpcHREYXRhLnNlY29uZDsKKyAgICBpZiAobGluZUVu
ZGluZ3MuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBzb3VyY2UgPSBzb3VyY2VD
b2RlLmRhdGEoKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHNvdXJjZUNvZGUubGVuZ3RoKCk7Cisg
ICAgICAgIGxpbmVFbmRpbmdzLmFwcGVuZCgtMSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gPT0gJ1xuJykKKyAg
ICAgICAgICAgICAgICBsaW5lRW5kaW5ncy5hcHBlbmQoaSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaW50IHNjcmlwdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyIC0gc291cmNlQ29kZS5maXJzdExp
bmUoKTsKKyAgICBpZiAoc2NyaXB0TGluZU51bWJlciA+PSAwICYmIHNjcmlwdExpbmVOdW1iZXIg
PCBzdGF0aWNfY2FzdDxpbnQ+KGxpbmVFbmRpbmdzLnNpemUoKSkpCisgICAgICAgIHJldHVybiBs
aW5lRW5kaW5nc1tzY3JpcHRMaW5lTnVtYmVyXSArIDE7CisgICAgcmV0dXJuIDA7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgK
aW5kZXggODFjZDlhYy4uOTFiODI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UoY29uc3QgTGlzdGVuZXJTZXQmIGxpc3RlbmVycywg
Y29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2UsIGVudW0gU2NyaXB0V29ybGRUeXBlKTsKICAg
ICB2b2lkIGRpc3BhdGNoRmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBMaXN0ZW5lclNldCYgbGlz
dGVuZXJzLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZSwgaW50IGVycm9yTGluZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCBjcmVhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpOworICAgIHZvaWQgdXBkYXRl
Q2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBk
ZWJ1Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKTsKICAg
ICB2b2lkIHBhdXNlSWZOZWVkZWQoUGFnZSopOwogCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC0xMzQsOCArMTM2LDEyIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRBZGRMaXN0ZW5lcihQYWdlKik7CiAgICAgdm9pZCBkaWRSZW1vdmVMaXN0ZW5lcihQ
YWdlKik7CiAKKyAgICBpbnQgbGluZU51bWJlclRvUG9zaXRpb24oaW50cHRyX3Qgc291cmNlSUQs
IGludCBsaW5lTnVtYmVyKTsKKwogICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlKiwgTGlzdGVuZXJT
ZXQqPiBQYWdlTGlzdGVuZXJzTWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnRwdHJfdCwgU291
cmNlQnJlYWtwb2ludHM+IEJyZWFrcG9pbnRzTWFwOworICAgIHR5cGVkZWYgc3RkOjpwYWlyPEpT
Qzo6U291cmNlQ29kZSwgVmVjdG9yPGludD4gPiBTY3JpcHREYXRhOworICAgIHR5cGVkZWYgSGFz
aE1hcDxpbnRwdHJfdCwgU2NyaXB0RGF0YT4gU2NyaXB0c01hcDsKIAogICAgIFBhZ2VMaXN0ZW5l
cnNNYXAgbV9wYWdlTGlzdGVuZXJzTWFwOwogICAgIGJvb2wgbV9jYWxsaW5nTGlzdGVuZXJzOwpA
QCAtMTQ4LDYgKzE1NCw3IEBAIHByaXZhdGU6CiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogbV9w
YXVzZU9uQ2FsbEZyYW1lOwogICAgIFJlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBtX2N1cnJl
bnRDYWxsRnJhbWU7CiAgICAgQnJlYWtwb2ludHNNYXAgbV9icmVha3BvaW50czsKKyAgICBTY3Jp
cHRzTWFwIG1fc2NyaXB0czsKICAgICBUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4gbV9yZWNvbXBp
bGVUaW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rl
YnVnZ2VyU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3Jp
cHQuanMKaW5kZXggNTBmNzkxZC4uNGZjNjQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanMKQEAgLTI1MCw2ICsyNTAsNyBAQCBEZWJ1Z2dlclNjcmlw
dC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxl
ckZyYW1lKQogICAgIHJldHVybiB7CiAgICAgICAgICJzb3VyY2VJRCI6IHNvdXJjZUlELAogICAg
ICAgICAibGluZSI6IGxpbmUsCisgICAgICAgICJwb3NpdGlvbiI6IGZyYW1lTWlycm9yLnNvdXJj
ZVBvc2l0aW9uKCksCiAgICAgICAgICJmdW5jdGlvbk5hbWUiOiBmdW5jdGlvbk5hbWUsCiAgICAg
ICAgICJ0eXBlIjogImZ1bmN0aW9uIiwKICAgICAgICAgInRoaXNPYmplY3QiOiB0aGlzT2JqZWN0
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcAppbmRleCAyMGJmMzc4Li40YmI3MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApAQCAtODAsNiArODAsMTYgQEAgaW50
IEphdmFTY3JpcHRDYWxsRnJhbWU6OmxpbmUoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitp
bnQgSmF2YVNjcmlwdENhbGxGcmFtZTo6cG9zaXRpb24oKSBjb25zdAoreworICAgIHY4OjpIYW5k
bGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KG1fZGVidWdnZXJDb250ZXh0LmdldCgpKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVz
dWx0ID0gbV9jYWxsRnJhbWUuZ2V0KCktPkdldCh2OFN0cmluZygicG9zaXRpb24iKSk7CisgICAg
aWYgKHJlc3VsdC0+SXNJbnQzMigpKQorICAgICAgICByZXR1cm4gcmVzdWx0LT5JbnQzMlZhbHVl
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIFN0cmluZyBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpmdW5j
dGlvbk5hbWUoKSBjb25zdAogewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRl
eCA5NWEwNTEwLi5lNTcyOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
SmF2YVNjcmlwdENhbGxGcmFtZS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIGlu
dCBzb3VyY2VJRCgpIGNvbnN0OwogICAgIGludCBsaW5lKCkgY29uc3Q7CisgICAgaW50IHBvc2l0
aW9uKCkgY29uc3Q7CiAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSgpIGNvbnN0OwogICAgIAogICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzY29wZUNoYWluKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggOTA3OTdmYi4u
ZjcyMDQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFNvdXJjZS5qcwpAQCAtNTQzLDYgKzU0Myw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVBy
b3h5ID0gZnVuY3Rpb24oaWQsIGNhbGxGcmFtZSkKICAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9ICh0
aGlzLnR5cGUgPT09ICJmdW5jdGlvbiIgPyBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIDogIiIpOwog
ICAgIHRoaXMuc291cmNlSUQgPSBjYWxsRnJhbWUuc291cmNlSUQ7CiAgICAgdGhpcy5saW5lID0g
Y2FsbEZyYW1lLmxpbmU7CisgICAgdGhpcy5wb3NpdGlvbiA9IGNhbGxGcmFtZS5wb3NpdGlvbjsK
ICAgICB0aGlzLnNjb3BlQ2hhaW4gPSB0aGlzLl93cmFwU2NvcGVDaGFpbihjYWxsRnJhbWUpOwog
ICAgIHRoaXMud29ybGRJZCA9IGluamVjdGVkU2NyaXB0SWQ7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKaW5kZXggMjI1MDU5ZC4uYzRk
NGJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxs
RnJhbWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZy
YW1lLmlkbApAQCAtNDIsNiArNDIsNyBAQCBtb2R1bGUgaW5zcGVjdG9yIHsKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSmF2YVNjcmlwdENhbGxGcmFtZSBjYWxsZXI7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNvdXJjZUlEOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyBwb3NpdGlvbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGluZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIEFycmF5IHNjb3BlQ2hh
aW47CiAgICAgICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IHNjb3BlVHlwZShpbiBpbnQgc2Nv
cGVJbmRleCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78935</attachid>
            <date>2011-01-14 06:03:00 -0800</date>
            <delta_ts>2011-01-17 03:38:10 -0800</delta_ts>
            <desc>Fix style.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15535</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NjRjNTNjLi5kZmNiZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDEtMTQgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdjJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGluY2x1ZGUgc291cmNlIHBvc2l0aW9uIGluIGRlYnVnZ2VyIGNhbGwgZnJhbWVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0NDMK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6SmF2YVNjcmlwdENhbGxGcmFtZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okph
dmFTY3JpcHRDYWxsRnJhbWU6OnBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkphdmFTY3Jp
cHRDYWxsRnJhbWU6OnVwZGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNyZWF0ZUNh
bGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdT
ZXJ2ZXI6OnVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhbGxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHREZWJ1Z1NlcnZlcjo6YXRTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVi
dWdTZXJ2ZXI6OnJldHVybkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2Vy
dmVyOjpleGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6Ondp
bGxFeGVjdXRlUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6
ZGlkRXhlY3V0ZVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OmRpZFJlYWNoQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6bGluZU51bWJlclRvUG9zaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanM6Cisg
ICAgICAgICgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6cG9zaXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICgpOgorICAgICAgICAqIGlu
c3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbDoKKwogMjAxMS0wMS0xMyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5j
cHAKaW5kZXggYzI4MGQ5OC4uYThlNjVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKQEAgLTQyLDEwICs0MiwxMSBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1KYXZhU2NyaXB0
Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBk
ZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIs
IGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZSkKK0phdmFTY3JpcHRDYWxsRnJhbWU6OkphdmFT
Y3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1l
LCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNl
SUQsIGludCBwb3NpdGlvbiwgaW50IGxpbmUpCiAgICAgOiBtX2RlYnVnZ2VyQ2FsbEZyYW1lKGRl
YnVnZ2VyQ2FsbEZyYW1lKQogICAgICwgbV9jYWxsZXIoY2FsbGVyKQogICAgICwgbV9zb3VyY2VJ
RChzb3VyY2VJRCkKKyAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2xpbmUobGlu
ZSkKICAgICAsIG1faXNWYWxpZCh0cnVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IGMyM2E0M2QuLjk2MTdkOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKQEAg
LTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKYXZhU2NyaXB0Q2Fs
bEZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8SmF2YVNjcmlwdENhbGxGcmFtZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShjb25z
dCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxK
YXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZSkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUoY29uc3Qg
SlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIFBhc3NSZWZQdHI8SmF2
YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHBvc2l0aW9u
LCBpbnQgbGluZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSmF2YVNjcmlw
dENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSwgY2FsbGVyLCBzb3VyY2VJRCwgbGluZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdnZXJD
YWxsRnJhbWUsIGNhbGxlciwgc291cmNlSUQsIHBvc2l0aW9uLCBsaW5lKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCkKQEAgLTU0LDEwICs1NCwxMyBAQCBwdWJsaWM6CiAgICAgSmF2
YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7CiAKICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlSUQ7IH0KKyAgICBpbnQgcG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uOyB9CiAgICAgaW50IGxpbmUoKSBjb25zdCB7IHJldHVybiBtX2xpbmU7
IH0KLSAgICB2b2lkIHVwZGF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dl
ckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lKQorCisgICAgdm9pZCB1cGRh
dGUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0
cl90IHNvdXJjZUlELCBpbnQgcG9zaXRpb24sIGludCBsaW5lKQogICAgIHsKICAgICAgICAgbV9k
ZWJ1Z2dlckNhbGxGcmFtZSA9IGRlYnVnZ2VyQ2FsbEZyYW1lOworICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9zaXRpb247CiAgICAgICAgIG1fbGluZSA9IGxpbmU7CiAgICAgICAgIG1fc291cmNlSUQg
PSBzb3VyY2VJRDsKICAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKQEAgLTcyLDExICs3NSwxMiBA
QCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKGNvbnN0IEpTQzo6VVN0cmluZyYg
c2NyaXB0LCBKU0M6OkpTVmFsdWUmIGV4Y2VwdGlvbikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgot
ICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIFBh
c3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwg
aW50IGxpbmUpOworICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNh
bGxGcmFtZSYsIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJf
dCBzb3VyY2VJRCwgaW50IHBvc2l0aW9uLCBpbnQgbGluZSk7CiAKICAgICBKU0M6OkRlYnVnZ2Vy
Q2FsbEZyYW1lIG1fZGVidWdnZXJDYWxsRnJhbWU7CiAgICAgUmVmUHRyPEphdmFTY3JpcHRDYWxs
RnJhbWU+IG1fY2FsbGVyOwogICAgIGludHB0cl90IG1fc291cmNlSUQ7CisgICAgaW50IG1fcG9z
aXRpb247CiAgICAgaW50IG1fbGluZTsKICAgICBib29sIG1faXNWYWxpZDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggMTBk
ZjIyMy4uMWVmZmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dERlYnVnU2VydmVyLmNwcApAQCAtNDQxLDYgKzQ0MSwyNCBAQCB2b2lkIFNjcmlwdERlYnVnU2Vy
dmVyOjpzZXRKYXZhU2NyaXB0UGF1c2VkKEZyYW1lVmlldyogdmlldywgYm9vbCBwYXVzZWQpCiAg
ICAgfQogfQogCit2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpjcmVhdGVDYWxsRnJhbWVBbmRQYXVz
ZUlmTmVlZGVkKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50
cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQoreworICAgIGludCBwb3NpdGlvbiA9IGxp
bmVOdW1iZXJUb1Bvc2l0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKKyAgICBtX2N1cnJlbnRD
YWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUs
IG1fY3VycmVudENhbGxGcmFtZSwgc291cmNlSUQsIHBvc2l0aW9uLCBsaW5lTnVtYmVyKTsKKyAg
ICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpKTsKK30KKwordm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6dXBkYXRlQ2FsbEZyYW1lQW5k
UGF1c2VJZk5lZWRlZChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUs
IGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZU51bWJlcikKK3sKKyAgICBBU1NFUlQobV9jdXJy
ZW50Q2FsbEZyYW1lKTsKKyAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaW50IHBvc2l0aW9uID0gbGluZU51bWJlclRvUG9zaXRpb24oc291cmNlSUQs
IGxpbmVOdW1iZXIpOworICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2Fs
bEZyYW1lLCBzb3VyY2VJRCwgcG9zaXRpb24sIGxpbmVOdW1iZXIpOworICAgIHBhdXNlSWZOZWVk
ZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworfQor
CiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpwYXVzZUlmTmVlZGVkKFBhZ2UqIHBhZ2UpCiB7CiAg
ICAgaWYgKG1fcGF1c2VkKQpAQCAtNDgxLDI0ICs0OTksMTQgQEAgdm9pZCBTY3JpcHREZWJ1Z1Nl
cnZlcjo6cGF1c2VJZk5lZWRlZChQYWdlKiBwYWdlKQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVy
OjpjYWxsRXZlbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBp
bnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291
cmNlSUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2Fs
bEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIGlmICghbV9wYXVzZWQpCisgICAg
ICAgIGNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNv
dXJjZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6YXRTdGF0
ZW1lbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRwdHJf
dCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1f
Y3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZy
YW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAg
ICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpKTsKKyAgICBpZiAoIW1fcGF1c2VkKQorICAgICAgICB1cGRhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiB9
CiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJldHVybkV2ZW50KGNvbnN0IERlYnVnZ2VyQ2Fs
bEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVt
YmVyKQpAQCAtNTA2LDEyICs1MTQsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZXR1cm5F
dmVudChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsCiAgICAgaWYg
KG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZy
YW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlE
LCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFt
ZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlm
TmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiAKICAgICAv
LyBkZXRhY2ggbWF5IGhhdmUgYmVlbiBjYWxsZWQgZHVyaW5nIHBhdXNlSWZOZWVkZWQKICAgICBp
ZiAoIW1fY3VycmVudENhbGxGcmFtZSkKQEAgLTUyOCwyNCArNTMxLDE2IEBAIHZvaWQgU2NyaXB0
RGVidWdTZXJ2ZXI6OmV4Y2VwdGlvbihjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJD
YWxsRnJhbWUsIGluCiAgICAgaWYgKG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBB
U1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkK
LSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBQ
YXVzZU9uQWxsRXhjZXB0aW9ucyB8fCAobV9wYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFBhdXNl
T25VbmNhdWdodEV4Y2VwdGlvbnMgJiYgIWhhc0hhbmRsZXIpKQogICAgICAgICBtX3BhdXNlT25O
ZXh0U3RhdGVtZW50ID0gdHJ1ZTsKIAotICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRl
YnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRl
ZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAg
dXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNl
SUQsIGxpbmVOdW1iZXIpOwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjp3aWxsRXhlY3V0
ZVByb2dyYW0oY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRw
dHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgaWYgKG1fcGF1c2VkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZy
YW1lOjpjcmVhdGUoZGVidWdnZXJDYWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291cmNl
SUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZy
YW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIGlmICghbV9wYXVzZWQpCisgICAgICAg
IGNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJj
ZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkRXhlY3V0
ZVByb2dyYW0oY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRw
dHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCkBAIC01NTMsMTIgKzU0OCw3IEBAIHZvaWQg
U2NyaXB0RGVidWdTZXJ2ZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKGNvbnN0IERlYnVnZ2VyQ2FsbEZy
YW1lJiBkZWJ1Z2dlckNhbGxGCiAgICAgaWYgKG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxG
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUo
ZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVl
ZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAg
ICB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3Vy
Y2VJRCwgbGluZU51bWJlcik7CiAKICAgICAvLyBUcmVhdCBzdGVwcGluZyBvdmVyIHRoZSBlbmQg
b2YgYSBwcm9ncmFtIGxpa2Ugc3RlcHBpbmcgb3V0LgogICAgIGlmIChtX2N1cnJlbnRDYWxsRnJh
bWUgPT0gbV9wYXVzZU9uQ2FsbEZyYW1lKQpAQCAtNTcxLDEzICs1NjEsOCBAQCB2b2lkIFNjcmlw
dERlYnVnU2VydmVyOjpkaWRSZWFjaEJyZWFrcG9pbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUm
IGRlYnVnZ2VyQ2FsbAogICAgIGlmIChtX3BhdXNlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
QVNTRVJUKG1fY3VycmVudENhbGxGcmFtZSk7Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIG1fcGF1c2VPbk5leHRTdGF0ZW1lbnQgPSB0cnVlOwot
ICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJ
RCwgbGluZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJh
bWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAgdXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJ
Zk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwogfQogCiB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKQpAQCAt
NjEzLDYgKzU5OCwyOSBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaWRSZW1vdmVMaXN0ZW5l
cihQYWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldERlYnVnZ2VyKDApOwogfQogCitpbnQgU2NyaXB0
RGVidWdTZXJ2ZXI6OmxpbmVOdW1iZXJUb1Bvc2l0aW9uKGludHB0cl90IHNvdXJjZUlELCBpbnQg
bGluZU51bWJlcikKK3sKKyAgICBTY3JpcHRzTWFwOjppdGVyYXRvciBpdCA9IG1fc2NyaXB0cy5m
aW5kKHNvdXJjZUlEKTsKKyAgICBpZiAoaXQgPT0gbV9zY3JpcHRzLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBTY3JpcHREYXRhJiBzY3JpcHREYXRhID0gaXQtPnNlY29uZDsKKyAgICBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlID0gc2NyaXB0RGF0YS5maXJzdDsKKyAgICBWZWN0
b3I8aW50PiYgbGluZUVuZGluZ3MgPSBzY3JpcHREYXRhLnNlY29uZDsKKyAgICBpZiAobGluZUVu
ZGluZ3MuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBzb3VyY2UgPSBzb3VyY2VD
b2RlLmRhdGEoKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHNvdXJjZUNvZGUubGVuZ3RoKCk7Cisg
ICAgICAgIGxpbmVFbmRpbmdzLmFwcGVuZCgtMSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gPT0gJ1xuJykKKyAg
ICAgICAgICAgICAgICBsaW5lRW5kaW5ncy5hcHBlbmQoaSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaW50IHNjcmlwdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyIC0gc291cmNlQ29kZS5maXJzdExp
bmUoKTsKKyAgICBpZiAoc2NyaXB0TGluZU51bWJlciA+PSAwICYmIHNjcmlwdExpbmVOdW1iZXIg
PCBzdGF0aWNfY2FzdDxpbnQ+KGxpbmVFbmRpbmdzLnNpemUoKSkpCisgICAgICAgIHJldHVybiBs
aW5lRW5kaW5nc1tzY3JpcHRMaW5lTnVtYmVyXSArIDE7CisgICAgcmV0dXJuIDA7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgK
aW5kZXggODFjZDlhYy4uMGY3M2FlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UoY29uc3QgTGlzdGVuZXJTZXQmIGxpc3RlbmVycywg
Y29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2UsIGVudW0gU2NyaXB0V29ybGRUeXBlKTsKICAg
ICB2b2lkIGRpc3BhdGNoRmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBMaXN0ZW5lclNldCYgbGlz
dGVuZXJzLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZSwgaW50IGVycm9yTGluZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCBjcmVhdGVDYWxsRnJhbWVBbmRQ
YXVzZUlmTmVlZGVkKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmLCBpbnRwdHJfdCBzb3Vy
Y2VJRCwgaW50IGxpbmVOdW1iZXIpOworICAgIHZvaWQgdXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJ
Zk5lZWRlZChjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiwgaW50cHRyX3Qgc291cmNlSUQs
IGludCBsaW5lTnVtYmVyKTsKICAgICB2b2lkIHBhdXNlSWZOZWVkZWQoUGFnZSopOwogCiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaChKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC0xMzQsOCArMTM2
LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRBZGRMaXN0ZW5lcihQYWdlKik7CiAgICAgdm9p
ZCBkaWRSZW1vdmVMaXN0ZW5lcihQYWdlKik7CiAKKyAgICBpbnQgbGluZU51bWJlclRvUG9zaXRp
b24oaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKTsKKwogICAgIHR5cGVkZWYgSGFz
aE1hcDxQYWdlKiwgTGlzdGVuZXJTZXQqPiBQYWdlTGlzdGVuZXJzTWFwOwogICAgIHR5cGVkZWYg
SGFzaE1hcDxpbnRwdHJfdCwgU291cmNlQnJlYWtwb2ludHM+IEJyZWFrcG9pbnRzTWFwOworICAg
IHR5cGVkZWYgc3RkOjpwYWlyPEpTQzo6U291cmNlQ29kZSwgVmVjdG9yPGludD4gPiBTY3JpcHRE
YXRhOworICAgIHR5cGVkZWYgSGFzaE1hcDxpbnRwdHJfdCwgU2NyaXB0RGF0YT4gU2NyaXB0c01h
cDsKIAogICAgIFBhZ2VMaXN0ZW5lcnNNYXAgbV9wYWdlTGlzdGVuZXJzTWFwOwogICAgIGJvb2wg
bV9jYWxsaW5nTGlzdGVuZXJzOwpAQCAtMTQ4LDYgKzE1NCw3IEBAIHByaXZhdGU6CiAgICAgSmF2
YVNjcmlwdENhbGxGcmFtZSogbV9wYXVzZU9uQ2FsbEZyYW1lOwogICAgIFJlZlB0cjxKYXZhU2Ny
aXB0Q2FsbEZyYW1lPiBtX2N1cnJlbnRDYWxsRnJhbWU7CiAgICAgQnJlYWtwb2ludHNNYXAgbV9i
cmVha3BvaW50czsKKyAgICBTY3JpcHRzTWFwIG1fc2NyaXB0czsKICAgICBUaW1lcjxTY3JpcHRE
ZWJ1Z1NlcnZlcj4gbV9yZWNvbXBpbGVUaW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKaW5kZXggNTBmNzkxZC4uNGZjNjQ4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKQEAgLTI1MCw2ICsy
NTAsNyBAQCBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rp
b24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQogICAgIHJldHVybiB7CiAgICAgICAgICJzb3Vy
Y2VJRCI6IHNvdXJjZUlELAogICAgICAgICAibGluZSI6IGxpbmUsCisgICAgICAgICJwb3NpdGlv
biI6IGZyYW1lTWlycm9yLnNvdXJjZVBvc2l0aW9uKCksCiAgICAgICAgICJmdW5jdGlvbk5hbWUi
OiBmdW5jdGlvbk5hbWUsCiAgICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwKICAgICAgICAgInRo
aXNPYmplY3QiOiB0aGlzT2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCAyMGJmMzc4Li40YmI3MGU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApA
QCAtODAsNiArODAsMTYgQEAgaW50IEphdmFTY3JpcHRDYWxsRnJhbWU6OmxpbmUoKSBjb25zdAog
ICAgIHJldHVybiAwOwogfQogCitpbnQgSmF2YVNjcmlwdENhbGxGcmFtZTo6cG9zaXRpb24oKSBj
b25zdAoreworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2ODo6Q29udGV4
dDo6U2NvcGUgY29udGV4dFNjb3BlKG1fZGVidWdnZXJDb250ZXh0LmdldCgpKTsKKyAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gbV9jYWxsRnJhbWUuZ2V0KCktPkdldCh2OFN0cmlu
ZygicG9zaXRpb24iKSk7CisgICAgaWYgKHJlc3VsdC0+SXNJbnQzMigpKQorICAgICAgICByZXR1
cm4gcmVzdWx0LT5JbnQzMlZhbHVlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIFN0cmluZyBKYXZh
U2NyaXB0Q2FsbEZyYW1lOjpmdW5jdGlvbk5hbWUoKSBjb25zdAogewogICAgIHY4OjpIYW5kbGVT
Y29wZSBoYW5kbGVTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0phdmFTY3JpcHRDYWxsRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFT
Y3JpcHRDYWxsRnJhbWUuaAppbmRleCA5NWEwNTEwLi5lNTcyOWRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5oCkBAIC01MSw2ICs1MSw3
IEBAIHB1YmxpYzoKIAogICAgIGludCBzb3VyY2VJRCgpIGNvbnN0OwogICAgIGludCBsaW5lKCkg
Y29uc3Q7CisgICAgaW50IHBvc2l0aW9uKCkgY29uc3Q7CiAgICAgU3RyaW5nIGZ1bmN0aW9uTmFt
ZSgpIGNvbnN0OwogICAgIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzY29wZUNoYWluKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKaW5kZXggOTA3OTdmYi4uZjcyMDQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtNTQzLDYgKzU0Myw3IEBAIEluamVj
dGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5ID0gZnVuY3Rpb24oaWQsIGNhbGxGcmFtZSkKICAgICB0
aGlzLmZ1bmN0aW9uTmFtZSA9ICh0aGlzLnR5cGUgPT09ICJmdW5jdGlvbiIgPyBjYWxsRnJhbWUu
ZnVuY3Rpb25OYW1lIDogIiIpOwogICAgIHRoaXMuc291cmNlSUQgPSBjYWxsRnJhbWUuc291cmNl
SUQ7CiAgICAgdGhpcy5saW5lID0gY2FsbEZyYW1lLmxpbmU7CisgICAgdGhpcy5wb3NpdGlvbiA9
IGNhbGxGcmFtZS5wb3NpdGlvbjsKICAgICB0aGlzLnNjb3BlQ2hhaW4gPSB0aGlzLl93cmFwU2Nv
cGVDaGFpbihjYWxsRnJhbWUpOwogICAgIHRoaXMud29ybGRJZCA9IGluamVjdGVkU2NyaXB0SWQ7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxG
cmFtZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5p
ZGwKaW5kZXggMjI1MDU5ZC4uYzRkNGJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbApAQCAtNDIsNiArNDIsNyBAQCBtb2R1bGUgaW5z
cGVjdG9yIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSmF2YVNjcmlwdENhbGxGcmFt
ZSBjYWxsZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNvdXJjZUlEOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBwb3NpdGlvbjsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgbGluZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21H
ZXR0ZXJdIEFycmF5IHNjb3BlQ2hhaW47CiAgICAgICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0
IHNjb3BlVHlwZShpbiBpbnQgc2NvcGVJbmRleCk7Cg==
</data>
<flag name="review"
          id="70308"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79148</attachid>
            <date>2011-01-17 03:38:10 -0800</date>
            <delta_ts>2011-01-17 07:27:14 -0800</delta_ts>
            <desc>Use line:column instead of source position.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14752</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZTUyYjg3Li5mZDU3YzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDEtMTcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogYWRkIHNvdXJjZSBjb2x1bW4gZmllbGQgdG8gZGVidWdnZXIgY2FsbCBmcmFtZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjQ0Mwor
CisgICAgICAgICogYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgIChXZWJD
b3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SmF2
YVNjcmlwdENhbGxGcmFtZTo6bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpjb2x1bW4pOgorICAgICAgICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6
dXBkYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6Y3JlYXRlQ2FsbEZyYW1lQW5kUGF1
c2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6dXBkYXRl
Q2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1
Z1NlcnZlcjo6Y2FsbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVy
OjphdFN0YXRlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6cmV0
dXJuRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmV4Y2VwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6d2lsbEV4ZWN1dGVQcm9n
cmFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpkaWRFeGVjdXRlUHJv
Z3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVhY2hCcmVh
a3BvaW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzOgorICAgICAgICAoKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OmNvbHVtbik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
SmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFNvdXJjZS5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaWRsOgorCiAyMDExLTAxLTE3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc1OTIzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNw
cAppbmRleCBjMjgwZDk4Li5jYzY5ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLUphdmFTY3JpcHRD
YWxsRnJhbWU6OkphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRl
YnVnZ2VyQ2FsbEZyYW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwg
aW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lKQorSmF2YVNjcmlwdENhbGxGcmFtZTo6SmF2YVNj
cmlwdENhbGxGcmFtZShjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUs
IFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJ
RCwgY29uc3QgVGV4dFBvc2l0aW9uMSYgdGV4dFBvc2l0aW9uKQogICAgIDogbV9kZWJ1Z2dlckNh
bGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkKICAgICAsIG1fY2FsbGVyKGNhbGxlcikKICAgICAs
IG1fc291cmNlSUQoc291cmNlSUQpCi0gICAgLCBtX2xpbmUobGluZSkKKyAgICAsIG1fdGV4dFBv
c2l0aW9uKHRleHRQb3NpdGlvbikKICAgICAsIG1faXNWYWxpZCh0cnVlKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IGMy
M2E0M2QuLjEwMTg1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0ph
dmFTY3JpcHRDYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZh
U2NyaXB0Q2FsbEZyYW1lLmgKQEAgLTMzLDE0ICszMywxNSBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUm
IGRlYnVnZ2VyQ2FsbEZyYW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxl
ciwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEph
dmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBk
ZWJ1Z2dlckNhbGxGcmFtZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIs
IGludHB0cl90IHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24xJiB0ZXh0UG9zaXRpb24pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVi
dWdnZXJDYWxsRnJhbWUsIGNhbGxlciwgc291cmNlSUQsIGxpbmUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZyYW1lLCBjYWxs
ZXIsIHNvdXJjZUlELCB0ZXh0UG9zaXRpb24pKTsKICAgICB9CiAKICAgICB2b2lkIGludmFsaWRh
dGUoKQpAQCAtNTQsMTEgKzU1LDEzIEBAIHB1YmxpYzoKICAgICBKYXZhU2NyaXB0Q2FsbEZyYW1l
KiBjYWxsZXIoKTsKIAogICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VJRDsgfQotICAgIGludCBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9saW5lOyB9Ci0gICAg
dm9pZCB1cGRhdGUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJh
bWUsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZSkKKyAgICBpbnQgbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGV4dFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpOyB9CisgICAgaW50IGNv
bHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50
KCk7IH0KKworICAgIHZvaWQgdXBkYXRlKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmIGRl
YnVnZ2VyQ2FsbEZyYW1lLCBpbnRwdHJfdCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uMSYg
dGV4dFBvc2l0aW9uKQogICAgIHsKICAgICAgICAgbV9kZWJ1Z2dlckNhbGxGcmFtZSA9IGRlYnVn
Z2VyQ2FsbEZyYW1lOwotICAgICAgICBtX2xpbmUgPSBsaW5lOworICAgICAgICBtX3RleHRQb3Np
dGlvbiA9IHRleHRQb3NpdGlvbjsKICAgICAgICAgbV9zb3VyY2VJRCA9IHNvdXJjZUlEOwogICAg
ICAgICBtX2lzVmFsaWQgPSB0cnVlOwogICAgIH0KQEAgLTcyLDEyICs3NSwxMiBAQCBwdWJsaWM6
CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKGNvbnN0IEpTQzo6VVN0cmluZyYgc2NyaXB0LCBK
U0M6OkpTVmFsdWUmIGV4Y2VwdGlvbikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIEphdmFT
Y3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIFBhc3NSZWZQdHI8
SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmUp
OworICAgIEphdmFTY3JpcHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYs
IFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJ
RCwgY29uc3QgVGV4dFBvc2l0aW9uMSYgdGV4dFBvc2l0aW9uKTsKIAogICAgIEpTQzo6RGVidWdn
ZXJDYWxsRnJhbWUgbV9kZWJ1Z2dlckNhbGxGcmFtZTsKICAgICBSZWZQdHI8SmF2YVNjcmlwdENh
bGxGcmFtZT4gbV9jYWxsZXI7CiAgICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKLSAgICBpbnQgbV9s
aW5lOworICAgIFRleHRQb3NpdGlvbjEgbV90ZXh0UG9zaXRpb247CiAgICAgYm9vbCBtX2lzVmFs
aWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKaW5kZXggOTg0NTI3Ny4uYjIzNjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNDQwLDYgKzQ0MCwyNCBAQCB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzZXRKYXZhU2NyaXB0UGF1c2VkKEZyYW1lVmlldyogdmll
dywgYm9vbCBwYXVzZWQpCiAgICAgfQogfQogCit2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpjcmVh
dGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1
Z2dlckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQoreworICAg
IFRleHRQb3NpdGlvbjEgdGV4dFBvc2l0aW9uKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVC
YXNlZEludChsaW5lTnVtYmVyKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6YmFzZSgpKTsKKyAgICBt
X2N1cnJlbnRDYWxsRnJhbWUgPSBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUoZGVidWdnZXJD
YWxsRnJhbWUsIG1fY3VycmVudENhbGxGcmFtZSwgc291cmNlSUQsIHRleHRQb3NpdGlvbik7Cisg
ICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9i
amVjdCgpKSk7Cit9CisKK3ZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnVwZGF0ZUNhbGxGcmFtZUFu
ZFBhdXNlSWZOZWVkZWQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1l
LCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCit7CisgICAgQVNTRVJUKG1fY3Vy
cmVudENhbGxGcmFtZSk7CisgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCisgICAgICAgIHJl
dHVybjsKKworICAgIFRleHRQb3NpdGlvbjEgdGV4dFBvc2l0aW9uKFdURjo6T25lQmFzZWROdW1i
ZXI6OmZyb21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6YmFz
ZSgpKTsKKyAgICBtX2N1cnJlbnRDYWxsRnJhbWUtPnVwZGF0ZShkZWJ1Z2dlckNhbGxGcmFtZSwg
c291cmNlSUQsIHRleHRQb3NpdGlvbik7CisgICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdn
ZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7Cit9CisKIHZvaWQgU2NyaXB0RGVi
dWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoUGFnZSogcGFnZSkKIHsKICAgICBpZiAobV9wYXVzZWQp
CkBAIC00ODAsMjQgKzQ5OCwxNCBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpwYXVzZUlmTmVl
ZGVkKFBhZ2UqIHBhZ2UpCiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmNhbGxFdmVudChjb25z
dCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlE
LCBpbnQgbGluZU51bWJlcikKIHsKLSAgICBpZiAobV9wYXVzZWQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY3VycmVudENhbGxGcmFtZSA9IEphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShk
ZWJ1Z2dlckNhbGxGcmFtZSwgbV9jdXJyZW50Q2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJl
cik7Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0ds
b2JhbE9iamVjdCgpKSk7CisgICAgaWYgKCFtX3BhdXNlZCkKKyAgICAgICAgY3JlYXRlQ2FsbEZy
YW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1i
ZXIpOwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjphdFN0YXRlbWVudChjb25zdCBEZWJ1
Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBpbnQg
bGluZU51bWJlcikKIHsKLSAgICBpZiAobV9wYXVzZWQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IEFTU0VSVChtX2N1cnJlbnRDYWxsRnJhbWUpOwotICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUtPnVwZGF0ZShkZWJ1
Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQo
dG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIGlm
ICghbV9wYXVzZWQpCisgICAgICAgIHVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVi
dWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cmV0dXJuRXZlbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2Vy
Q2FsbEZyYW1lLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpCkBAIC01MDUsMTIg
KzUxMyw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJldHVybkV2ZW50KGNvbnN0IERlYnVn
Z2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwKICAgICBpZiAobV9wYXVzZWQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2N1cnJlbnRDYWxsRnJhbWUpOwotICAgIGlmICgh
bV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxs
RnJhbWUtPnVwZGF0ZShkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwot
ICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxP
YmplY3QoKSkpOworICAgIHVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJD
YWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKIAogICAgIC8vIGRldGFjaCBtYXkgaGF2
ZSBiZWVuIGNhbGxlZCBkdXJpbmcgcGF1c2VJZk5lZWRlZAogICAgIGlmICghbV9jdXJyZW50Q2Fs
bEZyYW1lKQpAQCAtNTI3LDI0ICs1MzAsMTYgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZXhj
ZXB0aW9uKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSwgaW4KICAg
ICBpZiAobV9wYXVzZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2N1cnJlbnRD
YWxsRnJhbWUpOwotICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm47
Ci0KICAgICBpZiAobV9wYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFBhdXNlT25BbGxFeGNlcHRp
b25zIHx8IChtX3BhdXNlT25FeGNlcHRpb25zU3RhdGUgPT0gUGF1c2VPblVuY2F1Z2h0RXhjZXB0
aW9ucyAmJiAhaGFzSGFuZGxlcikpCiAgICAgICAgIG1fcGF1c2VPbk5leHRTdGF0ZW1lbnQgPSB0
cnVlOwogCi0gICAgbV9jdXJyZW50Q2FsbEZyYW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUs
IHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dl
ckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICB1cGRhdGVDYWxsRnJhbWVB
bmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7
CiB9CiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OndpbGxFeGVjdXRlUHJvZ3JhbShjb25zdCBE
ZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBp
bnQgbGluZU51bWJlcikKIHsKLSAgICBpZiAobV9wYXVzZWQpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fY3VycmVudENhbGxGcmFtZSA9IEphdmFTY3JpcHRDYWxsRnJhbWU6OmNyZWF0ZShkZWJ1
Z2dlckNhbGxGcmFtZSwgbV9jdXJyZW50Q2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7
Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2Jh
bE9iamVjdCgpKSk7CisgICAgaWYgKCFtX3BhdXNlZCkKKyAgICAgICAgY3JlYXRlQ2FsbEZyYW1l
QW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIp
OwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaWRFeGVjdXRlUHJvZ3JhbShjb25zdCBE
ZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBp
bnQgbGluZU51bWJlcikKQEAgLTU1MiwxMiArNTQ3LDcgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZl
cjo6ZGlkRXhlY3V0ZVByb2dyYW0oY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2Fs
bEYKICAgICBpZiAobV9wYXVzZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2N1
cnJlbnRDYWxsRnJhbWUpOwotICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUtPnVwZGF0ZShkZWJ1Z2dlckNhbGxGcmFt
ZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVn
Z2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIHVwZGF0ZUNhbGxGcmFt
ZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVy
KTsKIAogICAgIC8vIFRyZWF0IHN0ZXBwaW5nIG92ZXIgdGhlIGVuZCBvZiBhIHByb2dyYW0gbGlr
ZSBzdGVwcGluZyBvdXQuCiAgICAgaWYgKG1fY3VycmVudENhbGxGcmFtZSA9PSBtX3BhdXNlT25D
YWxsRnJhbWUpCkBAIC01NzAsMTMgKzU2MCw4IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRp
ZFJlYWNoQnJlYWtwb2ludChjb25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsCiAg
ICAgaWYgKG1fcGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9jdXJyZW50
Q2FsbEZyYW1lKTsKLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJu
OwotCiAgICAgbV9wYXVzZU9uTmV4dFN0YXRlbWVudCA9IHRydWU7Ci0gICAgbV9jdXJyZW50Q2Fs
bEZyYW1lLT51cGRhdGUoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsK
LSAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFs
T2JqZWN0KCkpKTsKKyAgICB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2Vy
Q2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiB9CiAKIHZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA4MWNkOWFjLi45ZDM4MGZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKQEAg
LTExOCw2ICsxMTgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRQYXJzZVNvdXJj
ZShjb25zdCBMaXN0ZW5lclNldCYgbGlzdGVuZXJzLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNv
dXJjZSwgZW51bSBTY3JpcHRXb3JsZFR5cGUpOwogICAgIHZvaWQgZGlzcGF0Y2hGYWlsZWRUb1Bh
cnNlU291cmNlKGNvbnN0IExpc3RlbmVyU2V0JiBsaXN0ZW5lcnMsIGNvbnN0IEpTQzo6U291cmNl
Q29kZSYgc291cmNlLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7
CiAKKyAgICB2b2lkIGNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoY29uc3QgSlNDOjpE
ZWJ1Z2dlckNhbGxGcmFtZSYsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGluZU51bWJlcik7Cisg
ICAgdm9pZCB1cGRhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGNvbnN0IEpTQzo6RGVidWdn
ZXJDYWxsRnJhbWUmLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmVOdW1iZXIpOwogICAgIHZv
aWQgcGF1c2VJZk5lZWRlZChQYWdlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RlYnVnZ2VyU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJT
Y3JpcHQuanMKaW5kZXggOGM5ZDk4ZS4uZWI5ZGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKQEAgLTIwMSw4ICsyMDEsMTAgQEAgRGVidWdnZXJT
Y3JpcHQuX2ZyYW1lTWlycm9yVG9KU0NhbGxGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lTWlycm9yLCBj
YWxsZXJGcmFtZSkKICAgICB2YXIgc2NyaXB0ID0gZnVuYy5zY3JpcHQoKTsKICAgICB2YXIgc291
cmNlSUQgPSBzY3JpcHQgJiYgc2NyaXB0LmlkKCk7CiAKLSAgICAvLyBHZXQgbGluZSBudW1iZXIu
Ci0gICAgdmFyIGxpbmUgPSBEZWJ1Z2dlclNjcmlwdC5fdjhUb1dlYmtpdExpbmVOdW1iZXIoZnJh
bWVNaXJyb3Iuc291cmNlTGluZSgpKTsKKyAgICAvLyBHZXQgbG9jYXRpb24uCisgICAgdmFyIGxv
Y2F0aW9uICA9IGZyYW1lTWlycm9yLnNvdXJjZUxvY2F0aW9uKCk7CisgICAgdmFyIGxpbmUgPSBE
ZWJ1Z2dlclNjcmlwdC5fdjhUb1dlYmtpdExpbmVOdW1iZXIobG9jYXRpb24ubGluZSk7CisgICAg
dmFyIGNvbHVtbiA9IERlYnVnZ2VyU2NyaXB0Ll92OFRvV2Via2l0TGluZU51bWJlcihsb2NhdGlv
bi5jb2x1bW4pOwogCiAgICAgLy8gR2V0IHRoaXMgb2JqZWN0LgogICAgIHZhciB0aGlzT2JqZWN0
ID0gZnJhbWVNaXJyb3IuZGV0YWlsc18ucmVjZWl2ZXIoKTsKQEAgLTI1MCw2ICsyNTIsNyBAQCBE
ZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVN
aXJyb3IsIGNhbGxlckZyYW1lKQogICAgIHJldHVybiB7CiAgICAgICAgICJzb3VyY2VJRCI6IHNv
dXJjZUlELAogICAgICAgICAibGluZSI6IGxpbmUsCisgICAgICAgICJjb2x1bW4iOiBjb2x1bW4s
CiAgICAgICAgICJmdW5jdGlvbk5hbWUiOiBmdW5jdGlvbk5hbWUsCiAgICAgICAgICJ0eXBlIjog
ImZ1bmN0aW9uIiwKICAgICAgICAgInRoaXNPYmplY3QiOiB0aGlzT2JqZWN0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCAy
MGJmMzc4Li41YmI0MzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApAQCAtODAsNiArODAsMTYgQEAgaW50IEphdmFTY3JpcHRD
YWxsRnJhbWU6OmxpbmUoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitpbnQgSmF2YVNjcmlw
dENhbGxGcmFtZTo6Y29sdW1uKCkgY29uc3QKK3sKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxl
U2NvcGU7CisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShtX2RlYnVnZ2VyQ29u
dGV4dC5nZXQoKSk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IG1fY2FsbEZy
YW1lLmdldCgpLT5HZXQodjhTdHJpbmcoImNvbHVtbiIpKTsKKyAgICBpZiAocmVzdWx0LT5Jc0lu
dDMyKCkpCisgICAgICAgIHJldHVybiByZXN1bHQtPkludDMyVmFsdWUoKTsKKyAgICByZXR1cm4g
MDsKK30KKwogU3RyaW5nIEphdmFTY3JpcHRDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSgpIGNvbnN0
CiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IDk1YTA1MTAuLjJkMTQ1
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxs
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZy
YW1lLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgaW50IHNvdXJjZUlEKCkgY29u
c3Q7CiAgICAgaW50IGxpbmUoKSBjb25zdDsKKyAgICBpbnQgY29sdW1uKCkgY29uc3Q7CiAgICAg
U3RyaW5nIGZ1bmN0aW9uTmFtZSgpIGNvbnN0OwogICAgIAogICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBzY29wZUNoYWluKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggOTA3OTdmYi4uZWVlNWIxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtNTQz
LDYgKzU0Myw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5ID0gZnVuY3Rpb24oaWQs
IGNhbGxGcmFtZSkKICAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9ICh0aGlzLnR5cGUgPT09ICJmdW5j
dGlvbiIgPyBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIDogIiIpOwogICAgIHRoaXMuc291cmNlSUQg
PSBjYWxsRnJhbWUuc291cmNlSUQ7CiAgICAgdGhpcy5saW5lID0gY2FsbEZyYW1lLmxpbmU7Cisg
ICAgdGhpcy5jb2x1bW4gPSBjYWxsRnJhbWUuY29sdW1uOwogICAgIHRoaXMuc2NvcGVDaGFpbiA9
IHRoaXMuX3dyYXBTY29wZUNoYWluKGNhbGxGcmFtZSk7CiAgICAgdGhpcy53b3JsZElkID0gaW5q
ZWN0ZWRTY3JpcHRJZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmlkbAppbmRleCAyMjUwNTlkLi5kYjBlMGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCkBAIC00Myw2ICs0Myw3
IEBAIG1vZHVsZSBpbnNwZWN0b3IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSmF2YVNj
cmlwdENhbGxGcmFtZSBjYWxsZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNv
dXJjZUlEOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsaW5lOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjb2x1bW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ3VzdG9tR2V0dGVyXSBBcnJheSBzY29wZUNoYWluOwogICAgICAgICBbQ3VzdG9tXSB1bnNp
Z25lZCBzaG9ydCBzY29wZVR5cGUoaW4gaW50IHNjb3BlSW5kZXgpOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gT2JqZWN0IHRoaXNPYmplY3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79170</attachid>
            <date>2011-01-17 07:27:14 -0800</date>
            <delta_ts>2011-01-17 08:03:50 -0800</delta_ts>
            <desc>Fix style.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14724</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OWVlOGMwLi4zZGUwNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDEtMTcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogYWRkIHNvdXJjZSBjb2x1bW4gZmllbGQgdG8gZGVidWdnZXIgY2FsbCBmcmFtZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjQ0Mwor
CisgICAgICAgICogYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpKYXZhU2NyaXB0Q2FsbEZyYW1lKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgIChXZWJD
b3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SmF2
YVNjcmlwdENhbGxGcmFtZTo6bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpjb2x1bW4pOgorICAgICAgICAoV2ViQ29yZTo6SmF2YVNjcmlwdENhbGxGcmFtZTo6
dXBkYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6Y3JlYXRlQ2FsbEZyYW1lQW5kUGF1
c2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6dXBkYXRl
Q2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1
Z1NlcnZlcjo6Y2FsbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVy
OjphdFN0YXRlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6cmV0
dXJuRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmV4Y2VwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6d2lsbEV4ZWN1dGVQcm9n
cmFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpkaWRFeGVjdXRlUHJv
Z3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVhY2hCcmVh
a3BvaW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzOgorICAgICAgICAoKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkphdmFTY3JpcHRDYWxsRnJhbWU6OmNvbHVtbik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
SmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFNvdXJjZS5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaWRsOgorCiAyMDExLTAxLTE3ICBBbnRob255IFJpY2F1ZCAgPHJpa0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCBjMjgwZDk4
Li5jYzY5ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLUphdmFTY3JpcHRDYWxsRnJhbWU6OkphdmFT
Y3JpcHRDYWxsRnJhbWUoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1l
LCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291cmNl
SUQsIGludCBsaW5lKQorSmF2YVNjcmlwdENhbGxGcmFtZTo6SmF2YVNjcmlwdENhbGxGcmFtZShj
b25zdCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIFBhc3NSZWZQdHI8SmF2
YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgY29uc3QgVGV4dFBv
c2l0aW9uMSYgdGV4dFBvc2l0aW9uKQogICAgIDogbV9kZWJ1Z2dlckNhbGxGcmFtZShkZWJ1Z2dl
ckNhbGxGcmFtZSkKICAgICAsIG1fY2FsbGVyKGNhbGxlcikKICAgICAsIG1fc291cmNlSUQoc291
cmNlSUQpCi0gICAgLCBtX2xpbmUobGluZSkKKyAgICAsIG1fdGV4dFBvc2l0aW9uKHRleHRQb3Np
dGlvbikKICAgICAsIG1faXNWYWxpZCh0cnVlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IGMyM2E0M2QuLjc0ZTBhNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1l
LmgKQEAgLTMzLDE0ICszMywxNSBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEphdmFTY3JpcHRDYWxsRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2Fs
bEZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxG
cmFtZT4gY3JlYXRlKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lLCBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNhbGxlciwgaW50cHRyX3Qgc291
cmNlSUQsIGludCBsaW5lKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJh
bWU+IGNyZWF0ZShjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFt
ZSwgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjYWxsZXIsIGludHB0cl90IHNvdXJj
ZUlELCBjb25zdCBUZXh0UG9zaXRpb24xJiB0ZXh0UG9zaXRpb24pCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdnZXJDYWxsRnJhbWUs
IGNhbGxlciwgc291cmNlSUQsIGxpbmUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBK
YXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZyYW1lLCBjYWxsZXIsIHNvdXJjZUlELCB0
ZXh0UG9zaXRpb24pKTsKICAgICB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKQpAQCAtNTQsMTEg
KzU1LDEzIEBAIHB1YmxpYzoKICAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYWxsZXIoKTsKIAog
ICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJRDsgfQotICAg
IGludCBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9saW5lOyB9Ci0gICAgdm9pZCB1cGRhdGUoY29u
c3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNv
dXJjZUlELCBpbnQgbGluZSkKKyAgICBpbnQgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBv
c2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpOyB9CisgICAgaW50IGNvbHVtbigpIGNvbnN0IHsg
cmV0dXJuIG1fdGV4dFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCk7IH0KKworICAgIHZv
aWQgdXBkYXRlKGNvbnN0IEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1l
LCBpbnRwdHJfdCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uMSYgdGV4dFBvc2l0aW9uKQog
ICAgIHsKICAgICAgICAgbV9kZWJ1Z2dlckNhbGxGcmFtZSA9IGRlYnVnZ2VyQ2FsbEZyYW1lOwot
ICAgICAgICBtX2xpbmUgPSBsaW5lOworICAgICAgICBtX3RleHRQb3NpdGlvbiA9IHRleHRQb3Np
dGlvbjsKICAgICAgICAgbV9zb3VyY2VJRCA9IHNvdXJjZUlEOwogICAgICAgICBtX2lzVmFsaWQg
PSB0cnVlOwogICAgIH0KQEAgLTcyLDEyICs3NSwxMiBAQCBwdWJsaWM6CiAgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlKGNvbnN0IEpTQzo6VVN0cmluZyYgc2NyaXB0LCBKU0M6OkpTVmFsdWUmIGV4
Y2VwdGlvbikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIEphdmFTY3JpcHRDYWxsRnJhbWUo
Y29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxG
cmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgaW50IGxpbmUpOworICAgIEphdmFTY3Jp
cHRDYWxsRnJhbWUoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIFBhc3NSZWZQdHI8SmF2
YVNjcmlwdENhbGxGcmFtZT4gY2FsbGVyLCBpbnRwdHJfdCBzb3VyY2VJRCwgY29uc3QgVGV4dFBv
c2l0aW9uMSYpOwogCiAgICAgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSBtX2RlYnVnZ2VyQ2FsbEZy
YW1lOwogICAgIFJlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBtX2NhbGxlcjsKICAgICBpbnRw
dHJfdCBtX3NvdXJjZUlEOwotICAgIGludCBtX2xpbmU7CisgICAgVGV4dFBvc2l0aW9uMSBtX3Rl
eHRQb3NpdGlvbjsKICAgICBib29sIG1faXNWYWxpZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA5ODQ1Mjc3Li5iMjM2
NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC00NDAsNiArNDQwLDI0IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNldEph
dmFTY3JpcHRQYXVzZWQoRnJhbWVWaWV3KiB2aWV3LCBib29sIHBhdXNlZCkKICAgICB9CiB9CiAK
K3ZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmNyZWF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQo
Y29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbnRwdHJfdCBzb3Vy
Y2VJRCwgaW50IGxpbmVOdW1iZXIpCit7CisgICAgVGV4dFBvc2l0aW9uMSB0ZXh0UG9zaXRpb24o
V1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBXVEY6Ok9u
ZUJhc2VkTnVtYmVyOjpiYXNlKCkpOworICAgIG1fY3VycmVudENhbGxGcmFtZSA9IEphdmFTY3Jp
cHRDYWxsRnJhbWU6OmNyZWF0ZShkZWJ1Z2dlckNhbGxGcmFtZSwgbV9jdXJyZW50Q2FsbEZyYW1l
LCBzb3VyY2VJRCwgdGV4dFBvc2l0aW9uKTsKKyAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1
Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKK30KKwordm9pZCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6dXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChjb25zdCBEZWJ1Z2dl
ckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlELCBpbnQgbGlu
ZU51bWJlcikKK3sKKyAgICBBU1NFUlQobV9jdXJyZW50Q2FsbEZyYW1lKTsKKyAgICBpZiAoIW1f
Y3VycmVudENhbGxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVGV4dFBvc2l0aW9uMSB0
ZXh0UG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1i
ZXIpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNlKCkpOworICAgIG1fY3VycmVudENhbGxGcmFt
ZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgdGV4dFBvc2l0aW9uKTsKKyAg
ICBwYXVzZUlmTmVlZGVkKHRvUGFnZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpKTsKK30KKwogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cGF1c2VJZk5lZWRlZChQYWdl
KiBwYWdlKQogewogICAgIGlmIChtX3BhdXNlZCkKQEAgLTQ4MCwyNCArNDk4LDE0IEBAIHZvaWQg
U2NyaXB0RGVidWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoUGFnZSogcGFnZSkKIAogdm9pZCBTY3Jp
cHREZWJ1Z1NlcnZlcjo6Y2FsbEV2ZW50KGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dl
ckNhbGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQogewotICAgIGlm
IChtX3BhdXNlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZyYW1lID0g
SmF2YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBtX2N1cnJlbnRD
YWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVlZGVkKHRvUGFn
ZShkZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICBpZiAoIW1f
cGF1c2VkKQorICAgICAgICBjcmVhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2Vy
Q2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiB9CiAKIHZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OmF0U3RhdGVtZW50KGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxG
cmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQogewotICAgIGlmIChtX3Bh
dXNlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKG1fY3VycmVudENhbGxGcmFtZSk7
Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
Y3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGlu
ZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHlu
YW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAgaWYgKCFtX3BhdXNlZCkKKyAgICAgICAgdXBkYXRl
Q2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxp
bmVOdW1iZXIpOwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZXR1cm5FdmVudChjb25z
dCBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUsIGludHB0cl90IHNvdXJjZUlE
LCBpbnQgbGluZU51bWJlcikKQEAgLTUwNSwxMiArNTEzLDcgQEAgdm9pZCBTY3JpcHREZWJ1Z1Nl
cnZlcjo6cmV0dXJuRXZlbnQoY29uc3QgRGVidWdnZXJDYWxsRnJhbWUmIGRlYnVnZ2VyQ2FsbEZy
YW1lLAogICAgIGlmIChtX3BhdXNlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1f
Y3VycmVudENhbGxGcmFtZSk7Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fY3VycmVudENhbGxGcmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZy
YW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7Ci0gICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVi
dWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9iamVjdCgpKSk7CisgICAgdXBkYXRlQ2FsbEZy
YW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1i
ZXIpOwogCiAgICAgLy8gZGV0YWNoIG1heSBoYXZlIGJlZW4gY2FsbGVkIGR1cmluZyBwYXVzZUlm
TmVlZGVkCiAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCkBAIC01MjcsMjQgKzUzMCwxNiBA
QCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpleGNlcHRpb24oY29uc3QgRGVidWdnZXJDYWxsRnJh
bWUmIGRlYnVnZ2VyQ2FsbEZyYW1lLCBpbgogICAgIGlmIChtX3BhdXNlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKG1fY3VycmVudENhbGxGcmFtZSk7Ci0gICAgaWYgKCFtX2N1cnJl
bnRDYWxsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX3BhdXNlT25FeGNlcHRp
b25zU3RhdGUgPT0gUGF1c2VPbkFsbEV4Y2VwdGlvbnMgfHwgKG1fcGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZSA9PSBQYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zICYmICFoYXNIYW5kbGVyKSkKICAgICAg
ICAgbV9wYXVzZU9uTmV4dFN0YXRlbWVudCA9IHRydWU7CiAKLSAgICBtX2N1cnJlbnRDYWxsRnJh
bWUtPnVwZGF0ZShkZWJ1Z2dlckNhbGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwotICAg
IHBhdXNlSWZOZWVkZWQodG9QYWdlKGRlYnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmpl
Y3QoKSkpOworICAgIHVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxs
RnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZl
cjo6d2lsbEV4ZWN1dGVQcm9ncmFtKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNh
bGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQogewotICAgIGlmICht
X3BhdXNlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jdXJyZW50Q2FsbEZyYW1lID0gSmF2
YVNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBtX2N1cnJlbnRDYWxs
RnJhbWUsIHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLSAgICBwYXVzZUlmTmVlZGVkKHRvUGFnZShk
ZWJ1Z2dlckNhbGxGcmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpKTsKKyAgICBpZiAoIW1fcGF1
c2VkKQorICAgICAgICBjcmVhdGVDYWxsRnJhbWVBbmRQYXVzZUlmTmVlZGVkKGRlYnVnZ2VyQ2Fs
bEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7CiB9CiAKIHZvaWQgU2NyaXB0RGVidWdTZXJ2
ZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNh
bGxGcmFtZSwgaW50cHRyX3Qgc291cmNlSUQsIGludCBsaW5lTnVtYmVyKQpAQCAtNTUyLDEyICs1
NDcsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaWRFeGVjdXRlUHJvZ3JhbShjb25zdCBE
ZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRgogICAgIGlmIChtX3BhdXNlZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY3VycmVudENhbGxGcmFtZSk7Ci0gICAgaWYgKCFt
X2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY3VycmVudENhbGxG
cmFtZS0+dXBkYXRlKGRlYnVnZ2VyQ2FsbEZyYW1lLCBzb3VyY2VJRCwgbGluZU51bWJlcik7Ci0g
ICAgcGF1c2VJZk5lZWRlZCh0b1BhZ2UoZGVidWdnZXJDYWxsRnJhbWUuZHluYW1pY0dsb2JhbE9i
amVjdCgpKSk7CisgICAgdXBkYXRlQ2FsbEZyYW1lQW5kUGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNh
bGxGcmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwogCiAgICAgLy8gVHJlYXQgc3RlcHBpbmcg
b3ZlciB0aGUgZW5kIG9mIGEgcHJvZ3JhbSBsaWtlIHN0ZXBwaW5nIG91dC4KICAgICBpZiAobV9j
dXJyZW50Q2FsbEZyYW1lID09IG1fcGF1c2VPbkNhbGxGcmFtZSkKQEAgLTU3MCwxMyArNTYwLDgg
QEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlkUmVhY2hCcmVha3BvaW50KGNvbnN0IERlYnVn
Z2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGwKICAgICBpZiAobV9wYXVzZWQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEFTU0VSVChtX2N1cnJlbnRDYWxsRnJhbWUpOwotICAgIGlmICghbV9jdXJy
ZW50Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX3BhdXNlT25OZXh0U3RhdGVt
ZW50ID0gdHJ1ZTsKLSAgICBtX2N1cnJlbnRDYWxsRnJhbWUtPnVwZGF0ZShkZWJ1Z2dlckNhbGxG
cmFtZSwgc291cmNlSUQsIGxpbmVOdW1iZXIpOwotICAgIHBhdXNlSWZOZWVkZWQodG9QYWdlKGRl
YnVnZ2VyQ2FsbEZyYW1lLmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpOworICAgIHVwZGF0ZUNhbGxG
cmFtZUFuZFBhdXNlSWZOZWVkZWQoZGVidWdnZXJDYWxsRnJhbWUsIHNvdXJjZUlELCBsaW5lTnVt
YmVyKTsKIH0KIAogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlv
bnNTb29uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oCmluZGV4IDgxY2Q5YWMuLjlkMzgwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtMTE4LDYgKzExOCw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFBhcnNlU291cmNlKGNvbnN0IExpc3RlbmVyU2V0JiBsaXN0ZW5l
cnMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291cmNlLCBlbnVtIFNjcmlwdFdvcmxkVHlwZSk7
CiAgICAgdm9pZCBkaXNwYXRjaEZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgTGlzdGVuZXJTZXQm
IGxpc3RlbmVycywgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2UsIGludCBlcnJvckxpbmUs
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAorICAgIHZvaWQgY3JlYXRlQ2FsbEZyYW1l
QW5kUGF1c2VJZk5lZWRlZChjb25zdCBKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lJiwgaW50cHRyX3Qg
c291cmNlSUQsIGludCBsaW5lTnVtYmVyKTsKKyAgICB2b2lkIHVwZGF0ZUNhbGxGcmFtZUFuZFBh
dXNlSWZOZWVkZWQoY29uc3QgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYsIGludHB0cl90IHNvdXJj
ZUlELCBpbnQgbGluZU51bWJlcik7CiAgICAgdm9pZCBwYXVzZUlmTmVlZGVkKFBhZ2UqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goSlNDOjpKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwppbmRleCA4YzlkOThlLi5lYjlk
ZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlw
dC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwpA
QCAtMjAxLDggKzIwMSwxMCBAQCBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZy
YW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQogICAgIHZhciBzY3JpcHQg
PSBmdW5jLnNjcmlwdCgpOwogICAgIHZhciBzb3VyY2VJRCA9IHNjcmlwdCAmJiBzY3JpcHQuaWQo
KTsKIAotICAgIC8vIEdldCBsaW5lIG51bWJlci4KLSAgICB2YXIgbGluZSA9IERlYnVnZ2VyU2Ny
aXB0Ll92OFRvV2Via2l0TGluZU51bWJlcihmcmFtZU1pcnJvci5zb3VyY2VMaW5lKCkpOworICAg
IC8vIEdldCBsb2NhdGlvbi4KKyAgICB2YXIgbG9jYXRpb24gID0gZnJhbWVNaXJyb3Iuc291cmNl
TG9jYXRpb24oKTsKKyAgICB2YXIgbGluZSA9IERlYnVnZ2VyU2NyaXB0Ll92OFRvV2Via2l0TGlu
ZU51bWJlcihsb2NhdGlvbi5saW5lKTsKKyAgICB2YXIgY29sdW1uID0gRGVidWdnZXJTY3JpcHQu
X3Y4VG9XZWJraXRMaW5lTnVtYmVyKGxvY2F0aW9uLmNvbHVtbik7CiAKICAgICAvLyBHZXQgdGhp
cyBvYmplY3QuCiAgICAgdmFyIHRoaXNPYmplY3QgPSBmcmFtZU1pcnJvci5kZXRhaWxzXy5yZWNl
aXZlcigpOwpAQCAtMjUwLDYgKzI1Miw3IEBAIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJvclRv
SlNDYWxsRnJhbWUgPSBmdW5jdGlvbihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCiAgICAgcmV0
dXJuIHsKICAgICAgICAgInNvdXJjZUlEIjogc291cmNlSUQsCiAgICAgICAgICJsaW5lIjogbGlu
ZSwKKyAgICAgICAgImNvbHVtbiI6IGNvbHVtbiwKICAgICAgICAgImZ1bmN0aW9uTmFtZSI6IGZ1
bmN0aW9uTmFtZSwKICAgICAgICAgInR5cGUiOiAiZnVuY3Rpb24iLAogICAgICAgICAidGhpc09i
amVjdCI6IHRoaXNPYmplY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ph
dmFTY3JpcHRDYWxsRnJhbWUuY3BwCmluZGV4IDIwYmYzNzguLjViYjQzNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCkBAIC04
MCw2ICs4MCwxNiBAQCBpbnQgSmF2YVNjcmlwdENhbGxGcmFtZTo6bGluZSgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK2ludCBKYXZhU2NyaXB0Q2FsbEZyYW1lOjpjb2x1bW4oKSBjb25zdAor
eworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2ODo6Q29udGV4dDo6U2Nv
cGUgY29udGV4dFNjb3BlKG1fZGVidWdnZXJDb250ZXh0LmdldCgpKTsKKyAgICB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gcmVzdWx0ID0gbV9jYWxsRnJhbWUuZ2V0KCktPkdldCh2OFN0cmluZygiY29s
dW1uIikpOworICAgIGlmIChyZXN1bHQtPklzSW50MzIoKSkKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dC0+SW50MzJWYWx1ZSgpOworICAgIHJldHVybiAwOworfQorCiBTdHJpbmcgSmF2YVNjcmlwdENh
bGxGcmFtZTo6ZnVuY3Rpb25OYW1lKCkgY29uc3QKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFu
ZGxlU2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2Fs
bEZyYW1lLmgKaW5kZXggOTVhMDUxMC4uMmQxNDU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJs
aWM6CiAKICAgICBpbnQgc291cmNlSUQoKSBjb25zdDsKICAgICBpbnQgbGluZSgpIGNvbnN0Owor
ICAgIGludCBjb2x1bW4oKSBjb25zdDsKICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lKCkgY29uc3Q7
CiAgICAgCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNjb3BlQ2hhaW4oKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRl
eCA5MDc5N2ZiLi5lZWU1YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC01NDMsNiArNTQzLDcgQEAgSW5qZWN0ZWRTY3JpcHQu
Q2FsbEZyYW1lUHJveHkgPSBmdW5jdGlvbihpZCwgY2FsbEZyYW1lKQogICAgIHRoaXMuZnVuY3Rp
b25OYW1lID0gKHRoaXMudHlwZSA9PT0gImZ1bmN0aW9uIiA/IGNhbGxGcmFtZS5mdW5jdGlvbk5h
bWUgOiAiIik7CiAgICAgdGhpcy5zb3VyY2VJRCA9IGNhbGxGcmFtZS5zb3VyY2VJRDsKICAgICB0
aGlzLmxpbmUgPSBjYWxsRnJhbWUubGluZTsKKyAgICB0aGlzLmNvbHVtbiA9IGNhbGxGcmFtZS5j
b2x1bW47CiAgICAgdGhpcy5zY29wZUNoYWluID0gdGhpcy5fd3JhcFNjb3BlQ2hhaW4oY2FsbEZy
YW1lKTsKICAgICB0aGlzLndvcmxkSWQgPSBpbmplY3RlZFNjcmlwdElkOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCmluZGV4IDIyNTA1
OWQuLmRiMGUwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlw
dENhbGxGcmFtZS5pZGwKQEAgLTQzLDYgKzQzLDcgQEAgbW9kdWxlIGluc3BlY3RvciB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBKYXZhU2NyaXB0Q2FsbEZyYW1lIGNhbGxlcjsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc291cmNlSUQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIGxpbmU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNvbHVt
bjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIEFycmF5IHNjb3Bl
Q2hhaW47CiAgICAgICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IHNjb3BlVHlwZShpbiBpbnQg
c2NvcGVJbmRleCk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBP
YmplY3QgdGhpc09iamVjdDsK
</data>
<flag name="review"
          id="70554"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>