<?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>103289</bug_id>
          
          <creation_ts>2012-11-26 13:47:14 -0800</creation_ts>
          <short_desc>PDFPlugin: Support conversion of PostScript documents</short_desc>
          <delta_ts>2012-11-30 13:26:19 -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>PDF</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775847</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-26 13:47:14 -0800</bug_when>
    <thetext>PDFViewController supported this previously, so we should continue to.

&lt;rdar://problem/10235708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776135</commentid>
    <comment_count>1</comment_count>
      <attachid>176128</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-26 17:46:16 -0800</bug_when>
    <thetext>Created attachment 176128
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780248</commentid>
    <comment_count>2</comment_count>
      <attachid>176128</attachid>
    <who name="">mitz</who>
    <bug_when>2012-11-30 11:10:27 -0800</bug_when>
    <thetext>Comment on attachment 176128
patch

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

&gt; Source/WebCore/platform/LocalizedStrings.cpp:736
&gt; +    return WEB_UI_STRING(&quot;PostScript&quot;, &quot;Description of the PostScript type supported (and converted to PDF) by the PDF pseudo plug-in. Visible in Installed Plug-ins page in Safari.&quot;);

You should correct the comment for pdfDocumentTypeDescription, since it is no longer the only type supported by the plug-in. I don’t think “(and converted to PDF)” is relevant to the person who needs to localize this string, so I’d remove it. You should also add “the” before “Install Plug-ins” here and in pdfDocumentTypeDescription().

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:185
&gt; +    MimeClassInfo psMimeClassInfo;

I’d call this postScriptMimeClassInfo.

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:353
&gt; +static RetainPtr&lt;CFMutableDataRef&gt; convertPostScriptDataSourceToPDF(RetainPtr&lt;CFDataRef&gt; psData)

What does “Source” mean in this context? I’d name the parameter postScriptData.

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:359
&gt; +    RetainPtr&lt;CGPSConverterRef&gt; converter(AdoptCF, CGPSConverterCreate(0, &amp;callbacks, 0));

The newly-preferred style for this is, I think, … converter = adoptCF(…)

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:362
&gt; +    RetainPtr&lt;CGDataProviderRef&gt; provider(AdoptCF, CGDataProviderCreateWithCFData((CFDataRef)psData.get()));

I’m surprised that we need to cast to CFDataRef here.

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:365
&gt; +    RetainPtr&lt;CFMutableDataRef&gt; result(AdoptCF, CFDataCreateMutable(kCFAllocatorDefault, 0));

I’d call this pdfData.

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:370
&gt; +

Not sure all of these assertions are useful. If any of these are NULL, won’t we crash in an obvious way?

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:662
&gt; +    if (equalIgnoringCase(mimeType, &quot;application/postscript&quot;))

Since “application/postscript” is repeated multiple times in this file, I think it makes sense to put it in a named constant. Or perhaps add a static bool isPostScriptMIMEType().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780275</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-30 11:55:56 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 176128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176128&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/LocalizedStrings.cpp:736
&gt; &gt; +    return WEB_UI_STRING(&quot;PostScript&quot;, &quot;Description of the PostScript type supported (and converted to PDF) by the PDF pseudo plug-in. Visible in Installed Plug-ins page in Safari.&quot;);
&gt; 
&gt; You should correct the comment for pdfDocumentTypeDescription, since it is no longer the only type supported by the plug-in. I don’t think “(and converted to PDF)” is relevant to the person who needs to localize this string, so I’d remove it. You should also add “the” before “Install Plug-ins” here and in pdfDocumentTypeDescription().

Surely! I wasn&apos;t sure I could change the descriptions without breaking localization stuff that I know nothing about.

&gt; &gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm:359
&gt; &gt; +    RetainPtr&lt;CGPSConverterRef&gt; converter(AdoptCF, CGPSConverterCreate(0, &amp;callbacks, 0));
&gt; 
&gt; The newly-preferred style for this is, I think, … converter = adoptCF(…)

Oh really? People had always been pointing me in the opposite direction (and I, other people!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780360</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-30 13:26:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/136265</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176128</attachid>
            <date>2012-11-26 17:46:16 -0800</date>
            <delta_ts>2012-11-30 11:10:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>postscript.diff</filename>
            <type>text/plain</type>
            <size>11626</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMjk0MGEyLi45OTg5MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTEtMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgKFNpbXBsZSlQREZQbHVnaW46IFN1cHBvcnQgY29udmVyc2lvbiBvZiBQb3N0U2Ny
aXB0IGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzMjg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIzNTcwOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGVQREZQbHVnaW4g
KGFuZCBQREZQbHVnaW4pIHNob3VsZCBzdXBwb3J0IGNvbnZlcnRpbmcgUG9zdFNjcmlwdCBmaWxl
cworICAgICAgICB0byBQREYgYmVmb3JlIGhhbmRpbmcgdGhlbSBvZmYgdG8gdGhlaXIgcmVzcGVj
dGl2ZSBiYWNrZW5kcy4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5nczoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBzRG9jdW1lbnRUeXBlRGVzY3Jp
cHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAg
QWRkIGFuZCBleHBvcnQgcHNEb2N1bWVudFR5cGVEZXNjcmlwdGlvbiwgZm9yIFBvc3RTY3JpcHQg
ZmlsZXMuCisKIDIwMTItMTEtMjYgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlA
Z21haWwuY29tPgogCiAgICAgICAgIFJlbW92aW5nIHVubmVjZXNzYXJ5IGZyaWVuZCBjbGFzc2Vz
IGluIFJlbmRlck9iamVjdDogTGF5b3V0UmVwYWludGVyLCBSZW5kZXJTVkdDb250YWluZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRl
eCBhMGE4NzY2MTcwY2VmNmI3MTcyMjM0OTBmOGYyNTczYzlkOTA2MmJkLi45ZWVjN2I4ZTE1NjY2
MDA5OWY0MDI5ZTQ4ZTY2NzU0ZDA0MWVmZmM5IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDEzNwp6Y21YQEdrOXBCUzxfKjVTbFJ0V14kcDxqeEdaWnRGRmEkRnNHWlptb0c4NiNXM1A0OzVX
VGk0Rk91OCo8c2xreFEKemtqSWIkNml4O3omU05NOE4pIVE9cT1MbXRmTU47XjBTcW4tWlZafTBS
dVdKdiRiYnhuKVg4bz5sYkx+clB5UEBtClImSXp8QHZPfUhvPTVwVlk2OUhyXkJJVz05CgpkZWx0
YSAxNApXY21aMjxrb213cTxfKjVTbzdlayZvKEtSbnJ3MypMCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCAxMDBlOWE0Li5mOWZiNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTYzOSw2ICsx
NjM5LDcgQEAgX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyMTZ1bnJlZ2lz
dGVyUGx1Z2luRVA0X05QUAogX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
OXNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUyNWNvbnRleHRNZW51SXRlbVRhZ091dGxpbmVFdgog
X19aTjdXZWJDb3JlMjV3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50RVA3TlNFdmVudAorX19aTjdX
ZWJDb3JlMjVwc0RvY3VtZW50VHlwZURlc2NyaXB0aW9uRXYKIF9fWk43V2ViQ29yZTI2Y29udGV4
dE1lbnVJdGVtVGFnRm9udE1lbnVFdgogX19aTjdXZWJDb3JlMjZjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0V2CiBfX1pON1dlYkNvcmUyNnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uRXYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMDI3NzIy
My4uNjUyMjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKQEAgLTczMCw2ICs3MzAsMTIgQEAgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0
aW9uKCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUgRG9jdW1lbnQgRm9ybWF0
IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0ZWQgYnkgUERGIHBzZXVk
byBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4i
KTsKIH0KIAorU3RyaW5nIHBzRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKQoreworICAgIC8vIEFs
c28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvc3RTY3JpcHQi
LCAiRGVzY3JpcHRpb24gb2YgdGhlIFBvc3RTY3JpcHQgdHlwZSBzdXBwb3J0ZWQgKGFuZCBjb252
ZXJ0ZWQgdG8gUERGKSBieSB0aGUgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3Rh
bGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4iKTsKK30KKwogU3RyaW5nIGtleWdlbk1lbnVJ
dGVtNTEyKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwg
Ik1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggNjczMjc0OC4uZjMwNTU3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMjE5LDYgKzIx
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgU3RyaW5n
IGJ1aWx0SW5QREZQbHVnaW5OYW1lKCk7CiAgICAgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2Ny
aXB0aW9uKCk7CisgICAgU3RyaW5nIHBzRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKTsKICAgICBT
dHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsKICAgICBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0
KCk7CiAgICAgU3RyaW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI3OGRi
NWEuLjJhMzhlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0xMS0yNiAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICAoU2ltcGxlKVBE
RlBsdWdpbjogU3VwcG9ydCBjb252ZXJzaW9uIG9mIFBvc3RTY3JpcHQgZG9jdW1lbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyODkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjM1NzA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsZVBERlBsdWdpbiAoYW5kIFBERlBsdWdpbikgc2hv
dWxkIHN1cHBvcnQgY29udmVydGluZyBQb3N0U2NyaXB0IGZpbGVzCisgICAgICAgIHRvIFBERiBi
ZWZvcmUgaGFuZGluZyB0aGVtIG9mZiB0byB0aGVpciByZXNwZWN0aXZlIGJhY2tlbmRzLgorCisg
ICAgICAgIEFzIFBERlBsdWdpbiBpbmhlcml0cyBmcm9tIFNpbXBsZVBERlBsdWdpbiwgaXQgZ2V0
cyB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkgYXV0b21hdGljYWxseS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmg6IEFkZCBjb252ZXJ0UG9zdFNjcmlw
dERhdGFJZk5lZWRlZCgpLCBhbmQgbV9pc1Bvc3RTY3JpcHQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlNpbXBs
ZVBERlBsdWdpbjo6cGx1Z2luSW5mbyk6IFNpbXBsZVBERlBsdWdpbiBzaG91bGQgY2xhaW0gdG8g
c3VwcG9ydCBQREYgYW5kIFBvc3RTY3JpcHQuCisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRQb3N0
U2NyaXB0RGF0YVNvdXJjZVRvUERGKTogUFMtPlBERiBjb252ZXJzaW9uIGNvZGUsIGNvcGllZCBm
cm9tIFBERlZpZXdDb250cm9sbGVyICh3aGljaCBJIGludGVuZCB0byByZW1vdmUpLgorICAgICAg
ICAoV2ViS2l0OjpTaW1wbGVQREZQbHVnaW46OmNvbnZlcnRQb3N0U2NyaXB0RGF0YUlmTmVlZGVk
KTogQ2hlY2sgaWYgdGhlIGxvYWRlZCBkYXRhIHJlcHJlc2VudHMgYSBQUyBmaWxlOyBpZiBzbywg
Y29udmVydCBpdC4KKyAgICAgICAgKFdlYktpdDo6U2ltcGxlUERGUGx1Z2luOjpzdHJlYW1EaWRS
ZWNlaXZlUmVzcG9uc2UpOiBDaGVjayBpZiB0aGUgbG9hZGVkIGRhdGEgaXMgb2YgTUlNRSB0eXBl
IGFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQsIGFuZCBzdG9yZSB0aGF0IGluIG1faXNQb3N0U2NyaXB0
LgorICAgICAgICAoV2ViS2l0OjpTaW1wbGVQREZQbHVnaW46OnN0cmVhbURpZEZpbmlzaExvYWRp
bmcpOiBDYWxsIGNvbnZlcnRQb3N0U2NyaXB0RGF0YUlmTmVlZGVkIHdoZW4gd2UgZmluaXNoIGxv
YWRpbmcuCisgICAgICAgIChXZWJLaXQ6OlNpbXBsZVBERlBsdWdpbjo6bWFudWFsU3RyZWFtRGlk
UmVjZWl2ZVJlc3BvbnNlKTogRGl0dG8gZnJvbSBzdHJlYW1EaWRSZWNlaXZlUmVzcG9uc2UuCisg
ICAgICAgIChXZWJLaXQ6OlNpbXBsZVBERlBsdWdpbjo6bWFudWFsU3RyZWFtRGlkRmluaXNoTG9h
ZGluZyk6IERpdHRvIGZyb20gc3RyZWFtRGlkRmluaXNoTG9hZGluZy4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbik6IFVzZSAoU2ltcGxlKVBERlBsdWdpbiBmb3IgUG9zdFNjcmlwdCBmaWxlcyB0
b28uCisKIDIwMTItMTEtMjYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAg
IFBhc3MgY2xpY2tzIHRocm91Z2ggdG8gdGhlIHJlc3RhcnRlZCBwbHVnaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1NpbXBsZVBERlBsdWdpbi5o
CmluZGV4IDk0ZTFhYWUuLjhjM2NiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4uaApAQCAtMTgwLDYgKzE4MCw4
IEBAIHByaXZhdGU6CiAgICAgSlNPYmplY3RSZWYgbWFrZUpTUERGRG9jKEpTQ29udGV4dFJlZik7
CiAgICAgc3RhdGljIEpTVmFsdWVSZWYganNQREZEb2NQcmludChKU0NvbnRleHRSZWYsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KTsKIAorICAgIHZvaWQgY29udmVydFBvc3RTY3JpcHREYXRhSWZOZWVkZWQoKTsKKwogICAgIFdl
YkNvcmU6OkludFNpemUgbV9zaXplOwogCiAgICAgV2ViQ29yZTo6S1VSTCBtX3NvdXJjZVVSTDsK
QEAgLTE5NSw2ICsxOTcsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpTY3JvbGxi
YXI+IG1fdmVydGljYWxTY3JvbGxiYXI7CiAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKKworICAg
IGJvb2wgbV9pc1Bvc3RTY3JpcHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1
Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQ
bHVnaW4ubW0KaW5kZXggMzIwMzJjMi4uZDc4NDUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4ubW0KQEAgLTE2
Myw2ICsxNjMsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZVBERlBsdWdpbj4gU2ltcGxlUERGUGx1Z2lu
OjpjcmVhdGUoV2ViRnJhbWUqIGZyYW1lKQogCiBTaW1wbGVQREZQbHVnaW46OlNpbXBsZVBERlBs
dWdpbihXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9pc1Bv
c3RTY3JpcHQoZmFsc2UpCiB7CiB9CiAKQEAgLTE3NSwxMiArMTc2LDE4IEBAIFBsdWdpbkluZm8g
U2ltcGxlUERGUGx1Z2luOjpwbHVnaW5JbmZvKCkKICAgICBQbHVnaW5JbmZvIGluZm87CiAgICAg
aW5mby5uYW1lID0gYnVpbHRJblBERlBsdWdpbk5hbWUoKTsKIAotICAgIE1pbWVDbGFzc0luZm8g
bWltZUNsYXNzSW5mbzsKLSAgICBtaW1lQ2xhc3NJbmZvLnR5cGUgPSAiYXBwbGljYXRpb24vcGRm
IjsKLSAgICBtaW1lQ2xhc3NJbmZvLmRlc2MgPSBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigp
OwotICAgIG1pbWVDbGFzc0luZm8uZXh0ZW5zaW9ucy5hcHBlbmQoInBkZiIpOworICAgIE1pbWVD
bGFzc0luZm8gcGRmTWltZUNsYXNzSW5mbzsKKyAgICBwZGZNaW1lQ2xhc3NJbmZvLnR5cGUgPSAi
YXBwbGljYXRpb24vcGRmIjsKKyAgICBwZGZNaW1lQ2xhc3NJbmZvLmRlc2MgPSBwZGZEb2N1bWVu
dFR5cGVEZXNjcmlwdGlvbigpOworICAgIHBkZk1pbWVDbGFzc0luZm8uZXh0ZW5zaW9ucy5hcHBl
bmQoInBkZiIpOworICAgIGluZm8ubWltZXMuYXBwZW5kKHBkZk1pbWVDbGFzc0luZm8pOworCisg
ICAgTWltZUNsYXNzSW5mbyBwc01pbWVDbGFzc0luZm87CisgICAgcHNNaW1lQ2xhc3NJbmZvLnR5
cGUgPSAiYXBwbGljYXRpb24vcG9zdHNjcmlwdCI7CisgICAgcHNNaW1lQ2xhc3NJbmZvLmRlc2Mg
PSBwc0RvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7CisgICAgcHNNaW1lQ2xhc3NJbmZvLmV4dGVu
c2lvbnMuYXBwZW5kKCJwcyIpOworICAgIGluZm8ubWltZXMuYXBwZW5kKHBzTWltZUNsYXNzSW5m
byk7CiAKLSAgICBpbmZvLm1pbWVzLmFwcGVuZChtaW1lQ2xhc3NJbmZvKTsKICAgICByZXR1cm4g
aW5mbzsKIH0KIApAQCAtMzQzLDYgKzM1MCwyOSBAQCBKU09iamVjdFJlZiBTaW1wbGVQREZQbHVn
aW46Om1ha2VKU1BERkRvYyhKU0NvbnRleHRSZWYgY3R4KQogICAgIHJldHVybiBKU09iamVjdE1h
a2UoY3R4LCBqc1BERkRvY0NsYXNzLCB0aGlzKTsKIH0KIAorc3RhdGljIFJldGFpblB0cjxDRk11
dGFibGVEYXRhUmVmPiBjb252ZXJ0UG9zdFNjcmlwdERhdGFTb3VyY2VUb1BERihSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBwc0RhdGEpCit7CisgICAgLy8gQ29udmVydCBQb3N0U2NyaXB0IHRvIFBERiB1
c2luZyB0aGUgUXVhcnR6IDJEIEFQSS4KKyAgICAvLyBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNv
bS9kb2N1bWVudGF0aW9uL0dyYXBoaWNzSW1hZ2luZy9Db25jZXB0dWFsL2RyYXdpbmd3aXRocXVh
cnR6MmQvZHFfcHNfY29udmVydC9jaGFwdGVyXzE2X3NlY3Rpb25fMS5odG1sCisKKyAgICBDR1BT
Q29udmVydGVyQ2FsbGJhY2tzIGNhbGxiYWNrcyA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9
OworICAgIFJldGFpblB0cjxDR1BTQ29udmVydGVyUmVmPiBjb252ZXJ0ZXIoQWRvcHRDRiwgQ0dQ
U0NvbnZlcnRlckNyZWF0ZSgwLCAmY2FsbGJhY2tzLCAwKSk7CisgICAgQVNTRVJUKGNvbnZlcnRl
cik7CisKKyAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyKEFkb3B0Q0Ys
IENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aENGRGF0YSgoQ0ZEYXRhUmVmKXBzRGF0YS5nZXQoKSkp
OworICAgIEFTU0VSVChwcm92aWRlcik7CisKKyAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJl
Zj4gcmVzdWx0KEFkb3B0Q0YsIENGRGF0YUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgMCkpOworICAgIEFTU0VSVChyZXN1bHQpOworCisgICAgUmV0YWluUHRyPENHRGF0YUNvbnN1
bWVyUmVmPiBjb25zdW1lcihBZG9wdENGLCBDR0RhdGFDb25zdW1lckNyZWF0ZVdpdGhDRkRhdGEo
cmVzdWx0LmdldCgpKSk7CisgICAgQVNTRVJUKGNvbnN1bWVyKTsKKworICAgIENHUFNDb252ZXJ0
ZXJDb252ZXJ0KGNvbnZlcnRlci5nZXQoKSwgcHJvdmlkZXIuZ2V0KCksIGNvbnN1bWVyLmdldCgp
LCAwKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgU2ltcGxlUERGUGx1Z2luOjpw
ZGZEb2N1bWVudERpZExvYWQoKQogewogICAgIGFkZEFyY2hpdmVSZXNvdXJjZSgpOwpAQCAtNTgx
LDExICs2MTEsMjMgQEAgdm9pZCBTaW1wbGVQREZQbHVnaW46OmRpZEV2YWx1YXRlSmF2YVNjcmlw
dCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIFNpbXBsZVBERlBsdWdpbjo6c3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKHVp
bnQ2NF90IHN0cmVhbUlELCBjb25zdCBLVVJMJiwgdWludDMyX3QsIHVpbnQzMl90LCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQor
dm9pZCBTaW1wbGVQREZQbHVnaW46OmNvbnZlcnRQb3N0U2NyaXB0RGF0YUlmTmVlZGVkKCkKK3sK
KyAgICBpZiAoIW1faXNQb3N0U2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1Z2dl
c3RlZEZpbGVuYW1lID0gU3RyaW5nKG1fc3VnZ2VzdGVkRmlsZW5hbWUgKyAiLnBkZiIpOworICAg
IG1fZGF0YSA9IGNvbnZlcnRQb3N0U2NyaXB0RGF0YVNvdXJjZVRvUERGKG1fZGF0YSk7Cit9CisK
K3ZvaWQgU2ltcGxlUERGUGx1Z2luOjpzdHJlYW1EaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3Qg
c3RyZWFtSUQsIGNvbnN0IEtVUkwmLCB1aW50MzJfdCwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUp
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1JRCwgc3RyZWFtSUQgPT0gcGRmRG9jdW1lbnRS
ZXF1ZXN0SUQpOwogCiAgICAgbV9zdWdnZXN0ZWRGaWxlbmFtZSA9IHN1Z2dlc3RlZEZpbGVuYW1l
OworCisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1pbWVUeXBlLCAiYXBwbGljYXRpb24vcG9z
dHNjcmlwdCIpKQorICAgICAgICBtX2lzUG9zdFNjcmlwdCA9IHRydWU7CiB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiB2b2lkIFNpbXBsZVBERlBsdWdpbjo6
c3RyZWFtRGlkUmVjZWl2ZURhdGEodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IGNoYXIqIGJ5dGVz
LCBpbnQgbGVuZ3RoKQpAQCAtNjAyLDYgKzY0NCw3IEBAIHZvaWQgU2ltcGxlUERGUGx1Z2luOjpz
dHJlYW1EaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IHN0cmVhbUlEKQogewogICAgIEFTU0VSVF9V
TlVTRUQoc3RyZWFtSUQsIHN0cmVhbUlEID09IHBkZkRvY3VtZW50UmVxdWVzdElEKTsKIAorICAg
IGNvbnZlcnRQb3N0U2NyaXB0RGF0YUlmTmVlZGVkKCk7CiAgICAgcGRmRG9jdW1lbnREaWRMb2Fk
KCk7CiB9CiAKQEAgLTYxNSw2ICs2NTgsOSBAQCB2b2lkIFNpbXBsZVBERlBsdWdpbjo6c3RyZWFt
RGlkRmFpbCh1aW50NjRfdCBzdHJlYW1JRCwgYm9vbCB3YXNDYW5jZWxsZWQpCiB2b2lkIFNpbXBs
ZVBERlBsdWdpbjo6bWFudWFsU3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IEtVUkwmIHJl
c3BvbnNlVVJMLCB1aW50MzJfdCBzdHJlYW1MZW5ndGgsICB1aW50MzJfdCBsYXN0TW9kaWZpZWRU
aW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGhlYWRlcnMsIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7CiAgICAgbV9zdWdnZXN0ZWRGaWxlbmFtZSA9
IHN1Z2dlc3RlZEZpbGVuYW1lOworCisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1pbWVUeXBl
LCAiYXBwbGljYXRpb24vcG9zdHNjcmlwdCIpKQorICAgICAgICBtX2lzUG9zdFNjcmlwdCA9IHRy
dWU7CiB9CiAKIHZvaWQgU2ltcGxlUERGUGx1Z2luOjptYW51YWxTdHJlYW1EaWRSZWNlaXZlRGF0
YShjb25zdCBjaGFyKiBieXRlcywgaW50IGxlbmd0aCkKQEAgLTYyNyw2ICs2NzMsNyBAQCB2b2lk
IFNpbXBsZVBERlBsdWdpbjo6bWFudWFsU3RyZWFtRGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciog
Ynl0ZXMsIGludCBsZW5ndGgpCiAKIHZvaWQgU2ltcGxlUERGUGx1Z2luOjptYW51YWxTdHJlYW1E
aWRGaW5pc2hMb2FkaW5nKCkKIHsKKyAgICBjb252ZXJ0UG9zdFNjcmlwdERhdGFJZk5lZWRlZCgp
OwogICAgIHBkZkRvY3VtZW50RGlkTG9hZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTIxZmFlMy4uNWZjNmQ1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTE5LDgg
KzUxOSw5IEBAIFBhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJh
bWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1CiAKICAgICBpZiAocGx1Z2luUGF0aC5p
c051bGwoKSkgewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgaWYgKHBhcmFtZXRlcnMubWlt
ZVR5cGUgPT0gImFwcGxpY2F0aW9uL3BkZiIKLSAgICAgICAgICAgIHx8IChwYXJhbWV0ZXJzLm1p
bWVUeXBlLmlzRW1wdHkoKSAmJiBwYXJhbWV0ZXJzLnVybC5wYXRoKCkubG93ZXIoKS5lbmRzV2l0
aCgiLnBkZiIpKSkgeworICAgICAgICBTdHJpbmcgcGF0aCA9IHBhcmFtZXRlcnMudXJsLnBhdGgo
KTsKKyAgICAgICAgaWYgKChwYXJhbWV0ZXJzLm1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi9wZGYi
IHx8IHBhcmFtZXRlcnMubWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQiKQorICAg
ICAgICAgICAgfHwgKHBhcmFtZXRlcnMubWltZVR5cGUuaXNFbXB0eSgpICYmIChwYXRoLmVuZHNX
aXRoKCIucGRmIiwgZmFsc2UpIHx8IHBhdGguZW5kc1dpdGgoIi5wcyIsIGZhbHNlKSkpKSB7CiAj
aWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCiAgICAgICAgICAgICBpZiAocGRmUGx1Z2luRW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBQREZQbHVnaW46OmNyZWF0ZShmcmFtZSk7Cg==
</data>
<flag name="review"
          id="191817"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>