<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Print Popup Feature Menu and Feature Tables in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1379347#M83601</link>
    <description>&lt;P&gt;Here is my solution to printing the popup feature menu.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://codepen.io/mbdriscoll/pen/GReBgYd" target="_blank"&gt;https://codepen.io/mbdriscoll/pen/GReBgYd&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;&amp;lt;html lang="en"&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;meta charset="utf-8" /&amp;gt;
  &amp;lt;meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /&amp;gt;
  
  &amp;lt;title&amp;gt;Feature Layer Popup Test&amp;lt;/title&amp;gt;

  &amp;lt;link rel="stylesheet" href="https://js.arcgis.com/4.28/esri/themes/dark/main.css" /&amp;gt;
  &amp;lt;script src="https://js.arcgis.com/4.28/"&amp;gt;&amp;lt;/script&amp;gt;

  &amp;lt;style&amp;gt;
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }

    
  &amp;lt;/style&amp;gt;
  &amp;lt;script&amp;gt;
    require([
      "esri/Map",
      "esri/views/MapView",
      "esri/layers/FeatureLayer",
      "esri/Basemap",
      "esri/layers/TileLayer",
    ], (Map,MapView,FeatureLayer,Basemap,TileLayer) =&amp;gt; {


      const aerial2022 = new Basemap({
        baseLayers: [
        new TileLayer({
          url: "https://www.jfksgis.us/image/rest/services/Aerials/Aerials_2022_cache/MapServer",
          title: "Basemap"
        }),           
        ],
        title: "2022 Aerial",
        visible: true,        
      });

      const parcelLayer = new FeatureLayer({
        url: "https://www.jfksgis.us/server/rest/services/BaseLayers/JFKSBaseMapLayers/MapServer/3",
        title: 'Search Results',
        popupTemplate : createPopupTemplate(),
        listMode: "hide",
        outFields:["*"]
      });

      const theMap = new Map({
          basemap :  aerial2022,
          layers : [parcelLayer] 
      });

      const theView = new MapView({
          container : "viewDiv",
          map : theMap,
          center : [-95.3804157, 39.2315224],
          highlightOptions: {
            color: [64, 247, 244],
            fillOpacity: 0.2,         
          },
          popup: {
            visibleElements: {
              closeButton: true,
            },
            dockEnabled: true,
            dockOptions: {
              autoOpenEnabled: false,
              position: "bottom-right",
              breakpoint: false,
              buttonEnabled: false,          
            },
          },         
      });

      function createPopupTemplate(){
        const urlTax = "https://ks1418.cichosting.com/ttp/tax/Search/search_tax_results.aspx?";
        const urlRC = "https://www.jfksgis.us/prc/"
        var parInfo = 'https://www.jfksgis.us/JFKSParcelSearch/parcelInformation.html';
        var platy = "Replace($feature.Plat_HL, ' ', '%20')"
        return{
          title:
            "&amp;lt;b&amp;gt;Owner:&amp;lt;/b&amp;gt; {PartyName_1} " + 
            "&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Address: &amp;lt;/b&amp;gt; {PropertyAddress}" +
            "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Property Number: &amp;lt;/b&amp;gt; {PropertyNumber}" +
            "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Appraisal:&amp;lt;/b&amp;gt; ${RP_AprTot}", 
          outFields: ["*"],
          content:
            [
              {
                type: "fields",
                fieldInfos:[
                  {
                    fieldName: "QuickRefID",
                    label: "Quick Ref ID",
                  },
                  {
                    fieldName: "ACRES",
                    label: "Acres",
                    format:{
                      places: 2,
                    }
                  },                
                ]
              },
              {
                type: "text",
                text: "&amp;lt;a class='hyperlinkURL' target='_blank' href=" + parInfo + "?PropertyID={PropertyID}&amp;amp;PID={PID}&amp;amp;PropNum={PropertyNumber}&amp;gt;Parcel Information&amp;lt;/a&amp;gt;&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;lt;a class='hyperlinkURL' target='_blank' href=" + urlTax + "PID={PID}&amp;gt;Tax Information&amp;lt;/a&amp;gt;"
              },
              {
                type: "text",
                text: "&amp;lt;a class='hyperlinkURL2' target='_blank' href=https://{expression/platlinked}&amp;gt;View Plat&amp;lt;/a&amp;gt;&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;lt;a class='hyperlinkURL' href=" + urlRC + "{PropertyNumber}.pdf&amp;gt;Property Record Card&amp;lt;/a&amp;gt;", 
              },          
            ],      
            expressionInfos:[
              {
                name: "platlinked",
                expression: platy, 
              },
            ],
            fieldInfos:[{
              fieldName: "RP_AprTot",
              label: "Total Appraised Value",
              format: {
                places: 2,
                digitSeparator: true,
              }         
            },
          ],
        
        }     
      };

      function addButtonToContainer() {
        const isElementLoaded = async selector =&amp;gt; {
          while (document.querySelector(selector) === null) {
            await new Promise(resolve =&amp;gt; requestAnimationFrame(resolve));
          }
        };
      
        // Wait for the feature menu container to be fully loaded
        isElementLoaded('.esri-popup__main-container').then(() =&amp;gt; {
          console.log("Feature menu container loaded");
          let myDiv = document.querySelector('.esri-popup__main-container');
          let button = document.createElement('button5');
          button.innerText = "Print";
          button.style.position = "absolute";
          button.style.top = "5px";
          button.style.right = "5px";
          button.style.zIndex = "9999"; // Set a high z-index value
          button.style.backgroundColor = "white";
          button.style.color = "black";
          button.style.fontWeight = "bold";
          button.style.padding = "3px 3px";
          button.style.cursor = "pointer";
          button.addEventListener("click", printDiv);
          myDiv.appendChild(button);
        });
      }

      function printDiv(){
        const isElementLoaded = async selector =&amp;gt; {
          while (document.querySelector(selector) === null) {
            await new Promise(resolve =&amp;gt; requestAnimationFrame(resolve));
          }
        }
        isElementLoaded('.esri-popup__main-container').then(() =&amp;gt; {
          console.log("Feature menu loaded");

          var printContent = document.querySelector('.esri-popup__main-container').innerHTML;
          const modifiedContent = printContent.replace(/Back/g, '').replace(/Owner/g, '&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Owner');
          printWindow = window.open('', '_blank');
          printWindow.document.write(modifiedContent);
          printWindow.document.close();
          // Wait for a short period before printing
          setTimeout(function() {
            printWindow.print();
          }, 100);
          
        })  
      };
      

      let query = parcelLayer.createQuery();
      query.where = "PartyName_1 LIKE '%driscoll%'";
      query.outFields = [ "*" ];

      parcelLayer.queryFeatures(query)
        .then(function(response) {
          // Open the popup with the queried features
          theView.openPopup({
            features: response.features,
            featureMenuOpen: true,
            featuresPerPage: 100,
          }),
          addButtonToContainer();          
        });

    });
  &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
  &amp;lt;div id="viewDiv"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 15 Feb 2024 17:16:29 GMT</pubDate>
    <dc:creator>MatthewDriscoll</dc:creator>
    <dc:date>2024-02-15T17:16:29Z</dc:date>
    <item>
      <title>Print Popup Feature Menu and Feature Tables</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1366411#M83259</link>
      <description>&lt;P&gt;Is there a print option for&amp;nbsp; the popup feature menu?&amp;nbsp; Also is there a print option for feature table?&amp;nbsp; If anyone has done this I appreciate any tips you have.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jan 2024 18:30:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1366411#M83259</guid>
      <dc:creator>MatthewDriscoll</dc:creator>
      <dc:date>2024-01-04T18:30:28Z</dc:date>
    </item>
    <item>
      <title>Re: Print Popup Feature Menu and Feature Tables</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1367472#M83284</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/327152"&gt;@MatthewDriscoll&lt;/a&gt;. For printing tables, yes, we do have this ability with print():&lt;/P&gt;&lt;P&gt;&lt;A href="https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PrintTemplate.html#includeTables" target="_blank"&gt;https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PrintTemplate.html#includeTables&lt;/A&gt;&lt;/P&gt;&lt;P&gt;We expect to have this functionality available for the Print widget at a future release.&lt;/P&gt;&lt;P&gt;For more print options, there is a blog post about how to use HTML2Canvas to capture even more inputs into the print output:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/t5/arcgis-instant-apps-blog/screenshots-with-the-arcgis-api-for-javascript/ba-p/904367" target="_blank"&gt;https://community.esri.com/t5/arcgis-instant-apps-blog/screenshots-with-the-arcgis-api-for-javascript/ba-p/904367&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 17:19:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1367472#M83284</guid>
      <dc:creator>Noah-Sager</dc:creator>
      <dc:date>2024-01-08T17:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: Print Popup Feature Menu and Feature Tables</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1368954#M83321</link>
      <description>&lt;P&gt;Are there any examples.&amp;nbsp; When I use featureTable.print() I get the error that it is not a function.&amp;nbsp; The link shows how to print from the export/print widget.&amp;nbsp; I would like to print direct from the custom option newMenuItem to print the table.&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;If I use a newMenuItem to open a new window to print the table using print(), it loses all the grids that make it a table.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The HTML2DCanvas seems promising, I will work on testing that out.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2024 16:19:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1368954#M83321</guid>
      <dc:creator>MatthewDriscoll</dc:creator>
      <dc:date>2024-01-11T16:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: Print Popup Feature Menu and Feature Tables</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1379347#M83601</link>
      <description>&lt;P&gt;Here is my solution to printing the popup feature menu.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://codepen.io/mbdriscoll/pen/GReBgYd" target="_blank"&gt;https://codepen.io/mbdriscoll/pen/GReBgYd&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;&amp;lt;html lang="en"&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;meta charset="utf-8" /&amp;gt;
  &amp;lt;meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /&amp;gt;
  
  &amp;lt;title&amp;gt;Feature Layer Popup Test&amp;lt;/title&amp;gt;

  &amp;lt;link rel="stylesheet" href="https://js.arcgis.com/4.28/esri/themes/dark/main.css" /&amp;gt;
  &amp;lt;script src="https://js.arcgis.com/4.28/"&amp;gt;&amp;lt;/script&amp;gt;

  &amp;lt;style&amp;gt;
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }

    
  &amp;lt;/style&amp;gt;
  &amp;lt;script&amp;gt;
    require([
      "esri/Map",
      "esri/views/MapView",
      "esri/layers/FeatureLayer",
      "esri/Basemap",
      "esri/layers/TileLayer",
    ], (Map,MapView,FeatureLayer,Basemap,TileLayer) =&amp;gt; {


      const aerial2022 = new Basemap({
        baseLayers: [
        new TileLayer({
          url: "https://www.jfksgis.us/image/rest/services/Aerials/Aerials_2022_cache/MapServer",
          title: "Basemap"
        }),           
        ],
        title: "2022 Aerial",
        visible: true,        
      });

      const parcelLayer = new FeatureLayer({
        url: "https://www.jfksgis.us/server/rest/services/BaseLayers/JFKSBaseMapLayers/MapServer/3",
        title: 'Search Results',
        popupTemplate : createPopupTemplate(),
        listMode: "hide",
        outFields:["*"]
      });

      const theMap = new Map({
          basemap :  aerial2022,
          layers : [parcelLayer] 
      });

      const theView = new MapView({
          container : "viewDiv",
          map : theMap,
          center : [-95.3804157, 39.2315224],
          highlightOptions: {
            color: [64, 247, 244],
            fillOpacity: 0.2,         
          },
          popup: {
            visibleElements: {
              closeButton: true,
            },
            dockEnabled: true,
            dockOptions: {
              autoOpenEnabled: false,
              position: "bottom-right",
              breakpoint: false,
              buttonEnabled: false,          
            },
          },         
      });

      function createPopupTemplate(){
        const urlTax = "https://ks1418.cichosting.com/ttp/tax/Search/search_tax_results.aspx?";
        const urlRC = "https://www.jfksgis.us/prc/"
        var parInfo = 'https://www.jfksgis.us/JFKSParcelSearch/parcelInformation.html';
        var platy = "Replace($feature.Plat_HL, ' ', '%20')"
        return{
          title:
            "&amp;lt;b&amp;gt;Owner:&amp;lt;/b&amp;gt; {PartyName_1} " + 
            "&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Address: &amp;lt;/b&amp;gt; {PropertyAddress}" +
            "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Property Number: &amp;lt;/b&amp;gt; {PropertyNumber}" +
            "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Appraisal:&amp;lt;/b&amp;gt; ${RP_AprTot}", 
          outFields: ["*"],
          content:
            [
              {
                type: "fields",
                fieldInfos:[
                  {
                    fieldName: "QuickRefID",
                    label: "Quick Ref ID",
                  },
                  {
                    fieldName: "ACRES",
                    label: "Acres",
                    format:{
                      places: 2,
                    }
                  },                
                ]
              },
              {
                type: "text",
                text: "&amp;lt;a class='hyperlinkURL' target='_blank' href=" + parInfo + "?PropertyID={PropertyID}&amp;amp;PID={PID}&amp;amp;PropNum={PropertyNumber}&amp;gt;Parcel Information&amp;lt;/a&amp;gt;&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;lt;a class='hyperlinkURL' target='_blank' href=" + urlTax + "PID={PID}&amp;gt;Tax Information&amp;lt;/a&amp;gt;"
              },
              {
                type: "text",
                text: "&amp;lt;a class='hyperlinkURL2' target='_blank' href=https://{expression/platlinked}&amp;gt;View Plat&amp;lt;/a&amp;gt;&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;amp;nbsp&amp;lt;a class='hyperlinkURL' href=" + urlRC + "{PropertyNumber}.pdf&amp;gt;Property Record Card&amp;lt;/a&amp;gt;", 
              },          
            ],      
            expressionInfos:[
              {
                name: "platlinked",
                expression: platy, 
              },
            ],
            fieldInfos:[{
              fieldName: "RP_AprTot",
              label: "Total Appraised Value",
              format: {
                places: 2,
                digitSeparator: true,
              }         
            },
          ],
        
        }     
      };

      function addButtonToContainer() {
        const isElementLoaded = async selector =&amp;gt; {
          while (document.querySelector(selector) === null) {
            await new Promise(resolve =&amp;gt; requestAnimationFrame(resolve));
          }
        };
      
        // Wait for the feature menu container to be fully loaded
        isElementLoaded('.esri-popup__main-container').then(() =&amp;gt; {
          console.log("Feature menu container loaded");
          let myDiv = document.querySelector('.esri-popup__main-container');
          let button = document.createElement('button5');
          button.innerText = "Print";
          button.style.position = "absolute";
          button.style.top = "5px";
          button.style.right = "5px";
          button.style.zIndex = "9999"; // Set a high z-index value
          button.style.backgroundColor = "white";
          button.style.color = "black";
          button.style.fontWeight = "bold";
          button.style.padding = "3px 3px";
          button.style.cursor = "pointer";
          button.addEventListener("click", printDiv);
          myDiv.appendChild(button);
        });
      }

      function printDiv(){
        const isElementLoaded = async selector =&amp;gt; {
          while (document.querySelector(selector) === null) {
            await new Promise(resolve =&amp;gt; requestAnimationFrame(resolve));
          }
        }
        isElementLoaded('.esri-popup__main-container').then(() =&amp;gt; {
          console.log("Feature menu loaded");

          var printContent = document.querySelector('.esri-popup__main-container').innerHTML;
          const modifiedContent = printContent.replace(/Back/g, '').replace(/Owner/g, '&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Owner');
          printWindow = window.open('', '_blank');
          printWindow.document.write(modifiedContent);
          printWindow.document.close();
          // Wait for a short period before printing
          setTimeout(function() {
            printWindow.print();
          }, 100);
          
        })  
      };
      

      let query = parcelLayer.createQuery();
      query.where = "PartyName_1 LIKE '%driscoll%'";
      query.outFields = [ "*" ];

      parcelLayer.queryFeatures(query)
        .then(function(response) {
          // Open the popup with the queried features
          theView.openPopup({
            features: response.features,
            featureMenuOpen: true,
            featuresPerPage: 100,
          }),
          addButtonToContainer();          
        });

    });
  &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
  &amp;lt;div id="viewDiv"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Feb 2024 17:16:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1379347#M83601</guid>
      <dc:creator>MatthewDriscoll</dc:creator>
      <dc:date>2024-02-15T17:16:29Z</dc:date>
    </item>
    <item>
      <title>Re: Print Popup Feature Menu and Feature Tables</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1684809#M88144</link>
      <description>&lt;P&gt;Updated solution for 4.34&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;// Create the button
const exportBtn = document.createElement("button");
exportBtn.id = "export-feature-menu-btn";
exportBtn.innerHTML = `&amp;lt;span class="esri-icon-download"&amp;gt;&amp;lt;/span&amp;gt; Export`;
exportBtn.title = "Export all features in menu";

// Append directly to body
document.body.appendChild(exportBtn);


// Click handler - CSV export
exportBtn.addEventListener("click", () =&amp;gt; {
  const features = view.popup.features || [];
  if (!features.length) return;


  // Fields to export from popup
  const popupFields = [
    "PartyName_1",
    "PropertyAddress",
    "PropertyNumber",
    "RP_AprTot"
  ];

  // Optional: user-friendly headers
  const headerNames = [
    "Owner Name",
    "Property Address",
    "Parcel ID",
    "Appraised Total"
  ];

  let csv = headerNames.join(",") + "\n";

  features.forEach(feature =&amp;gt; {
    //console.log(feature.attributes)
    const attrs = feature.attributes || {};
    console.log("Parcel attrs →", attrs);

    const row = allFields.map(field =&amp;gt; {
      let val = attrs[field] ?? "";
      console.log(val)

      return `"${val}"`;
    });

    csv += row.join(",") + "\n";
  });

  const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
  const url = URL.createObjectURL(blob);

  const a = document.createElement("a");
  a.href = url;
  a.download = "Search_Results.csv";
  a.click();
  URL.revokeObjectURL(url);
});&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 17 Feb 2026 19:09:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/print-popup-feature-menu-and-feature-tables/m-p/1684809#M88144</guid>
      <dc:creator>MatthewDriscoll</dc:creator>
      <dc:date>2026-02-17T19:09:18Z</dc:date>
    </item>
  </channel>
</rss>

