<?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>40364</bug_id>
          
          <creation_ts>2010-06-09 07:33:23 -0700</creation_ts>
          <short_desc>Web Inspector: don&apos;t push script sources to frontend if scripts panel is inactive</short_desc>
          <delta_ts>2010-06-11 00:05:30 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235777</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-06-09 07:33:23 -0700</bug_when>
    <thetext>Currently v8 debugger is enabled when frontend is attached (see https://bugs.webkit.org/show_bug.cgi?id=40289).
As a result, script sources are always pushed to frontend even if scripts panel is inactive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235783</commentid>
    <comment_count>1</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-09 07:58:37 -0700</bug_when>
    <thetext>Pushing only scripts metadata and requesting script source lazily from the front end would reduce traffic between InspectorController and the front end. It would improve remote debugger performance so both engines should benefit from that. Another option would be in case of v8 to push already compiled scripts only when scripts panel is shown or when debugger hits a breakpoint. Any objections to the first approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236397</commentid>
    <comment_count>2</comment_count>
      <attachid>58378</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 09:45:01 -0700</bug_when>
    <thetext>Created attachment 58378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236403</commentid>
    <comment_count>3</comment_count>
      <attachid>58378</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-10 09:55:30 -0700</bug_when>
    <thetext>Comment on attachment 58378
Patch

WebCore/inspector/InspectorBackend.h:94
 +      void resolveScriptSource(long callId, const String&amp; sourceID);
getScriptSource? There is not much to resolve there...

WebCore/inspector/InspectorController.cpp:1698
 +      String dataToSend = ScriptDebugServer::shared().isDebuggerAlwaysEnabled() ? &quot;&quot; : data;
Can we make it always lazy regardless the setting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236414</commentid>
    <comment_count>4</comment_count>
      <attachid>58381</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 10:22:20 -0700</bug_when>
    <thetext>Created attachment 58381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236417</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 10:24:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 58378 [details])
&gt; WebCore/inspector/InspectorBackend.h:94
&gt;  +      void resolveScriptSource(long callId, const String&amp; sourceID);
&gt; getScriptSource? There is not much to resolve there...
&gt; 
Done.

&gt; WebCore/inspector/InspectorController.cpp:1698
&gt;  +      String dataToSend = ScriptDebugServer::shared().isDebuggerAlwaysEnabled() ? &quot;&quot; : data;
&gt; Can we make it always lazy regardless the setting?
Done. Now it&apos;s lazy no matter what kind of debugger is used. I had some concerns about slowing things down in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236424</commentid>
    <comment_count>6</comment_count>
      <attachid>58384</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 10:33:03 -0700</bug_when>
    <thetext>Created attachment 58384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236442</commentid>
    <comment_count>7</comment_count>
      <attachid>58384</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-10 10:55:48 -0700</bug_when>
    <thetext>Comment on attachment 58384
Patch

This is scary!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236447</commentid>
    <comment_count>8</comment_count>
      <attachid>58384</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 11:00:26 -0700</bug_when>
    <thetext>Comment on attachment 58384
Patch

Clearing flags on attachment: 58384

Committed r60965: &lt;http://trac.webkit.org/changeset/60965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236448</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-10 11:00:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236710</commentid>
    <comment_count>10</comment_count>
      <attachid>58384</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-06-11 00:05:30 -0700</bug_when>
    <thetext>Comment on attachment 58384
Patch

This looks like a good solution! Nice!

I know this landed already (Sorry I&apos;m so far behind). There
were some typos in the comments, nothing too important. Just
keep an eye out for these in future patches.

&gt; +        script content lazily at the moment it should be displyed. It is critical for

Typo: s/displyed/displayed/;
(this is in each ChangeLog)


&gt; +    // Don&apos;t send script content to the front end until it&apos;s realy needed.

Typo: s/realy/really/;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58378</attachid>
            <date>2010-06-10 09:45:01 -0700</date>
            <delta_ts>2010-06-10 10:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40364-20100610204458.patch</filename>
            <type>text/plain</type>
            <size>15515</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2FmMjhkYjBmM2FiMWQwMTFiNDlhYjc4NWVlYTA2MjMzNTJkYjgyZi4uODNmNWQyMGM1OTAzZTFl
YjYwMmJmYjRmYzA0ZjcyOTVlYTk1ZmYyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNi0xMCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0byByZWR1Y2UgdGhl
IGZyb250IGVuZCBzdGFydCB1cCB0aW1lIGRvbid0IHB1c2ggc2NyaXB0CisgICAgICAgIHNvdXJj
ZXMgdG8gZnJvbnRlbmQgaWYgZGVidWdnZXIgaXMgYWx3YXlzIGVuYWJsZWQsIGluc3RlYWQgcmVx
dWVzdAorICAgICAgICBzY3JpcHQgY29udGVudCBsYXppbHkgYXQgdGhlIG1vbWVudCBpdCBzaG91
bGQgYmUgZGlzcGx5ZWQuIEl0IGlzIGNyaXRpY2FsIGZvcgorICAgICAgICBhbHdheXMgZW5hYmxl
ZCBkZWJ1Z2dlciBiZWNhdXNlIGluIHRoYXQgY2FzZSBsb3RzIG9mIHNjcmlwdCBtYXkgaGF2ZQor
ICAgICAgICBhbHJlYWR5IGJlZW4gcGFyc2VkIHdoZW4gdGhlIGZyb250IGVuZCBpcyBvcGVuaW5n
IGFuZCBwdXNoaW5nIGFsbAorICAgICAgICBvZiB0aGVtIGF0IG9uY2UgbWF5IHNsb3cgdGhpbmdz
IGRvd24oZXZlbiB0aG91Z2ggdGhlIHNjcmlwdCBzb3VyY2VzIHdpbGwgbmV2ZXIKKyAgICAgICAg
YmUgdXNlZCBpZiBzY3JpcHRzIHBhbmVsIGlzbid0IG9wZW4pLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjQKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tl
bmQ6OnJlc29sdmVTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb2x2ZVNjcmlwdFNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRQYXJzZVNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6
OmRpZFJlc29sdmVTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2Vu
ZFN0dWIuanM6CisgICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckJhY2tlbmRTdHViLnBy
b3RvdHlwZS5lZGl0U2NyaXB0U291cmNlKToKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVj
dG9yQmFja2VuZFN0dWIucHJvdG90eXBlLnJlc29sdmVTY3JpcHRTb3VyY2UpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRWaWV3LnByb3RvdHlwZS5zZXR1cFNvdXJjZUZyYW1lSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlLl9kaWRSZXNvbHZlU2NyaXB0U291
cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5fc291cmNl
RnJhbWVTZXR1cEZpbmlzaGVkKToKKwogMjAxMC0wNi0xMCAgUmFpbmUgTWFrZWxhaW5lbiAgPHJh
aW5lLm1ha2VsYWluZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcApp
bmRleCA4YTU1OTg2MGEzYzY4MTFjMTE0OWUyYzRjNzg3OWQ3MDk1ZmUyOGRiLi5hYmQ1YmZmNGIy
MDA0NGQ2YTQyZmM5ZDdjN2JlZjg2ZmQ2YWM0OGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmNwcApAQCAtMjIxLDYgKzIyMSwxMiBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6
OmVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNv
bgogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmVkaXRTY3JpcHRTb3VyY2UoY2FsbElk
LCBzb3VyY2VJRCwgbmV3Q29udGVudCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQmFja2VuZDo6cmVz
b2x2ZVNjcmlwdFNvdXJjZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3sK
KyAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQorICAgICAgICBtX2luc3BlY3RvckNvbnRy
b2xsZXItPnJlc29sdmVTY3JpcHRTb3VyY2UoY2FsbElkLCBzb3VyY2VJRCk7Cit9CisKIHZvaWQg
SW5zcGVjdG9yQmFja2VuZDo6ZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpCiB7CiAgICAgaWYg
KG1faW5zcGVjdG9yQ29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApp
bmRleCAyNGJhMGM1OWMyYTEwNTZjZDlkZDRmZjMxZTBmNTlmMWFmNDdjMDE2Li5jM2Y0OTQ1M2Fj
OWE5OTRkMjdhZWQyMWRhNjQ4MWYwMjY5NDYyNThkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5oCkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhdXNlT25F
eGNlcHRpb25zU3RhdGUobG9uZyBwYXVzZVN0YXRlKTsKIAogICAgIHZvaWQgZWRpdFNjcmlwdFNv
dXJjZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU3RyaW5nJiBu
ZXdDb250ZW50KTsKKyAgICB2b2lkIHJlc29sdmVTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNv
bnN0IFN0cmluZyYgc291cmNlSUQpOwogCiAgICAgdm9pZCBlbmFibGVQcm9maWxlcihib29sIGFs
d2F5cyk7CiAgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAppbmRleCBjODk0Y2FjZjQzNTVkMDdkNGU1OThkZjA1
MmIwM2FmNTgxMGRjNDQ1Li4wMzAxYzJjZTlhYWU0MWE4MzM4ODhmZjQ0YmI5YjRhZTE2ZmQxMGY0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbApAQCAtNjYsNiArNjYsNyBA
QCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShp
biBsb25nIHBhdXNlT25FeGNlcHRpb25zU3RhdGUpOwogCiAgICAgICAgIHZvaWQgZWRpdFNjcmlw
dFNvdXJjZShpbiBsb25nIGNhbGxJZCwgaW4gRE9NU3RyaW5nIHNvdXJjZUlELCBpbiBET01TdHJp
bmcgbmV3Q29udGVudCk7CisgICAgICAgIHZvaWQgcmVzb2x2ZVNjcmlwdFNvdXJjZShpbiBsb25n
IGNhbGxJZCwgaW4gRE9NU3RyaW5nIHNvdXJjZUlEKTsKIAogICAgICAgICB2b2lkIGVuYWJsZVBy
b2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKICAgICAgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIo
aW4gYm9vbGVhbiBhbHdheXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAppbmRleCBiZjcyNTcyNjU2ZTQxYTljMDI5YjY2NTdkNTNhZDZmMmU4MGJiMDdkLi5lNWQ1
OTkwOWM1NmM0M2Y2N2EzZjY0ZWMyNWJhNDg4NTk5ZmIwMTdmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjY3LDYgKzY2Nyw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAg
ICAgICBtX2NvdW50cy5jbGVhcigpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQog
ICAgICAgICBtX3NvdXJjZUlEVG9VUkwuY2xlYXIoKTsKKyAgICAgICAgbV9zY3JpcHRJRFRvQ29u
dGVudC5jbGVhcigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYm
IFVTRShKU0MpCiAgICAgICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKQEAgLTE2MzMsNiArMTYzNCwx
NCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxs
SWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsCiAgICAgbV9mcm9udGVuZC0+ZGlkRWRpdFNjcmlw
dFNvdXJjZShjYWxsSWQsIHN1Y2Nlc3MsIHJlc3VsdCwgY2FsbEZyYW1lcy5nZXQoKSk7CiB9CiAK
K3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb2x2ZVNjcmlwdFNvdXJjZShsb25nIGNhbGxJ
ZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmQpCisgICAg
ICAgIHJldHVybjsKKyAgICBTdHJpbmcgc2NyaXB0U291cmNlID0gbV9zY3JpcHRJRFRvQ29udGVu
dC5nZXQoc291cmNlSUQpOworICAgIG1fZnJvbnRlbmQtPmRpZFJlc29sdmVTY3JpcHRTb3VyY2Uo
Y2FsbElkLCBzY3JpcHRTb3VyY2UpOworfQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJl
c3VtZURlYnVnZ2VyKCkKIHsKICAgICBpZiAoIW1fZGVidWdnZXJFbmFibGVkKQpAQCAtMTY4Myw3
ICsxNjkyLDExIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVtb3ZlQnJlYWtwb2ludChj
b25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lCiAKIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgU2NyaXB0V29ybGRU
eXBlIHdvcmxkVHlwZSkKIHsKLSAgICBtX2Zyb250ZW5kLT5wYXJzZWRTY3JpcHRTb3VyY2Uoc291
cmNlSUQsIHVybCwgZGF0YSwgZmlyc3RMaW5lLCB3b3JsZFR5cGUpOworICAgIC8vIElmIGRlYnVn
Z2VyIGlzIGFsd2F5cyBlbmFibGVkIGl0IG1heSB0YWtlIGZvciB0b28gbG9uZyB0byBzZW5kIHNv
dXJjZXMgb2YgYWxsCisgICAgLy8gc2NyaXB0cyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHBhcnNl
ZCBiZWZvcmUgdGhlIGZyb250ZW5kIHdhcyBhdHRhY2hlZC4gVG8KKyAgICAvLyBhdm9pZCB0aGlz
IG92ZXJoZWFkIHRoZWlyIHNvdXJjZXMgYXJlIHJlc29sdmVkIGxhemlseS4KKyAgICBTdHJpbmcg
ZGF0YVRvU2VuZCA9IFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5pc0RlYnVnZ2VyQWx3YXlz
RW5hYmxlZCgpID8gIiIgOiBkYXRhOworICAgIG1fZnJvbnRlbmQtPnBhcnNlZFNjcmlwdFNvdXJj
ZShzb3VyY2VJRCwgdXJsLCBkYXRhVG9TZW5kLCBmaXJzdExpbmUsIHdvcmxkVHlwZSk7CiAKICAg
ICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY5OSw2ICsxNzEyLDcg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcm
IHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIHUKICAgICB9CiAKICAgICBtX3NvdXJjZUlEVG9VUkwu
c2V0KHNvdXJjZUlELCB1cmwpOworICAgIG1fc2NyaXB0SURUb0NvbnRlbnQuc2V0KHNvdXJjZUlE
LCBkYXRhKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpmYWlsZWRUb1BhcnNlU291
cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUs
IGludCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGJkYTI3YWY0MTViNjYxOGI5NmMyOGQ4M2E1
NTdlYzkzNTUyMGJiNGIuLmY4NjAwMTQ2NzllZDIxZWU5OTBhZWFhYjc5MDQzY2MyMzc1ODhiODMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTI0Miw2ICsyNDIs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkZWJ1Z2dlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2RlYnVnZ2VyRW5hYmxlZDsgfQogCiAgICAgdm9pZCBlZGl0U2NyaXB0U291cmNlKGxvbmcgY2Fs
bElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQpOwor
ICAgIHZvaWQgcmVzb2x2ZVNjcmlwdFNvdXJjZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VJRCk7CiAKICAgICB2b2lkIHJlc3VtZURlYnVnZ2VyKCk7CiAgICAgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IGN1cnJlbnRDYWxsRnJhbWVzKCk7CkBAIC0zNjEsNiArMzYy
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd247CiAgICAg
U2NyaXB0U3RhdGUqIG1fcGF1c2VkU2NyaXB0U3RhdGU7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gbV9zb3VyY2VJRFRvVVJMOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc2Ny
aXB0SURUb0NvbnRlbnQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFNvdXJjZUJyZWFrcG9pbnRzPiBt
X3N0aWNreUJyZWFrcG9pbnRzOwogCiAgICAgYm9vbCBtX3Byb2ZpbGVyRW5hYmxlZDsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAppbmRleCBhMzYxODUxODM5M2Y4MGZhZWIx
YzRlOTQyY2FiYzgyZTI5ZWMxNGQ1Li43Mjc4ZGRiYmVlNTAzZGFjNjRiYTM1YWU5MGQ0MTFmNDE0
ODQwYzk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5j
cHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCkBAIC0zNzAs
NiArMzcwLDE1IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEVkaXRTY3JpcHRTb3VyY2Uo
bG9uZyBjYWxsSWQsIGJvb2wgc3VjY2VzcywgY29uc3QgU3RyCiAgICAgZnVuY3Rpb24uY2FsbCgp
OwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRSZXNvbHZlU2NyaXB0U291cmNlKGxv
bmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAgICBTY3JpcHRGdW5jdGlvbkNh
bGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOworICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KCJkaWRSZXNvbHZlU2NyaXB0U291cmNlIik7CisgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoY2FsbElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXN1bHQp
OworICAgIGZ1bmN0aW9uLmNhbGwoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6cHJv
ZmlsZXJXYXNFbmFibGVkKCkKIHsKICAgICBjYWxsU2ltcGxlRnVuY3Rpb24oInByb2ZpbGVyV2Fz
RW5hYmxlZCIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKaW5kZXggNjlkNGM0
ZmY5OTRiODc4NzAxOWVmNGI3MTM4YjZlODE0YjZiNzk3OC4uMDhkZThmNTY5Yjc0NzE1NTkxZWU2
OTVkM2EzZThhNDNjMWFhYTk1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5o
CkBAIC05OSw2ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCByZXN1
bWVkU2NyaXB0KCk7CiAKICAgICAgICAgdm9pZCBkaWRFZGl0U2NyaXB0U291cmNlKGxvbmcgY2Fs
bElkLCBib29sIHN1Y2Nlc3MsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBTZXJpYWxpemVkU2NyaXB0
VmFsdWUqIG5ld0NhbGxGcmFtZXMpOworICAgICAgICB2b2lkIGRpZFJlc29sdmVTY3JpcHRTb3Vy
Y2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgcmVzdWx0KTsKIAogICAgICAgICB2b2lkIHBy
b2ZpbGVyV2FzRW5hYmxlZCgpOwogICAgICAgICB2b2lkIHByb2ZpbGVyV2FzRGlzYWJsZWQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5k
U3R1Yi5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kU3R1
Yi5qcwppbmRleCA0NjcwYWYxNDcxYWZmM2M5MWNhY2RlYzA3NGQ4N2Q5ZTM5MDI3OTk5Li5jMGE1
MmY5ZjJlNjYzNTM2MDc0ZjMxOTlmMmNhODJhOTk4ODc5MjJmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmRTdHViLmpzCkBAIC0xODUsNiAr
MTg1LDE2IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUgPSB7
CiAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKHZhbHVl
KTsKICAgICB9LAogCisgICAgZWRpdFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRpZEVkaXRTY3JpcHRTb3VyY2UoY2FsbElkLCBmYWxzZSk7Cisg
ICAgfSwKKworICAgIHJlc29sdmVTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGNhbGxJZCwgc291cmNl
SUQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZGlkUmVzb2x2ZVNjcmlwdFNvdXJjZShj
YWxsSWQsIG51bGwpOworICAgIH0sCisKICAgICByZXN1bWVEZWJ1Z2dlcjogZnVuY3Rpb24oKQog
ICAgIHsKICAgICB9LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdFZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcwpp
bmRleCA3MWU3OGFkOGI3NDhlZGVhYmJjYTcyMjU1ZmY3ZTc4OGU3YjViOTZjLi5mYTRmNTU1YjY2
YjdkZDhlNDRhMzViOGMyYzllNjdhMGQ5YWUwOWNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0Vmlldy5qcwpAQCAtNTAsMTIgKzUwLDI4IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZnJhbWVOZWVk
c1NldHVwKQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVO
ZWVkc1NldHVwOwogCiAgICAgICAgIHRoaXMuYXR0YWNoKCk7CiAKKyAgICAgICAgaWYgKHRoaXMu
c2NyaXB0LnNvdXJjZSkKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hl
ZCgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHZhciBjYWxsYmFja0lkID0gV2ViSW5z
cGVjdG9yLkNhbGxiYWNrLndyYXAodGhpcy5fZGlkUmVzb2x2ZVNjcmlwdFNvdXJjZS5iaW5kKHRo
aXMpKQorICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZXNvbHZlU2NyaXB0U291cmNlKGNh
bGxiYWNrSWQsIHRoaXMuc2NyaXB0LnNvdXJjZUlEKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAg
ICBfZGlkUmVzb2x2ZVNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5zY3JpcHQuc291cmNlID0gc291cmNlIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
PHNvdXJjZSBpcyBub3QgYXZhaWxhYmxlPiIpOworICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZVNl
dHVwRmluaXNoZWQoKTsKKyAgICB9LAorCisgICAgX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hlZDog
ZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgdGhpcy5zb3VyY2VGcmFtZS5zZXRDb250ZW50KCJ0
ZXh0L2phdmFzY3JpcHQiLCB0aGlzLl9wcmVwZW5kV2hpdGVzcGFjZSh0aGlzLnNjcmlwdC5zb3Vy
Y2UpKTsKICAgICAgICAgdGhpcy5fc291cmNlRnJhbWVTZXR1cCA9IHRydWU7Ci0gICAgICAgIGRl
bGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7CiAgICAgfSwKIAogICAgIF9wcmVwZW5kV2hpdGVz
cGFjZTogZnVuY3Rpb24oY29udGVudCkgewpAQCAtMTA2LDEwICsxMjIsMTEgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdFZpZXcucHJvdG90eXBlID0gewogICAgIHNob3dpbmdGaXJzdFNlYXJjaFJlc3Vs
dDogV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlLnNob3dpbmdGaXJzdFNlYXJjaFJl
c3VsdCwKICAgICBzaG93aW5nTGFzdFNlYXJjaFJlc3VsdDogV2ViSW5zcGVjdG9yLlNvdXJjZVZp
ZXcucHJvdG90eXBlLnNob3dpbmdMYXN0U2VhcmNoUmVzdWx0LAogICAgIF9qdW1wVG9TZWFyY2hS
ZXN1bHQ6IFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fanVtcFRvU2VhcmNoUmVz
dWx0LAotICAgIF9zb3VyY2VGcmFtZVNldHVwRmluaXNoZWQ6IFdlYkluc3BlY3Rvci5Tb3VyY2VW
aWV3LnByb3RvdHlwZS5fc291cmNlRnJhbWVTZXR1cEZpbmlzaGVkLAogICAgIF9yZW1vdmVCcmVh
a3BvaW50OiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUuX3JlbW92ZUJyZWFrcG9p
bnQsCiAgICAgX2VkaXRMaW5lOiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUuX2Vk
aXRMaW5lLAogICAgIHJlc2l6ZTogV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlLnJl
c2l6ZQogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3IuZGlkUmVzb2x2ZVNj
cmlwdFNvdXJjZSA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2FsbGJhY2s7CmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBhZDE0ZjQ1YTEyMTAyZTc0OGQ5YzkwYzkyNWVkNWRiZDI4ZDAyMTlhLi5mMTRh
ZTNmM2JlZWVlMjhjZDJkNWYyNDE1ZTBlYzk4MjFhNzAxYzMzIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMC0wNi0xMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiB0byByZWR1Y2UgdGhlIGZyb250IGVuZCBzdGFydCB1cCB0aW1lIGRvbid0
IHB1c2ggc2NyaXB0CisgICAgICAgIHNvdXJjZXMgdG8gZnJvbnRlbmQgaWYgZGVidWdnZXIgaXMg
YWx3YXlzIGVuYWJsZWQsIGluc3RlYWQgcmVxdWVzdAorICAgICAgICBzY3JpcHQgY29udGVudCBs
YXppbHkgYXQgdGhlIG1vbWVudCBpdCBzaG91bGQgYmUgZGlzcGx5ZWQuIEl0IGlzIGNyaXRpY2Fs
IGZvcgorICAgICAgICBhbHdheXMgZW5hYmxlZCBkZWJ1Z2dlciBiZWNhdXNlIGluIHRoYXQgY2Fz
ZSBsb3RzIG9mIHNjcmlwdCBtYXkgaGF2ZQorICAgICAgICBhbHJlYWR5IGJlZW4gcGFyc2VkIHdo
ZW4gdGhlIGZyb250IGVuZCBpcyBvcGVuaW5nIGFuZCBwdXNoaW5nIGFsbAorICAgICAgICBvZiB0
aGVtIGF0IG9uY2UgbWF5IHNsb3cgdGhpbmdzIGRvd24oZXZlbiB0aG91Z2ggdGhlIHNjcmlwdCBz
b3VyY2VzIHdpbGwgbmV2ZXIKKyAgICAgICAgYmUgdXNlZCBpZiBzY3JpcHRzIHBhbmVsIGlzbid0
IG9wZW4pLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAzNjQKKworICAgICAgICAqIHNyYy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKiBzcmMvanMv
SW5zcGVjdG9yQ29udHJvbGxlckltcGwuanM6CisgICAgICAgIChkZXZ0b29scy5JbnNwZWN0b3JC
YWNrZW5kSW1wbCk6CisgICAgICAgICguZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwucHJv
dG90eXBlLnJlc29sdmVTY3JpcHRTb3VyY2UpOgorCiAyMDEwLTA2LTEwICBNaWtlIEJlbHNoZSAg
PG1iZWxzaGVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvanMvRGV2VG9vbHMuanMKaW5kZXggOWY4NzA3ODJjNmVjOTdkNzY1M2U4ZTAw
NzE4MTliODMzMzdmYzcwZS4uMzk4ZDM1ODkzYjY2OWY3MjY2NGVlMDI5YWY4ZGJhOTY5NWY0MDAw
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcworKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBAIC0yMTAsNDIgKzIxMCw2IEBAIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBkZXZ0b29scy5kb21D
b250ZW50TG9hZGVkLCBmYWxzZSk7CiAKIGlmICghd2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJF
bmFibGVkKSB7CiAKLS8qKgotICogVGhpcyBvdmVycmlkZSBpcyBuZWNlc3NhcnkgZm9yIGFkZGlu
ZyBzY3JpcHQgc291cmNlIGFzeW5jaHJvbm91c2x5LgotICogQG92ZXJyaWRlCi0gKi8KLVdlYklu
c3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5zZXR1cFNvdXJjZUZyYW1lSWZOZWVkZWQgPSBm
dW5jdGlvbigpCi17Ci0gICAgaWYgKCF0aGlzLl9mcmFtZU5lZWRzU2V0dXApCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHRoaXMuYXR0YWNoKCk7Ci0KLSAgICBpZiAodGhpcy5zY3JpcHQuc291cmNl
KQotICAgICAgICB0aGlzLmRpZFJlc29sdmVTY3JpcHRTb3VyY2VfKCk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgZGV2dG9vbHMudG9vbHMuZ2V0RGVidWdn
ZXJBZ2VudCgpLnJlc29sdmVTY3JpcHRTb3VyY2UoCi0gICAgICAgICAgICB0aGlzLnNjcmlwdC5z
b3VyY2VJRCwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHNvdXJjZSkgewotICAgICAgICAgICAgICAg
IHNlbGYuc2NyaXB0LnNvdXJjZSA9IHNvdXJjZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIjxz
b3VyY2UgaXMgbm90IGF2YWlsYWJsZT4iKTsKLSAgICAgICAgICAgICAgICBzZWxmLmRpZFJlc29s
dmVTY3JpcHRTb3VyY2VfKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9Ci19OwotCi0KLS8qKgot
ICogUGVyZm9ybXMgc291cmNlIGZyYW1lIHNldHVwIHdoZW4gc2NyaXB0IHNvdXJjZSBpcyBhcmVh
ZHkgcmVzb2x2ZWQuCi0gKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5kaWRS
ZXNvbHZlU2NyaXB0U291cmNlXyA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLnNvdXJjZUZyYW1l
LnNldENvbnRlbnQoInRleHQvamF2YXNjcmlwdCIsIHRoaXMuX3ByZXBlbmRXaGl0ZXNwYWNlKHRo
aXMuc2NyaXB0LnNvdXJjZSkpOwotICAgIHRoaXMuX3NvdXJjZUZyYW1lU2V0dXAgPSB0cnVlOwot
ICAgIGRlbGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7Ci19OwotCi0KIChmdW5jdGlvbigpCiB7
CiAgICAgdmFyIG9sZFNob3cgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5z
aG93OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9s
bGVySW1wbC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlcklt
cGwuanMKaW5kZXggZGU4MzBjZWYyZDkyMGEzNWIxZjE5NDE0OTU0YmUzZTFkYWUzMjYzNy4uYTI5
ZGYwYTc0MjZjNTUyMDE4ZTU1OGM1MzkzNzg3ZTIzMGMzM2EyZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcworKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCkBAIC05NCw2ICs5NCw3
IEBAIGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsID0gZnVuY3Rpb24oKQogICAgIGlmICh3
aW5kb3cudjhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQpIHsKICAgICB0aGlzLmluc3RhbGxJbnNw
ZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJkaXNhYmxlRGVidWdnZXIiKTsKICAgICB0aGlzLmlu
c3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJlZGl0U2NyaXB0U291cmNlIik7Cisg
ICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygicmVzb2x2ZVNjcmlw
dFNvdXJjZSIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8o
ImVuYWJsZURlYnVnZ2VyIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRl
bGVnYXRlXygic2V0QnJlYWtwb2ludCIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRy
b2xsZXJEZWxlZ2F0ZV8oInJlbW92ZUJyZWFrcG9pbnQiKTsKQEAgLTE1MCw2ICsxNTEsMTYgQEAg
ZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwucHJvdG90eXBlLmVkaXRTY3JpcHRTb3VyY2Ug
PSBmdW5jdGlvbihjYWxsSUQsIHNvdXIKIH07CiAKIAorZGV2dG9vbHMuSW5zcGVjdG9yQmFja2Vu
ZEltcGwucHJvdG90eXBlLnJlc29sdmVTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihjYWxsSUQsIHNv
dXJjZUlEKQoreworICAgIGRldnRvb2xzLnRvb2xzLmdldERlYnVnZ2VyQWdlbnQoKS5yZXNvbHZl
U2NyaXB0U291cmNlKAorICAgICAgICBzb3VyY2VJRCwKKyAgICAgICAgZnVuY3Rpb24oc291cmNl
KSB7CisgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRpZFJlc29sdmVTY3JpcHRTb3VyY2UoY2Fs
bElELCBzb3VyY2UpOworICAgICAgICB9KTsKK307CisKKwogZGV2dG9vbHMuSW5zcGVjdG9yQmFj
a2VuZEltcGwucHJvdG90eXBlLmFjdGl2YXRlQnJlYWtwb2ludHMgPSBmdW5jdGlvbigpCiB7CiAg
ICAgZGV2dG9vbHMudG9vbHMuZ2V0RGVidWdnZXJBZ2VudCgpLnNldEJyZWFrcG9pbnRzQWN0aXZh
dGVkKHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58381</attachid>
            <date>2010-06-10 10:22:20 -0700</date>
            <delta_ts>2010-06-10 10:32:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40364-20100610212217.patch</filename>
            <type>text/plain</type>
            <size>15410</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2FmMjhkYjBmM2FiMWQwMTFiNDlhYjc4NWVlYTA2MjMzNTJkYjgyZi4uMzI1YmQ1YzExZjhiNjNj
NTI4OWRiMmQ4OWM5NWM2OTVlNzI1M2I4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNi0xMCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0byByZWR1Y2UgdGhl
IGZyb250IGVuZCBzdGFydCB1cCB0aW1lIGRvbid0IHB1c2ggc2NyaXB0CisgICAgICAgIHNvdXJj
ZXMgdG8gZnJvbnRlbmQgaWYgZGVidWdnZXIgaXMgYWx3YXlzIGVuYWJsZWQsIGluc3RlYWQgcmVx
dWVzdAorICAgICAgICBzY3JpcHQgY29udGVudCBsYXppbHkgYXQgdGhlIG1vbWVudCBpdCBzaG91
bGQgYmUgZGlzcGx5ZWQuIEl0IGlzIGNyaXRpY2FsIGZvcgorICAgICAgICBhbHdheXMgZW5hYmxl
ZCBkZWJ1Z2dlciBiZWNhdXNlIGluIHRoYXQgY2FzZSBsb3RzIG9mIHNjcmlwdCBtYXkgaGF2ZQor
ICAgICAgICBhbHJlYWR5IGJlZW4gcGFyc2VkIHdoZW4gdGhlIGZyb250IGVuZCBpcyBvcGVuaW5n
IGFuZCBwdXNoaW5nIGFsbAorICAgICAgICBvZiB0aGVtIGF0IG9uY2UgbWF5IHNsb3cgdGhpbmdz
IGRvd24oZXZlbiB0aG91Z2ggdGhlIHNjcmlwdCBzb3VyY2VzIHdpbGwgbmV2ZXIKKyAgICAgICAg
YmUgdXNlZCBpZiBzY3JpcHRzIHBhbmVsIGlzbid0IG9wZW4pLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjQKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tl
bmQ6OmdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGw6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpnZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUGFyc2VTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjpkaWRHZXRT
Y3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanM6Cisg
ICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckJhY2tlbmRTdHViLnByb3RvdHlwZS5lZGl0
U2NyaXB0U291cmNlKToKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0
dWIucHJvdG90eXBlLmdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJv
dG90eXBlLnNldHVwU291cmNlRnJhbWVJZk5lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0Vmlldy5wcm90b3R5cGUuX2RpZEdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUuX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hlZCk6
CisKIDIwMTAtMDYtMTAgIFJhaW5lIE1ha2VsYWluZW4gIDxyYWluZS5tYWtlbGFpbmVuQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXggOGE1NTk4NjBhM2M2ODEx
YzExNDllMmM0Yzc4NzlkNzA5NWZlMjhkYi4uYmM5MzQxZmM4ODIxMmM2ZmU1ZGFmMDFhNzgzZDI5
N2RhNDNjNDU1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKQEAgLTIy
MSw2ICsyMjEsMTIgQEAgdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplZGl0U2NyaXB0U291cmNlKGxv
bmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb24KICAgICAgICAgbV9pbnNwZWN0
b3JDb250cm9sbGVyLT5lZGl0U2NyaXB0U291cmNlKGNhbGxJZCwgc291cmNlSUQsIG5ld0NvbnRl
bnQpOwogfQogCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldFNjcmlwdFNvdXJjZShsb25nIGNh
bGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3sKKyAgICBpZiAobV9pbnNwZWN0b3JDb250
cm9sbGVyKQorICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmdldFNjcmlwdFNvdXJjZShj
YWxsSWQsIHNvdXJjZUlEKTsKK30KKwogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplbmFibGVQcm9m
aWxlcihib29sIGFsd2F5cykKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4IDI0YmEwYzU5YzJhMTA1NmNkOWRkNGZm
MzFlMGY1OWYxYWY0N2MwMTYuLjRjNDI4MmZmZWZjNmNjNGY5YjgxN2Q3NTg3ZDE2ZmQ1ZDc2MTg5
MTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAgLTkxLDYgKzkxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShsb25nIHBhdXNlU3Rh
dGUpOwogCiAgICAgdm9pZCBlZGl0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQpOworICAgIHZvaWQgZ2V0U2Ny
aXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKIAogICAgIHZv
aWQgZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpOwogICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVy
KGJvb2wgYWx3YXlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmQuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwKaW5kZXgg
Yzg5NGNhY2Y0MzU1ZDA3ZDRlNTk4ZGYwNTJiMDNhZjU4MTBkYzQ0NS4uODJhNzk1NGQ5MTc4YjJl
MTdiM2Q1ZTU5ZmMyMDk0OWFkNzMzZDlkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5pZGwKQEAgLTY2LDYgKzY2LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIHNl
dFBhdXNlT25FeGNlcHRpb25zU3RhdGUoaW4gbG9uZyBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsK
IAogICAgICAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2UoaW4gbG9uZyBjYWxsSWQsIGluIERPTVN0
cmluZyBzb3VyY2VJRCwgaW4gRE9NU3RyaW5nIG5ld0NvbnRlbnQpOworICAgICAgICB2b2lkIGdl
dFNjcmlwdFNvdXJjZShpbiBsb25nIGNhbGxJZCwgaW4gRE9NU3RyaW5nIHNvdXJjZUlEKTsKIAog
ICAgICAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKICAgICAgICAg
dm9pZCBkaXNhYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBiZjcyNTcyNjU2ZTQxYTljMDI5YjY2NTdk
NTNhZDZmMmU4MGJiMDdkLi40ZTg1MjE4YWYwODAwYjE4ZGEzNjg0NzU0NTZiMGVmNDI0Y2M5Nzcy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjY3LDYg
KzY2Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVu
dExvYWRlciogbG9hZGVyKQogICAgICAgICBtX2NvdW50cy5jbGVhcigpOwogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICAgICBtX3NvdXJjZUlEVG9VUkwuY2xlYXIoKTsKKyAg
ICAgICAgbV9zY3JpcHRJRFRvQ29udGVudC5jbGVhcigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpICYmIFVTRShKU0MpCiAgICAgICAgIG1fcHJvZmlsZXMuY2xlYXIo
KTsKQEAgLTE2MzMsNiArMTYzNCwxNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVkaXRT
Y3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsCiAgICAgbV9m
cm9udGVuZC0+ZGlkRWRpdFNjcmlwdFNvdXJjZShjYWxsSWQsIHN1Y2Nlc3MsIHJlc3VsdCwgY2Fs
bEZyYW1lcy5nZXQoKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0U2NyaXB0
U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQoreworICAgIGlmICgh
bV9mcm9udGVuZCkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZyBzY3JpcHRTb3VyY2UgPSBt
X3NjcmlwdElEVG9Db250ZW50LmdldChzb3VyY2VJRCk7CisgICAgbV9mcm9udGVuZC0+ZGlkR2V0
U2NyaXB0U291cmNlKGNhbGxJZCwgc2NyaXB0U291cmNlKTsKK30KKwogdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpyZXN1bWVEZWJ1Z2dlcigpCiB7CiAgICAgaWYgKCFtX2RlYnVnZ2VyRW5hYmxl
ZCkKQEAgLTE2ODMsNyArMTY5MiwxMSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlbW92
ZUJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQgbGluZQogCiB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNl
SUQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUs
IFNjcmlwdFdvcmxkVHlwZSB3b3JsZFR5cGUpCiB7Ci0gICAgbV9mcm9udGVuZC0+cGFyc2VkU2Ny
aXB0U291cmNlKHNvdXJjZUlELCB1cmwsIGRhdGEsIGZpcnN0TGluZSwgd29ybGRUeXBlKTsKKyAg
ICAvLyBJZiBkZWJ1Z2dlciBpcyBhbHdheXMgZW5hYmxlZCBpdCBtYXkgdGFrZSBmb3IgdG9vIGxv
bmcgdG8gc2VuZCBzb3VyY2VzIG9mIGFsbAorICAgIC8vIHNjcmlwdHMgdGhhdCBoYXZlIGFscmVh
ZHkgYmVlbiBwYXJzZWQgYmVmb3JlIHRoZSBmcm9udGVuZCB3YXMgYXR0YWNoZWQuIFRvCisgICAg
Ly8gYXZvaWQgdGhpcyBvdmVyaGVhZCB0aGVpciBzb3VyY2VzIGFyZSByZXNvbHZlZCBsYXppbHku
CisgICAgLy8gU3RyaW5nIGRhdGFUb1NlbmQgPSBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCku
aXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKSA/ICIiIDogZGF0YTsKKyAgICBtX2Zyb250ZW5kLT5w
YXJzZWRTY3JpcHRTb3VyY2Uoc291cmNlSUQsIHVybCwgIiIsIGZpcnN0TGluZSwgd29ybGRUeXBl
KTsKIAogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjk5LDYg
KzE3MTIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhcnNlU291cmNlKGNvbnN0
IFN0cmluZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgdQogICAgIH0KIAogICAgIG1fc291cmNl
SURUb1VSTC5zZXQoc291cmNlSUQsIHVybCk7CisgICAgbV9zY3JpcHRJRFRvQ29udGVudC5zZXQo
c291cmNlSUQsIGRhdGEpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmZhaWxlZFRv
UGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZp
cnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYmRhMjdhZjQxNWI2NjE4Yjk2
YzI4ZDgzYTU1N2VjOTM1NTIwYmI0Yi4uMDg0MDcyMzBmNDBkZGNkOWE1MWIwMGRmYmFhYzA0NDQ3
MjdkYmE3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMjQy
LDYgKzI0Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGRlYnVnZ2VyRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGVidWdnZXJFbmFibGVkOyB9CiAKICAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2Uo
bG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29u
dGVudCk7CisgICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlSUQpOwogCiAgICAgdm9pZCByZXN1bWVEZWJ1Z2dlcigpOwogICAgIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjdXJyZW50Q2FsbEZyYW1lcygpOwpAQCAtMzYxLDYg
KzM2Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwog
ICAgIFNjcmlwdFN0YXRlKiBtX3BhdXNlZFNjcmlwdFN0YXRlOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IG1fc291cmNlSURUb1VSTDsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBt
X3NjcmlwdElEVG9Db250ZW50OwogICAgIEhhc2hNYXA8U3RyaW5nLCBTb3VyY2VCcmVha3BvaW50
cz4gbV9zdGlja3lCcmVha3BvaW50czsKIAogICAgIGJvb2wgbV9wcm9maWxlckVuYWJsZWQ7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKaW5kZXggYTM2MTg1MTgzOTNmODBm
YWViMWM0ZTk0MmNhYmM4MmUyOWVjMTRkNS4uYWVjM2ZhZjE1OTlkMmQwM2IwNjdkNjZmMTM4NmVh
ZDAyNjhlY2Y2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcApAQCAt
MzcwLDYgKzM3MCwxNSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRFZGl0U2NyaXB0U291
cmNlKGxvbmcgY2FsbElkLCBib29sIHN1Y2Nlc3MsIGNvbnN0IFN0cgogICAgIGZ1bmN0aW9uLmNh
bGwoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0U2NyaXB0U291cmNlKGxv
bmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAgICBTY3JpcHRGdW5jdGlvbkNh
bGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOworICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KCJkaWRHZXRTY3JpcHRTb3VyY2UiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChjYWxsSWQpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlc3VsdCk7Cisg
ICAgZnVuY3Rpb24uY2FsbCgpOworfQorCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpwcm9maWxl
cldhc0VuYWJsZWQoKQogewogICAgIGNhbGxTaW1wbGVGdW5jdGlvbigicHJvZmlsZXJXYXNFbmFi
bGVkIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA2OWQ0YzRmZjk5
NGI4Nzg3MDE5ZWY0YjcxMzhiNmU4MTRiNmI3OTc4Li43YTI2OWM2OWFiMDQ2ODk2MzI4MmE0MzNi
ZGI3YWIyYzVjMmY3NzgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAg
LTk5LDYgKzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHJlc3VtZWRT
Y3JpcHQoKTsKIAogICAgICAgICB2b2lkIGRpZEVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQs
IGJvb2wgc3VjY2VzcywgY29uc3QgU3RyaW5nJiByZXN1bHQsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogbmV3Q2FsbEZyYW1lcyk7CisgICAgICAgIHZvaWQgZGlkR2V0U2NyaXB0U291cmNlKGxvbmcg
Y2FsbElkLCBjb25zdCBTdHJpbmcmIHJlc3VsdCk7CiAKICAgICAgICAgdm9pZCBwcm9maWxlcldh
c0VuYWJsZWQoKTsKICAgICAgICAgdm9pZCBwcm9maWxlcldhc0Rpc2FibGVkKCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMKaW5k
ZXggNDY3MGFmMTQ3MWFmZjNjOTFjYWNkZWMwNzRkODdkOWUzOTAyNzk5OS4uZmE0MDI2MTFlZjRm
MTFlN2YzNjBmZTViMjllYzliYjIxNDBhMDEyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmRTdHViLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kU3R1Yi5qcwpAQCAtMTg1LDYgKzE4NSwxNiBA
QCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0dWIucHJvdG90eXBlID0gewogICAgICAg
ICBXZWJJbnNwZWN0b3IudXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSh2YWx1ZSk7CiAgICAg
fSwKIAorICAgIGVkaXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5kaWRFZGl0U2NyaXB0U291cmNlKGNhbGxJZCwgZmFsc2UpOworICAgIH0sCisK
KyAgICBnZXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGNhbGxJZCwgc291cmNlSUQpCisgICAgewor
ICAgICAgICBXZWJJbnNwZWN0b3IuZGlkR2V0U2NyaXB0U291cmNlKGNhbGxJZCwgbnVsbCk7Cisg
ICAgfSwKKwogICAgIHJlc3VtZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewogICAgIH0sCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCmluZGV4IDcxZTc4YWQ4Yjc0
OGVkZWFiYmNhNzIyNTVmZjdlNzg4ZTdiNWI5NmMuLmZiMGJiNGIyYjJkZTE3OTllZTMyNjBhZDcz
MzhhMzMyMzFkZDJhZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3
LmpzCkBAIC01MCwxMiArNTAsMjggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBl
ID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9mcmFtZU5lZWRzU2V0dXApCiAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7CiAKICAg
ICAgICAgdGhpcy5hdHRhY2goKTsKIAorICAgICAgICBpZiAodGhpcy5zY3JpcHQuc291cmNlKQor
ICAgICAgICAgICAgdGhpcy5fc291cmNlRnJhbWVTZXR1cEZpbmlzaGVkKCk7CisgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgdmFyIGNhbGxiYWNrSWQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2su
d3JhcCh0aGlzLl9kaWRHZXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSkKKyAgICAgICAgICAgIElu
c3BlY3RvckJhY2tlbmQuZ2V0U2NyaXB0U291cmNlKGNhbGxiYWNrSWQsIHRoaXMuc2NyaXB0LnNv
dXJjZUlEKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfZGlkR2V0U2NyaXB0U291cmNlOiBm
dW5jdGlvbihzb3VyY2UpCisgICAgeworICAgICAgICB0aGlzLnNjcmlwdC5zb3VyY2UgPSBzb3Vy
Y2UgfHwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCI8c291cmNlIGlzIG5vdCBhdmFpbGFibGU+Iik7
CisgICAgICAgIHRoaXMuX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hlZCgpOworICAgIH0sCisKKyAg
ICBfc291cmNlRnJhbWVTZXR1cEZpbmlzaGVkOiBmdW5jdGlvbigpCisgICAgewogICAgICAgICB0
aGlzLnNvdXJjZUZyYW1lLnNldENvbnRlbnQoInRleHQvamF2YXNjcmlwdCIsIHRoaXMuX3ByZXBl
bmRXaGl0ZXNwYWNlKHRoaXMuc2NyaXB0LnNvdXJjZSkpOwogICAgICAgICB0aGlzLl9zb3VyY2VG
cmFtZVNldHVwID0gdHJ1ZTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lTmVlZHNTZXR1cDsK
ICAgICB9LAogCiAgICAgX3ByZXBlbmRXaGl0ZXNwYWNlOiBmdW5jdGlvbihjb250ZW50KSB7CkBA
IC0xMDYsMTAgKzEyMiwxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUgPSB7
CiAgICAgc2hvd2luZ0ZpcnN0U2VhcmNoUmVzdWx0OiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5w
cm90b3R5cGUuc2hvd2luZ0ZpcnN0U2VhcmNoUmVzdWx0LAogICAgIHNob3dpbmdMYXN0U2VhcmNo
UmVzdWx0OiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUuc2hvd2luZ0xhc3RTZWFy
Y2hSZXN1bHQsCiAgICAgX2p1bXBUb1NlYXJjaFJlc3VsdDogV2ViSW5zcGVjdG9yLlNvdXJjZVZp
ZXcucHJvdG90eXBlLl9qdW1wVG9TZWFyY2hSZXN1bHQsCi0gICAgX3NvdXJjZUZyYW1lU2V0dXBG
aW5pc2hlZDogV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlLl9zb3VyY2VGcmFtZVNl
dHVwRmluaXNoZWQsCiAgICAgX3JlbW92ZUJyZWFrcG9pbnQ6IFdlYkluc3BlY3Rvci5Tb3VyY2VW
aWV3LnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludCwKICAgICBfZWRpdExpbmU6IFdlYkluc3Bl
Y3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fZWRpdExpbmUsCiAgICAgcmVzaXplOiBXZWJJbnNw
ZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUucmVzaXplCiB9CiAKIFdlYkluc3BlY3Rvci5TY3Jp
cHRWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7
CisKK1dlYkluc3BlY3Rvci5kaWRHZXRTY3JpcHRTb3VyY2UgPSBXZWJJbnNwZWN0b3IuQ2FsbGJh
Y2sucHJvY2Vzc0NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYWQxNGY0NWExMjEwMmU3NDhkOWM5
MGM5MjVlZDVkYmQyOGQwMjE5YS4uYTExMjQxODQzYzRkMDkwMGNiYjg0NTFjNzhkYjYyY2U1NTdk
ZGFkOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDYtMTAgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdG8gcmVkdWNlIHRoZSBmcm9u
dCBlbmQgc3RhcnQgdXAgdGltZSBkb24ndCBwdXNoIHNjcmlwdAorICAgICAgICBzb3VyY2VzIHRv
IGZyb250ZW5kIGlmIGRlYnVnZ2VyIGlzIGFsd2F5cyBlbmFibGVkLCBpbnN0ZWFkIHJlcXVlc3QK
KyAgICAgICAgc2NyaXB0IGNvbnRlbnQgbGF6aWx5IGF0IHRoZSBtb21lbnQgaXQgc2hvdWxkIGJl
IGRpc3BseWVkLiBJdCBpcyBjcml0aWNhbCBmb3IKKyAgICAgICAgYWx3YXlzIGVuYWJsZWQgZGVi
dWdnZXIgYmVjYXVzZSBpbiB0aGF0IGNhc2UgbG90cyBvZiBzY3JpcHQgbWF5IGhhdmUKKyAgICAg
ICAgYWxyZWFkeSBiZWVuIHBhcnNlZCB3aGVuIHRoZSBmcm9udCBlbmQgaXMgb3BlbmluZyBhbmQg
cHVzaGluZyBhbGwKKyAgICAgICAgb2YgdGhlbSBhdCBvbmNlIG1heSBzbG93IHRoaW5ncyBkb3du
KGV2ZW4gdGhvdWdoIHRoZSBzY3JpcHQgc291cmNlcyB3aWxsIG5ldmVyCisgICAgICAgIGJlIHVz
ZWQgaWYgc2NyaXB0cyBwYW5lbCBpc24ndCBvcGVuKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzY0CisKKyAgICAgICAgKiBzcmMvanMvRGV2VG9v
bHMuanM6CisgICAgICAgICogc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzOgorICAg
ICAgICAoZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwpOgorICAgICAgICAoLmRldnRvb2xz
Lkluc3BlY3RvckJhY2tlbmRJbXBsLnByb3RvdHlwZS5nZXRTY3JpcHRTb3VyY2UpOgorCiAyMDEw
LTA2LTEwICBNaWtlIEJlbHNoZSAgPG1iZWxzaGVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZpZCBMZXZpbgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9E
ZXZUb29scy5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGV2VG9vbHMuanMKaW5kZXggOWY4
NzA3ODJjNmVjOTdkNzY1M2U4ZTAwNzE4MTliODMzMzdmYzcwZS4uMzk4ZDM1ODkzYjY2OWY3MjY2
NGVlMDI5YWY4ZGJhOTY5NWY0MDAwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9q
cy9EZXZUb29scy5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBA
IC0yMTAsNDIgKzIxMCw2IEBAIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRM
b2FkZWQiLCBkZXZ0b29scy5kb21Db250ZW50TG9hZGVkLCBmYWxzZSk7CiAKIGlmICghd2luZG93
LnY4U2NyaXB0RGVidWdTZXJ2ZXJFbmFibGVkKSB7CiAKLS8qKgotICogVGhpcyBvdmVycmlkZSBp
cyBuZWNlc3NhcnkgZm9yIGFkZGluZyBzY3JpcHQgc291cmNlIGFzeW5jaHJvbm91c2x5LgotICog
QG92ZXJyaWRlCi0gKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5zZXR1cFNv
dXJjZUZyYW1lSWZOZWVkZWQgPSBmdW5jdGlvbigpCi17Ci0gICAgaWYgKCF0aGlzLl9mcmFtZU5l
ZWRzU2V0dXApCi0gICAgICAgIHJldHVybjsKLQotICAgIHRoaXMuYXR0YWNoKCk7Ci0KLSAgICBp
ZiAodGhpcy5zY3JpcHQuc291cmNlKQotICAgICAgICB0aGlzLmRpZFJlc29sdmVTY3JpcHRTb3Vy
Y2VfKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgZGV2
dG9vbHMudG9vbHMuZ2V0RGVidWdnZXJBZ2VudCgpLnJlc29sdmVTY3JpcHRTb3VyY2UoCi0gICAg
ICAgICAgICB0aGlzLnNjcmlwdC5zb3VyY2VJRCwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHNvdXJj
ZSkgewotICAgICAgICAgICAgICAgIHNlbGYuc2NyaXB0LnNvdXJjZSA9IHNvdXJjZSB8fCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIjxzb3VyY2UgaXMgbm90IGF2YWlsYWJsZT4iKTsKLSAgICAgICAg
ICAgICAgICBzZWxmLmRpZFJlc29sdmVTY3JpcHRTb3VyY2VfKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICB9Ci19OwotCi0KLS8qKgotICogUGVyZm9ybXMgc291cmNlIGZyYW1lIHNldHVwIHdoZW4g
c2NyaXB0IHNvdXJjZSBpcyBhcmVhZHkgcmVzb2x2ZWQuCi0gKi8KLVdlYkluc3BlY3Rvci5TY3Jp
cHRWaWV3LnByb3RvdHlwZS5kaWRSZXNvbHZlU2NyaXB0U291cmNlXyA9IGZ1bmN0aW9uKCkKLXsK
LSAgICB0aGlzLnNvdXJjZUZyYW1lLnNldENvbnRlbnQoInRleHQvamF2YXNjcmlwdCIsIHRoaXMu
X3ByZXBlbmRXaGl0ZXNwYWNlKHRoaXMuc2NyaXB0LnNvdXJjZSkpOwotICAgIHRoaXMuX3NvdXJj
ZUZyYW1lU2V0dXAgPSB0cnVlOwotICAgIGRlbGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7Ci19
OwotCi0KIChmdW5jdGlvbigpCiB7CiAgICAgdmFyIG9sZFNob3cgPSBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZS5zaG93OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMv
SW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKaW5kZXggZGU4MzBjZWYyZDkyMGEzNWIxZjE5NDE0
OTU0YmUzZTFkYWUzMjYzNy4uNWFiMzkxNDBlODE5NGQxYTQ3MTYwZmRjMGU5MDFmMmI3ZGM5YTg1
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVy
SW1wbC5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJ
bXBsLmpzCkBAIC05NCw2ICs5NCw3IEBAIGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsID0g
ZnVuY3Rpb24oKQogICAgIGlmICh3aW5kb3cudjhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQpIHsK
ICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJkaXNhYmxlRGVi
dWdnZXIiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJl
ZGl0U2NyaXB0U291cmNlIik7CisgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRl
bGVnYXRlXygiZ2V0U2NyaXB0U291cmNlIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29u
dHJvbGxlckRlbGVnYXRlXygiZW5hYmxlRGVidWdnZXIiKTsKICAgICB0aGlzLmluc3RhbGxJbnNw
ZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJzZXRCcmVha3BvaW50Iik7CiAgICAgdGhpcy5pbnN0
YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygicmVtb3ZlQnJlYWtwb2ludCIpOwpAQCAt
MTUwLDYgKzE1MSwxNiBAQCBkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbC5wcm90b3R5cGUu
ZWRpdFNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKGNhbGxJRCwgc291cgogfTsKIAogCitkZXZ0b29s
cy5JbnNwZWN0b3JCYWNrZW5kSW1wbC5wcm90b3R5cGUuZ2V0U2NyaXB0U291cmNlID0gZnVuY3Rp
b24oY2FsbElELCBzb3VyY2VJRCkKK3sKKyAgICBkZXZ0b29scy50b29scy5nZXREZWJ1Z2dlckFn
ZW50KCkucmVzb2x2ZVNjcmlwdFNvdXJjZSgKKyAgICAgICAgc291cmNlSUQsCisgICAgICAgIGZ1
bmN0aW9uKHNvdXJjZSkgeworICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kaWRHZXRTY3JpcHRT
b3VyY2UoY2FsbElELCBzb3VyY2UpOworICAgICAgICB9KTsKK307CisKKwogZGV2dG9vbHMuSW5z
cGVjdG9yQmFja2VuZEltcGwucHJvdG90eXBlLmFjdGl2YXRlQnJlYWtwb2ludHMgPSBmdW5jdGlv
bigpCiB7CiAgICAgZGV2dG9vbHMudG9vbHMuZ2V0RGVidWdnZXJBZ2VudCgpLnNldEJyZWFrcG9p
bnRzQWN0aXZhdGVkKHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58384</attachid>
            <date>2010-06-10 10:33:03 -0700</date>
            <delta_ts>2010-06-11 00:05:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40364-20100610213301.patch</filename>
            <type>text/plain</type>
            <size>15158</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2FmMjhkYjBmM2FiMWQwMTFiNDlhYjc4NWVlYTA2MjMzNTJkYjgyZi4uMzI1YmQ1YzExZjhiNjNj
NTI4OWRiMmQ4OWM5NWM2OTVlNzI1M2I4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNi0xMCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0byByZWR1Y2UgdGhl
IGZyb250IGVuZCBzdGFydCB1cCB0aW1lIGRvbid0IHB1c2ggc2NyaXB0CisgICAgICAgIHNvdXJj
ZXMgdG8gZnJvbnRlbmQgaWYgZGVidWdnZXIgaXMgYWx3YXlzIGVuYWJsZWQsIGluc3RlYWQgcmVx
dWVzdAorICAgICAgICBzY3JpcHQgY29udGVudCBsYXppbHkgYXQgdGhlIG1vbWVudCBpdCBzaG91
bGQgYmUgZGlzcGx5ZWQuIEl0IGlzIGNyaXRpY2FsIGZvcgorICAgICAgICBhbHdheXMgZW5hYmxl
ZCBkZWJ1Z2dlciBiZWNhdXNlIGluIHRoYXQgY2FzZSBsb3RzIG9mIHNjcmlwdCBtYXkgaGF2ZQor
ICAgICAgICBhbHJlYWR5IGJlZW4gcGFyc2VkIHdoZW4gdGhlIGZyb250IGVuZCBpcyBvcGVuaW5n
IGFuZCBwdXNoaW5nIGFsbAorICAgICAgICBvZiB0aGVtIGF0IG9uY2UgbWF5IHNsb3cgdGhpbmdz
IGRvd24oZXZlbiB0aG91Z2ggdGhlIHNjcmlwdCBzb3VyY2VzIHdpbGwgbmV2ZXIKKyAgICAgICAg
YmUgdXNlZCBpZiBzY3JpcHRzIHBhbmVsIGlzbid0IG9wZW4pLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjQKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tl
bmQ6OmdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGw6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpnZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUGFyc2VTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjpkaWRHZXRT
Y3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanM6Cisg
ICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckJhY2tlbmRTdHViLnByb3RvdHlwZS5lZGl0
U2NyaXB0U291cmNlKToKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0
dWIucHJvdG90eXBlLmdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJv
dG90eXBlLnNldHVwU291cmNlRnJhbWVJZk5lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0Vmlldy5wcm90b3R5cGUuX2RpZEdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUuX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hlZCk6
CisKIDIwMTAtMDYtMTAgIFJhaW5lIE1ha2VsYWluZW4gIDxyYWluZS5tYWtlbGFpbmVuQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXggOGE1NTk4NjBhM2M2ODEx
YzExNDllMmM0Yzc4NzlkNzA5NWZlMjhkYi4uYmM5MzQxZmM4ODIxMmM2ZmU1ZGFmMDFhNzgzZDI5
N2RhNDNjNDU1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKQEAgLTIy
MSw2ICsyMjEsMTIgQEAgdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplZGl0U2NyaXB0U291cmNlKGxv
bmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb24KICAgICAgICAgbV9pbnNwZWN0
b3JDb250cm9sbGVyLT5lZGl0U2NyaXB0U291cmNlKGNhbGxJZCwgc291cmNlSUQsIG5ld0NvbnRl
bnQpOwogfQogCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldFNjcmlwdFNvdXJjZShsb25nIGNh
bGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3sKKyAgICBpZiAobV9pbnNwZWN0b3JDb250
cm9sbGVyKQorICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmdldFNjcmlwdFNvdXJjZShj
YWxsSWQsIHNvdXJjZUlEKTsKK30KKwogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplbmFibGVQcm9m
aWxlcihib29sIGFsd2F5cykKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4IDI0YmEwYzU5YzJhMTA1NmNkOWRkNGZm
MzFlMGY1OWYxYWY0N2MwMTYuLjRjNDI4MmZmZWZjNmNjNGY5YjgxN2Q3NTg3ZDE2ZmQ1ZDc2MTg5
MTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAgLTkxLDYgKzkxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShsb25nIHBhdXNlU3Rh
dGUpOwogCiAgICAgdm9pZCBlZGl0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQpOworICAgIHZvaWQgZ2V0U2Ny
aXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKIAogICAgIHZv
aWQgZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpOwogICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVy
KGJvb2wgYWx3YXlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmQuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwKaW5kZXgg
Yzg5NGNhY2Y0MzU1ZDA3ZDRlNTk4ZGYwNTJiMDNhZjU4MTBkYzQ0NS4uODJhNzk1NGQ5MTc4YjJl
MTdiM2Q1ZTU5ZmMyMDk0OWFkNzMzZDlkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5pZGwKQEAgLTY2LDYgKzY2LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIHNl
dFBhdXNlT25FeGNlcHRpb25zU3RhdGUoaW4gbG9uZyBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsK
IAogICAgICAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2UoaW4gbG9uZyBjYWxsSWQsIGluIERPTVN0
cmluZyBzb3VyY2VJRCwgaW4gRE9NU3RyaW5nIG5ld0NvbnRlbnQpOworICAgICAgICB2b2lkIGdl
dFNjcmlwdFNvdXJjZShpbiBsb25nIGNhbGxJZCwgaW4gRE9NU3RyaW5nIHNvdXJjZUlEKTsKIAog
ICAgICAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKICAgICAgICAg
dm9pZCBkaXNhYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBiZjcyNTcyNjU2ZTQxYTljMDI5YjY2NTdk
NTNhZDZmMmU4MGJiMDdkLi42NzM0ODNiMzEwMjk5NDFiYjk1ODU1ZmFjMTI4YzRlZWQ3NDc5NzEy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjY3LDYg
KzY2Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVu
dExvYWRlciogbG9hZGVyKQogICAgICAgICBtX2NvdW50cy5jbGVhcigpOwogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICAgICBtX3NvdXJjZUlEVG9VUkwuY2xlYXIoKTsKKyAg
ICAgICAgbV9zY3JpcHRJRFRvQ29udGVudC5jbGVhcigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpICYmIFVTRShKU0MpCiAgICAgICAgIG1fcHJvZmlsZXMuY2xlYXIo
KTsKQEAgLTE2MzMsNiArMTYzNCwxNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVkaXRT
Y3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsCiAgICAgbV9m
cm9udGVuZC0+ZGlkRWRpdFNjcmlwdFNvdXJjZShjYWxsSWQsIHN1Y2Nlc3MsIHJlc3VsdCwgY2Fs
bEZyYW1lcy5nZXQoKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0U2NyaXB0
U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQoreworICAgIGlmICgh
bV9mcm9udGVuZCkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZyBzY3JpcHRTb3VyY2UgPSBt
X3NjcmlwdElEVG9Db250ZW50LmdldChzb3VyY2VJRCk7CisgICAgbV9mcm9udGVuZC0+ZGlkR2V0
U2NyaXB0U291cmNlKGNhbGxJZCwgc2NyaXB0U291cmNlKTsKK30KKwogdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpyZXN1bWVEZWJ1Z2dlcigpCiB7CiAgICAgaWYgKCFtX2RlYnVnZ2VyRW5hYmxl
ZCkKQEAgLTE2ODMsNyArMTY5Miw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVtb3Zl
QnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lCiAKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJ
RCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwg
U2NyaXB0V29ybGRUeXBlIHdvcmxkVHlwZSkKIHsKLSAgICBtX2Zyb250ZW5kLT5wYXJzZWRTY3Jp
cHRTb3VyY2Uoc291cmNlSUQsIHVybCwgZGF0YSwgZmlyc3RMaW5lLCB3b3JsZFR5cGUpOworICAg
IC8vIERvbid0IHNlbmQgc2NyaXB0IGNvbnRlbnQgdG8gdGhlIGZyb250IGVuZCB1bnRpbCBpdCdz
IHJlYWx5IG5lZWRlZC4KKyAgICBtX2Zyb250ZW5kLT5wYXJzZWRTY3JpcHRTb3VyY2Uoc291cmNl
SUQsIHVybCwgIiIsIGZpcnN0TGluZSwgd29ybGRUeXBlKTsKIAogICAgIGlmICh1cmwuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjk5LDYgKzE3MDksNyBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0
IFN0cmluZyYgdQogICAgIH0KIAogICAgIG1fc291cmNlSURUb1VSTC5zZXQoc291cmNlSUQsIHVy
bCk7CisgICAgbV9zY3JpcHRJRFRvQ29udGVudC5zZXQoc291cmNlSUQsIGRhdGEpOwogfQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmgKaW5kZXggYmRhMjdhZjQxNWI2NjE4Yjk2YzI4ZDgzYTU1N2VjOTM1NTIwYmI0Yi4u
MDg0MDcyMzBmNDBkZGNkOWE1MWIwMGRmYmFhYzA0NDQ3MjdkYmE3ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMjQyLDYgKzI0Miw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGRlYnVnZ2VyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJFbmFibGVk
OyB9CiAKICAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCk7CisgICAgdm9pZCBnZXRTY3Jp
cHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpOwogCiAgICAgdm9p
ZCByZXN1bWVEZWJ1Z2dlcigpOwogICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBjdXJyZW50Q2FsbEZyYW1lcygpOwpAQCAtMzYxLDYgKzM2Miw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwogICAgIFNjcmlwdFN0YXRlKiBtX3BhdXNl
ZFNjcmlwdFN0YXRlOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc291cmNlSURUb1VS
TDsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3NjcmlwdElEVG9Db250ZW50OwogICAg
IEhhc2hNYXA8U3RyaW5nLCBTb3VyY2VCcmVha3BvaW50cz4gbV9zdGlja3lCcmVha3BvaW50czsK
IAogICAgIGJvb2wgbV9wcm9maWxlckVuYWJsZWQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5jcHAKaW5kZXggYTM2MTg1MTgzOTNmODBmYWViMWM0ZTk0MmNhYmM4MmUyOWVjMTRk
NS4uYWVjM2ZhZjE1OTlkMmQwM2IwNjdkNjZmMTM4NmVhZDAyNjhlY2Y2YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcApAQCAtMzcwLDYgKzM3MCwxNSBAQCB2b2lkIElu
c3BlY3RvckZyb250ZW5kOjpkaWRFZGl0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBib29sIHN1
Y2Nlc3MsIGNvbnN0IFN0cgogICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAordm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6ZGlkR2V0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcm
IHJlc3VsdCkKK3sKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0
b3IsICJkaXNwYXRjaCIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJkaWRHZXRTY3Jp
cHRTb3VyY2UiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChjYWxsSWQpOworICAgIGZ1
bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlc3VsdCk7CisgICAgZnVuY3Rpb24uY2FsbCgpOworfQor
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpwcm9maWxlcldhc0VuYWJsZWQoKQogewogICAgIGNh
bGxTaW1wbGVGdW5jdGlvbigicHJvZmlsZXJXYXNFbmFibGVkIik7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuaAppbmRleCA2OWQ0YzRmZjk5NGI4Nzg3MDE5ZWY0YjcxMzhiNmU4MTRi
NmI3OTc4Li43YTI2OWM2OWFiMDQ2ODk2MzI4MmE0MzNiZGI3YWIyYzVjMmY3NzgwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTk5LDYgKzk5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIHJlc3VtZWRTY3JpcHQoKTsKIAogICAgICAgICB2b2lk
IGRpZEVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGJvb2wgc3VjY2VzcywgY29uc3QgU3Ry
aW5nJiByZXN1bHQsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogbmV3Q2FsbEZyYW1lcyk7CisgICAg
ICAgIHZvaWQgZGlkR2V0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHJl
c3VsdCk7CiAKICAgICAgICAgdm9pZCBwcm9maWxlcldhc0VuYWJsZWQoKTsKICAgICAgICAgdm9p
ZCBwcm9maWxlcldhc0Rpc2FibGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMKaW5kZXggNDY3MGFmMTQ3MWFmZjNjOTFjYWNk
ZWMwNzRkODdkOWUzOTAyNzk5OS4uZmE0MDI2MTFlZjRmMTFlN2YzNjBmZTViMjllYzliYjIxNDBh
MDEyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJh
Y2tlbmRTdHViLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JC
YWNrZW5kU3R1Yi5qcwpAQCAtMTg1LDYgKzE4NSwxNiBAQCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9y
QmFja2VuZFN0dWIucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IudXBkYXRlUGF1
c2VPbkV4Y2VwdGlvbnNTdGF0ZSh2YWx1ZSk7CiAgICAgfSwKIAorICAgIGVkaXRTY3JpcHRTb3Vy
Y2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kaWRFZGl0U2NyaXB0
U291cmNlKGNhbGxJZCwgZmFsc2UpOworICAgIH0sCisKKyAgICBnZXRTY3JpcHRTb3VyY2U6IGZ1
bmN0aW9uKGNhbGxJZCwgc291cmNlSUQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZGlk
R2V0U2NyaXB0U291cmNlKGNhbGxJZCwgbnVsbCk7CisgICAgfSwKKwogICAgIHJlc3VtZURlYnVn
Z2VyOiBmdW5jdGlvbigpCiAgICAgewogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRWaWV3LmpzCmluZGV4IDcxZTc4YWQ4Yjc0OGVkZWFiYmNhNzIyNTVmZjdlNzg4ZTdi
NWI5NmMuLmZiMGJiNGIyYjJkZTE3OTllZTMyNjBhZDczMzhhMzMyMzFkZDJhZjAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCkBAIC01MCwxMiArNTAsMjggQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLl9mcmFtZU5lZWRzU2V0dXApCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7CiAKICAgICAgICAgdGhpcy5hdHRhY2goKTsKIAor
ICAgICAgICBpZiAodGhpcy5zY3JpcHQuc291cmNlKQorICAgICAgICAgICAgdGhpcy5fc291cmNl
RnJhbWVTZXR1cEZpbmlzaGVkKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFyIGNh
bGxiYWNrSWQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcCh0aGlzLl9kaWRHZXRTY3JpcHRT
b3VyY2UuYmluZCh0aGlzKSkKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U2NyaXB0
U291cmNlKGNhbGxiYWNrSWQsIHRoaXMuc2NyaXB0LnNvdXJjZUlEKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICBfZGlkR2V0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2UpCisgICAgewor
ICAgICAgICB0aGlzLnNjcmlwdC5zb3VyY2UgPSBzb3VyY2UgfHwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCI8c291cmNlIGlzIG5vdCBhdmFpbGFibGU+Iik7CisgICAgICAgIHRoaXMuX3NvdXJjZUZy
YW1lU2V0dXBGaW5pc2hlZCgpOworICAgIH0sCisKKyAgICBfc291cmNlRnJhbWVTZXR1cEZpbmlz
aGVkOiBmdW5jdGlvbigpCisgICAgewogICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLnNldENvbnRl
bnQoInRleHQvamF2YXNjcmlwdCIsIHRoaXMuX3ByZXBlbmRXaGl0ZXNwYWNlKHRoaXMuc2NyaXB0
LnNvdXJjZSkpOwogICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZVNldHVwID0gdHJ1ZTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX2ZyYW1lTmVlZHNTZXR1cDsKICAgICB9LAogCiAgICAgX3ByZXBlbmRX
aGl0ZXNwYWNlOiBmdW5jdGlvbihjb250ZW50KSB7CkBAIC0xMDYsMTAgKzEyMiwxMSBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgc2hvd2luZ0ZpcnN0U2VhcmNo
UmVzdWx0OiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUuc2hvd2luZ0ZpcnN0U2Vh
cmNoUmVzdWx0LAogICAgIHNob3dpbmdMYXN0U2VhcmNoUmVzdWx0OiBXZWJJbnNwZWN0b3IuU291
cmNlVmlldy5wcm90b3R5cGUuc2hvd2luZ0xhc3RTZWFyY2hSZXN1bHQsCiAgICAgX2p1bXBUb1Nl
YXJjaFJlc3VsdDogV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlLl9qdW1wVG9TZWFy
Y2hSZXN1bHQsCi0gICAgX3NvdXJjZUZyYW1lU2V0dXBGaW5pc2hlZDogV2ViSW5zcGVjdG9yLlNv
dXJjZVZpZXcucHJvdG90eXBlLl9zb3VyY2VGcmFtZVNldHVwRmluaXNoZWQsCiAgICAgX3JlbW92
ZUJyZWFrcG9pbnQ6IFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVtb3ZlQnJl
YWtwb2ludCwKICAgICBfZWRpdExpbmU6IFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlw
ZS5fZWRpdExpbmUsCiAgICAgcmVzaXplOiBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5
cGUucmVzaXplCiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CisKK1dlYkluc3BlY3Rvci5kaWRHZXRT
Y3JpcHRTb3VyY2UgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYWQxNGY0NWExMjEwMmU3NDhkOWM5MGM5MjVlZDVkYmQyOGQwMjE5YS4uYTEx
MjQxODQzYzRkMDkwMGNiYjg0NTFjNzhkYjYyY2U1NTdkZGFkOSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTAtMDYtMTAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogdG8gcmVkdWNlIHRoZSBmcm9udCBlbmQgc3RhcnQgdXAgdGltZSBkb24n
dCBwdXNoIHNjcmlwdAorICAgICAgICBzb3VyY2VzIHRvIGZyb250ZW5kIGlmIGRlYnVnZ2VyIGlz
IGFsd2F5cyBlbmFibGVkLCBpbnN0ZWFkIHJlcXVlc3QKKyAgICAgICAgc2NyaXB0IGNvbnRlbnQg
bGF6aWx5IGF0IHRoZSBtb21lbnQgaXQgc2hvdWxkIGJlIGRpc3BseWVkLiBJdCBpcyBjcml0aWNh
bCBmb3IKKyAgICAgICAgYWx3YXlzIGVuYWJsZWQgZGVidWdnZXIgYmVjYXVzZSBpbiB0aGF0IGNh
c2UgbG90cyBvZiBzY3JpcHQgbWF5IGhhdmUKKyAgICAgICAgYWxyZWFkeSBiZWVuIHBhcnNlZCB3
aGVuIHRoZSBmcm9udCBlbmQgaXMgb3BlbmluZyBhbmQgcHVzaGluZyBhbGwKKyAgICAgICAgb2Yg
dGhlbSBhdCBvbmNlIG1heSBzbG93IHRoaW5ncyBkb3duKGV2ZW4gdGhvdWdoIHRoZSBzY3JpcHQg
c291cmNlcyB3aWxsIG5ldmVyCisgICAgICAgIGJlIHVzZWQgaWYgc2NyaXB0cyBwYW5lbCBpc24n
dCBvcGVuKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMzY0CisKKyAgICAgICAgKiBzcmMvanMvRGV2VG9vbHMuanM6CisgICAgICAgICogc3JjL2pz
L0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzOgorICAgICAgICAoZGV2dG9vbHMuSW5zcGVjdG9y
QmFja2VuZEltcGwpOgorICAgICAgICAoLmRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsLnBy
b3RvdHlwZS5nZXRTY3JpcHRTb3VyY2UpOgorCiAyMDEwLTA2LTEwICBNaWtlIEJlbHNoZSAgPG1i
ZWxzaGVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvanMvRGV2VG9vbHMuanMKaW5kZXggOWY4NzA3ODJjNmVjOTdkNzY1M2U4ZTAwNzE4
MTliODMzMzdmYzcwZS4uMzk4ZDM1ODkzYjY2OWY3MjY2NGVlMDI5YWY4ZGJhOTY5NWY0MDAwZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcworKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBAIC0yMTAsNDIgKzIxMCw2IEBAIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBkZXZ0b29scy5kb21Db250
ZW50TG9hZGVkLCBmYWxzZSk7CiAKIGlmICghd2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJFbmFi
bGVkKSB7CiAKLS8qKgotICogVGhpcyBvdmVycmlkZSBpcyBuZWNlc3NhcnkgZm9yIGFkZGluZyBz
Y3JpcHQgc291cmNlIGFzeW5jaHJvbm91c2x5LgotICogQG92ZXJyaWRlCi0gKi8KLVdlYkluc3Bl
Y3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5zZXR1cFNvdXJjZUZyYW1lSWZOZWVkZWQgPSBmdW5j
dGlvbigpCi17Ci0gICAgaWYgKCF0aGlzLl9mcmFtZU5lZWRzU2V0dXApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHRoaXMuYXR0YWNoKCk7Ci0KLSAgICBpZiAodGhpcy5zY3JpcHQuc291cmNlKQot
ICAgICAgICB0aGlzLmRpZFJlc29sdmVTY3JpcHRTb3VyY2VfKCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgZGV2dG9vbHMudG9vbHMuZ2V0RGVidWdnZXJB
Z2VudCgpLnJlc29sdmVTY3JpcHRTb3VyY2UoCi0gICAgICAgICAgICB0aGlzLnNjcmlwdC5zb3Vy
Y2VJRCwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHNvdXJjZSkgewotICAgICAgICAgICAgICAgIHNl
bGYuc2NyaXB0LnNvdXJjZSA9IHNvdXJjZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIjxzb3Vy
Y2UgaXMgbm90IGF2YWlsYWJsZT4iKTsKLSAgICAgICAgICAgICAgICBzZWxmLmRpZFJlc29sdmVT
Y3JpcHRTb3VyY2VfKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9Ci19OwotCi0KLS8qKgotICog
UGVyZm9ybXMgc291cmNlIGZyYW1lIHNldHVwIHdoZW4gc2NyaXB0IHNvdXJjZSBpcyBhcmVhZHkg
cmVzb2x2ZWQuCi0gKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5kaWRSZXNv
bHZlU2NyaXB0U291cmNlXyA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLnNvdXJjZUZyYW1lLnNl
dENvbnRlbnQoInRleHQvamF2YXNjcmlwdCIsIHRoaXMuX3ByZXBlbmRXaGl0ZXNwYWNlKHRoaXMu
c2NyaXB0LnNvdXJjZSkpOwotICAgIHRoaXMuX3NvdXJjZUZyYW1lU2V0dXAgPSB0cnVlOwotICAg
IGRlbGV0ZSB0aGlzLl9mcmFtZU5lZWRzU2V0dXA7Ci19OwotCi0KIChmdW5jdGlvbigpCiB7CiAg
ICAgdmFyIG9sZFNob3cgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5zaG93
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVy
SW1wbC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwu
anMKaW5kZXggZGU4MzBjZWYyZDkyMGEzNWIxZjE5NDE0OTU0YmUzZTFkYWUzMjYzNy4uNWFiMzkx
NDBlODE5NGQxYTQ3MTYwZmRjMGU5MDFmMmI3ZGM5YTg1MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcworKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCkBAIC05NCw2ICs5NCw3IEBA
IGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsID0gZnVuY3Rpb24oKQogICAgIGlmICh3aW5k
b3cudjhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQpIHsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0
b3JDb250cm9sbGVyRGVsZWdhdGVfKCJkaXNhYmxlRGVidWdnZXIiKTsKICAgICB0aGlzLmluc3Rh
bGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJlZGl0U2NyaXB0U291cmNlIik7CisgICAg
dGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0U2NyaXB0U291cmNl
Iik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZW5hYmxl
RGVidWdnZXIiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVf
KCJzZXRCcmVha3BvaW50Iik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRl
bGVnYXRlXygicmVtb3ZlQnJlYWtwb2ludCIpOwpAQCAtMTUwLDYgKzE1MSwxNiBAQCBkZXZ0b29s
cy5JbnNwZWN0b3JCYWNrZW5kSW1wbC5wcm90b3R5cGUuZWRpdFNjcmlwdFNvdXJjZSA9IGZ1bmN0
aW9uKGNhbGxJRCwgc291cgogfTsKIAogCitkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbC5w
cm90b3R5cGUuZ2V0U2NyaXB0U291cmNlID0gZnVuY3Rpb24oY2FsbElELCBzb3VyY2VJRCkKK3sK
KyAgICBkZXZ0b29scy50b29scy5nZXREZWJ1Z2dlckFnZW50KCkucmVzb2x2ZVNjcmlwdFNvdXJj
ZSgKKyAgICAgICAgc291cmNlSUQsCisgICAgICAgIGZ1bmN0aW9uKHNvdXJjZSkgeworICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kaWRHZXRTY3JpcHRTb3VyY2UoY2FsbElELCBzb3VyY2UpOwor
ICAgICAgICB9KTsKK307CisKKwogZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwucHJvdG90
eXBlLmFjdGl2YXRlQnJlYWtwb2ludHMgPSBmdW5jdGlvbigpCiB7CiAgICAgZGV2dG9vbHMudG9v
bHMuZ2V0RGVidWdnZXJBZ2VudCgpLnNldEJyZWFrcG9pbnRzQWN0aXZhdGVkKHRydWUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>