
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Fri, 03 Apr 2026 20:25:02 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Smart Placement speeds up applications by moving code close to your backend — no config needed]]></title>
            <link>https://blog.cloudflare.com/announcing-workers-smart-placement/</link>
            <pubDate>Tue, 16 May 2023 13:00:46 GMT</pubDate>
            <description><![CDATA[ Smart Placement automatically places your workloads in an optimal location that minimizes latency and speeds up your applications! ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/68NfZl5AwLPrk573wmR7Id/e605ccc58d1612b69beef233229ae79f/image2-14.png" />
            
            </figure><p>We’ve all experienced the frustrations of slow loading websites, or an app that seems to stall when it needs to call an API for an update. Anything less than instant and your mind wanders to something else...</p><p>One way to make things fast is to bring resources as close to the user as possible — this is what Cloudflare has been doing with compute by running within milliseconds of most of the world’s population. But, counterintuitive as it may seem, sometimes bringing compute closer to the user can actually slow applications down. If your application needs to connect to APIs, databases or other resources that aren’t located near the end user then it can be more performant to run the application near the resources instead of the user.</p><p>So today we’re excited to announce Smart Placement for Workers and Pages Functions, making every interaction as fast as possible. With Smart Placement, Cloudflare is taking serverless computing to the Supercloud by moving compute resources to optimal locations in order to speed up applications. The best part – it’s completely automatic, without any extra input (like the dreaded “region”) needed.</p><p>Smart Placement is available now, in open beta, to all Workers and Pages customers!</p><p><a href="https://smart-placement-demo.pages.dev/">Check out our demo on how Smart Placement works!</a></p><p></p>
    <div>
      <h2>The serverless shift</h2>
      <a href="#the-serverless-shift">
        
      </a>
    </div>
    <p>Cloudflare’s anycast network is built to process requests <i>instantly and close to the user</i>. As a developer, that’s what makes Cloudflare Workers, our serverless compute offering so compelling. Competitors are bounded by “regions” while Workers run everywhere — hence we have one region: Earth. Requests handled entirely by Workers can be processed right then and there, without ever having to hit an origin server.</p><p>While this concept of serverless was originally considered to be for lightweight tasks, serverless computing has been seeing a shift in recent years. It’s being used to replace traditional architecture, which relies on origin servers and self-managed infrastructure, instead of simply augmenting it. We’re seeing more and more of these use cases with Workers and Pages users.</p>
    <div>
      <h3>Serverless needs state</h3>
      <a href="#serverless-needs-state">
        
      </a>
    </div>
    <p>With the shift to going serverless and building entire applications on Workers comes a need for data. Storing information about previous actions or events lets you build personalized, interactive applications. Say you need to create user profiles, store which page a user left off at, which SKUs a user has in their cart – all of these are mapped to data points used to maintain state. Backend services like relational databases, key-value stores, blob storage, and APIs all let you build stateful applications.</p>
    <div>
      <h3>Cloudflare compute + storage: a powerful duo</h3>
      <a href="#cloudflare-compute-storage-a-powerful-duo">
        
      </a>
    </div>
    <p>We have our own growing suite of storage offerings: Workers KV, Durable Objects, D1, <a href="https://www.cloudflare.com/developer-platform/r2/">R2</a>. As we’re maturing our data products, we think deeply about their interactions with Workers so that you don’t have to! For example, another approach that has better performance in some cases is moving storage, rather than compute close to users. If you’re using Durable Objects to create a real-time game we could move the Durable Objects to minimize latency for all users.</p><p>Our goal for the future state is that you set mode = "smart"and we evaluate the optimal placement of all your resources with no additional configuration needed.</p>
    <div>
      <h3>Cloudflare compute + ${backendService}</h3>
      <a href="#cloudflare-compute-backendservice">
        
      </a>
    </div>
    <p>Today, the primary use case for Smart Placement is when you’re using non-Cloudflare services like external databases or third party APIs for your applications.</p><p>Many backend services, whether they’re self-hosted or managed services, are centralized, meaning that data is stored and managed in a single location. Your users are global and Workers are global, but your backend is centralized.</p><p>If your code makes multiple requests to your backend services they could be crossing the globe multiple times, having a big hit on performance. Some services offer data replication and caching which help to improve performance, but also come with trade-offs like data consistency and higher costs that should be weighed against your use case.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6Xh0tIBnMeZp7z1mDeonqd/2d55124ff2c831d964eb36a98852a968/map.png" />
            
            </figure><p>The Cloudflare network is <a href="https://www.cloudflare.com/network/">~50ms from 95% of the world’s connected population</a>. Turning this on its head, we're also very close to your backend services.</p>
    <div>
      <h2>Application performance is user experience</h2>
      <a href="#application-performance-is-user-experience">
        
      </a>
    </div>
    <p>Let’s understand how moving compute close to your backend services could decrease application latency by walking through an example:</p><p>Say you have a user in Sydney, Australia who’s accessing an application running on Workers. This application makes three round trips to a database located in Frankfurt, Germany in order to serve the user’s request.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4EGjgjjCqADFBQGq5OXVFC/cfd95273a6e9a7afbe09ab27e3c90104/download--1--6.png" />
            
            </figure><p>Intuitively, you can guess that the bottleneck is going to be the time that it takes the Worker to perform multiple round trips to your database. Instead of the Worker being invoked close to the user, what if it was invoked in a data center closest to the database instead?</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4D4IOJIAlHuGYce5DqjGky/09d291252b813c1981cac9ef19cb1fd7/wAAAABJRU5ErkJggg__" />
            
            </figure><p>Let’s put this to the test.</p><p>We measured the request duration for a Worker without Smart Placement and compared it to one with Smart Placement enabled. For both tests, we sent 3,500 requests from Sydney to a Worker which does three round trips to an <a href="https://upstash.com/">Upstash</a> instance (free-tier) located in eu-central-1 (Frankfurt).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/54nvh0FI2RcDh1gQ9ea4Tq/6a0ca6a7ea678cd965c79b25d7b90874/image3-7.png" />
            
            </figure><p>The results are clear! In this example, moving the Worker close to the backend <b>improved</b> <b>application performance by 4-8x</b>.</p>
    <div>
      <h2>Network decisions shouldn’t be human decisions</h2>
      <a href="#network-decisions-shouldnt-be-human-decisions">
        
      </a>
    </div>
    <p>As a developer, you should focus on what you do best – building applications – without needing to worry about the network decisions that will make your application faster.</p><p>Cloudflare has a unique vantage point: our network gathers intelligence around the optimal paths between users, Cloudflare data centers and back-end servers – we have lots of experience in this area with <a href="/argo/">Argo Smart Routing</a>. Smart Placement takes these factors into consideration to automatically place your Worker in the best spot to minimize overall request duration.</p><p>So, how does Smart Placement work?</p><p>Smart Placement can be enabled on a per-Worker basis under the “Settings” tab or in your wrangler.toml file:</p>
            <pre><code>[placement]
mode = "smart"</code></pre>
            <p>Once you enable Smart Placement on your Worker or Pages Function, the Smart Placement algorithm analyzes fetch requests (also known as subrequests) that your Worker is making in real time. It then compares these to latency data aggregated by our network. If we detect that on average your Worker makes more than one subrequest to a back-end resource, then your Worker will automatically get invoked from the optimal data center!</p><p>There are some back-end services that, for good reason, are not considered by the Smart Placement algorithm:</p><ul><li><p>Globally distributed services: If the services that your Worker communicates with are geo-distributed in many regions, Smart Placement isn’t a good fit. We automatically rule these out of the Smart Placement optimization.</p></li><li><p>Analytics or logging services: Requests to analytics or logging services don’t need to be in the critical path of your application. <a href="https://developers.cloudflare.com/workers/runtime-apis/fetch-event/?ref=blog.cloudflare.com#waituntil"><code>waitUntil()</code></a> should be used so that the response back to users isn’t blocked when instrumenting your code. Since <code>waitUntil()</code> doesn’t impact the request duration from a user’s perspective, we automatically rule analytics/logging services out of the Smart Placement optimization.</p></li></ul><p>Refer to our <a href="https://developers.cloudflare.com/workers/platform/smart-placement/#supported-backends">documentation</a> for a list of services not considered by the Smart Placement algorithm.</p><p>Once Smart Placement kicks in, you’ll be able to see a new “Request Duration” tab on your Worker. We route 1% of requests without Smart Placement enabled so that you can see its impact on request duration.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2IicbhnuU143f8T6EJc9s4/2f24b79cc4b019123b1e7ed2df4cd02a/download-9.png" />
            
            </figure><p>And yes, it is really that easy!</p><p>Try out Smart Placement by checking out our <a href="https://smart-placement-demo.pages.dev/">demo</a> (it’s a lot of fun to play with!). To learn more, visit our <a href="https://developers.cloudflare.com/workers/platform/smart-placement/">developer documentation</a>.</p>
    <div>
      <h2>What’s next for Smart Placement?</h2>
      <a href="#whats-next-for-smart-placement">
        
      </a>
    </div>
    <p>We’re only getting started! We have lots of ideas on how we can improve Smart Placement:</p><ul><li><p>Support for calculating the optimal location when the application uses multiple back-ends</p></li><li><p>Fine-tuned placement (e.g. if your Worker uses multiple back-ends depending on the path. We calculate the optimal placement per path instead of per-Worker)</p></li><li><p>Support for TCP based connections</p></li></ul><p>We would like to hear from you! If you have feedback or feature requests, reach out through the <a href="https://discord.com/invite/cloudflaredev">Cloudflare Developer Discord</a>.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div> ]]></content:encoded>
            <category><![CDATA[Developer Week]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Serverless]]></category>
            <category><![CDATA[Database]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">7AkCd01DEJfXbjEGoK8Uzq</guid>
            <dc:creator>Michael Hart</dc:creator>
            <dc:creator>Serena Shah-Simpson</dc:creator>
            <dc:creator>Tanushree Sharma</dc:creator>
        </item>
        <item>
            <title><![CDATA[Query Cloudflare Radar and our docs using ChatGPT plugins]]></title>
            <link>https://blog.cloudflare.com/cloudflare-chatgpt-plugins/</link>
            <pubDate>Mon, 15 May 2023 13:00:32 GMT</pubDate>
            <description><![CDATA[ We’re excited to share two new Cloudflare ChatGPT plugins – the Cloudflare Radar plugin and the Cloudflare Docs plugin ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/13OKMGwTZyyLLic6XwPfQd/4a942e67cba851aae4420f25a17f94ad/image7-6.png" />
            
            </figure><p>When OpenAI launched ChatGPT plugins in alpha we knew that it opened the door for new possibilities for both Cloudflare users and developers building on Cloudflare. After the launch, our team quickly went to work seeing what we could build, and today we’re very excited to share with you two new Cloudflare ChatGPT plugins – the Cloudflare Radar plugin and the Cloudflare Docs plugin.</p><p>The Cloudflare Radar plugin allows you to talk to ChatGPT about real-time Internet patterns powered by <a href="https://radar.cloudflare.com/">Cloudflare Radar</a>.</p><p>The Cloudflare Docs plugin allows developers to use ChatGPT to help them write and build Cloudflare applications with the most up-to-date information from our documentation. It also serves as an open source example of how to build a ChatGPT plugin with Cloudflare Workers.</p><p>Let’s do a deeper dive into how each of these plugins work and how we built them.</p>
    <div>
      <h3>Cloudflare Radar ChatGPT plugin</h3>
      <a href="#cloudflare-radar-chatgpt-plugin">
        
      </a>
    </div>
    <p>When ChatGPT introduced <a href="https://openai.com/blog/chatgpt-plugins">plugins</a>, one of their use cases was retrieving real-time data from third-party applications and their APIs and letting users ask relevant questions using natural language.</p><p><a href="https://radar.cloudflare.com/">Cloudflare Radar</a> has lots of data about how people use the Internet, a well-documented <a href="https://developers.cloudflare.com/radar/">public API</a>, an OpenAPI specification, and it’s entirely <a href="/technology-behind-radar2/">built on top of Workers</a>, which gives us lots of flexibility for improvements and extensibility. We had all the building blocks to create a ChatGPT plugin quickly. So, that's what we did.</p><p>We added an <a href="https://api.radar.cloudflare.com/.well-known/ai-plugin.json">OpenAI manifest endpoint</a> which describes what the plugin does, some branding assets, and an <a href="https://api.radar.cloudflare.com/.well-known/openai-schema.json">enriched OpenAPI schema</a> to tell ChatGPT how to use our data APIs. The longest part of our work was fine-tuning the schema with good descriptions (written in natural language, obviously) and examples of how to query our endpoints.</p><p>Amusingly, the descriptions ended up much improved by the need to explain the API endpoints to ChatGPT. An interesting side effect is that this benefits us humans also.</p>
            <pre><code>{
    "/api/v1/http/summary/ip_version": {
        "get": {
            "operationId": "get_SummaryIPVersion",
            "parameters": [
                {
                    "description": "Date range from today minus the number of days or weeks specified in this parameter, if not provided always send 14d in this parameter.",
                    "required": true,
                    "schema": {
                        "type": "string",
                        "example": "14d",
                        "enum": ["14d","1d","2d","7d","28d","12w","24w","52w"]
                    },
                    "name": "dateRange",
                    "in": "query"
                }
            ]
        }
    }</code></pre>
            <p>Luckily, <a href="https://github.com/cloudflare/itty-router-openapi">itty-router-openapi</a>, an easy and compact OpenAPI 3 schema generator and validator for Cloudflare Workers that we built and <a href="/technology-behind-radar2/">open-sourced</a> when we launched Radar 2.0, made it really easy for us to add the missing parts.</p>
            <pre><code>import { OpenAPIRouter } from '@cloudflare/itty-router-openapi'

const router = OpenAPIRouter({
  aiPlugin: {
    name_for_human: 'Cloudflare Radar API',
    name_for_model: 'cloudflare_radar',
    description_for_human: "Get data insights from Cloudflare's point of view.",
    description_for_model:
      "Plugin for retrieving the data based on Cloudflare Radar's data. Use it whenever a user asks something that might be related to Internet usage, eg. outages, Internet traffic, or Cloudflare Radar's data in particular.",
    contact_email: 'radar@cloudflare.com',
    legal_info_url: 'https://www.cloudflare.com/website-terms/',
    logo_url: 'https://cdn-icons-png.flaticon.com/512/5969/5969044.png',
  },
})</code></pre>
            <p>We incorporated our changes into itty-router-openapi, and now it <a href="https://github.com/cloudflare/itty-router-openapi#aiplugin">supports</a> the OpenAI manifest and route, and a few other <a href="https://github.com/cloudflare/itty-router-openapi#openai-plugin-support">options</a> that make it possible for anyone to build their own ChatGPT plugin on top of Workers too.</p><p>The Cloudflare Radar ChatGPT is available to non-free ChatGPT users or anyone on OpenAI’s plugin's <a href="https://openai.com/waitlist/plugins">waitlist</a>. To use it, simply open <a href="https://chat.openai.com/">ChatGPT</a>, go to the Plugin store and install Cloudflare Radar.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3R2uxXouXE7NMwAXwzwuLS/4cf0e59cbe09e0f429a06d74e141a206/image6-6.png" />
            
            </figure><p>Once installed, you can talk to it and ask questions about our data using natural language.</p><p>When you add plugins to your account, ChatGPT will prioritize using their data based on what the language model understands from the human-readable descriptions found in the manifest and Open API schema. If ChatGPT doesn't think your prompt can benefit from what the plugin provides, then it falls back to its standard capabilities.</p><p>Another interesting thing about plugins is that they extend ChatGPT's limited knowledge of the world and events after 2021 and can provide fresh insights based on recent data.</p><p>Here are a few examples to get you started:</p><p><b>"What is the percentage distribution of traffic per TLS protocol version?"</b></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1emtbmUbCUo2RhILUplHft/3789e6672bd172c5d6e3d17ce56f283c/download--5--3.png" />
            
            </figure><p><b>"What's the HTTP protocol version distribution in Portugal?"</b></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2ADYGYFmtoTb1MUa3YVdzP/5fb35fa683292e30c87a5bbcaa772a2e/download-8.png" />
            
            </figure><p>Now that ChatGPT has context, you can add some variants, like switching the country and the date range.</p><p><b>“How about the US in the last six months?”</b></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3RKxEE4nzqd5cBMOUfVBlH/14812d97f2fc04aa118bcd401275957d/download--1--5.png" />
            
            </figure><p>You can also combine multiple topics (ChatGPT will make multiple API calls behind the scenes and combine the results in the best possible way).</p><p><b>“How do HTTP protocol versions compare with TLS protocol versions?”</b></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5kwMCXTMv3vQHmqdpFft2E/f0a525b78399b761a80d4aba84bb6096/download--2--4.png" />
            
            </figure><p>Out of ideas? Ask it “<b>What can I ask the Radar plugin?</b>”, or “<b>Give me a random insight</b>”.</p><p>Be creative, too; it understands a lot about our data, and we keep improving it. You can also add date or country filters using natural language in your prompts.</p>
    <div>
      <h3>Cloudflare Docs ChatGPT plugin</h3>
      <a href="#cloudflare-docs-chatgpt-plugin">
        
      </a>
    </div>
    <p>The Cloudflare Docs plugin is a <a href="https://openai.com/blog/chatgpt-plugins#retrieval">ChatGPT Retrieval Plugin</a> that lets you access the most up-to-date knowledge from our developer documentation using ChatGPT. This means if you’re using ChatGPT to assist you with building on Cloudflare that the answers you’re getting or code that’s being generated will be informed by current best practices and information located within our docs. You can set up and run the Cloudflare Docs ChatGPT Plugin by following the read me in <a href="https://github.com/cloudflare/chatgpt-plugin/tree/main/example-retrieval-plugin">the example repo</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/HTxO668NzSVaOOZ525ZtE/976dd480de0d58039a57f98ae2accb09/image1-20.png" />
            
            </figure><p>The plugin was built entirely on Workers and uses <a href="https://developers.cloudflare.com/workers/learning/how-kv-works/">KV</a> as a vector store. It can also keep its index up-to-date using <a href="https://developers.cloudflare.com/workers/platform/triggers/cron-triggers/">Cron Triggers</a>, <a href="https://developers.cloudflare.com/queues/">Queues</a> and <a href="https://developers.cloudflare.com/workers/runtime-apis/durable-objects/">Durable Objects</a>.</p><p>The plugin is a Worker that responds to POST requests from ChatGPT to a <code>/query</code> endpoint. When a query comes in, the Worker converts the query text into an <a href="https://platform.openai.com/docs/guides/embeddings">embedding vector via the OpenAI embeddings API</a> and uses this to find, and return, the most relevant document snippets from Cloudflare’s developer documentation.</p><p>The way this is achieved is by first converting every document in Cloudflare’s developer documentation on GitHub into embedding vectors (again using OpenAI’s API) and storing them in KV. This storage format allows you to find semantically similar content by doing a <a href="https://en.wikipedia.org/wiki/Similarity_search">similarity search</a> (we use <a href="https://en.wikipedia.org/wiki/Cosine_similarity">cosine similarity</a>), where two pieces of text that are similar in meaning will result in the two embedding vectors having a high similarity score. Cloudflare’s entire developer documentation compresses to under 5MB when converted to embedding vectors, so fetching these from KV is very quick. We’ve also explored building larger vector stores on Workers, as can be seen in <a href="https://ai.cloudflare.com/demos/vector-store/">this demo of 1 million vectors stored on Durable Object storage</a>. We’ll be releasing more open source libraries to support these vector store use cases in the near future.</p><p>So ChatGPT will query the plugin when it believes the user’s question is related to Cloudflare’s developer tools, and the plugin will return a list of up-to-date information snippets directly from our documentation. ChatGPT can then decide how to use these snippets to best answer the user’s question.</p><p>The plugin also includes a “Scheduler” Worker that can periodically refresh the documentation embedding vectors, so that the information is always up-to-date. This is advantageous because ChatGPT’s own knowledge has a cutoff of September 2021 – so it’s not aware of changes in documentation, or new Cloudflare products.</p><p>The Scheduler Worker is triggered by a <a href="https://developers.cloudflare.com/workers/platform/triggers/cron-triggers/">Cron Trigger</a>, on a schedule you can set (eg, hourly), where it will check which content has changed since it last ran via GitHub’s API. It then sends these document paths in messages to a <a href="https://developers.cloudflare.com/queues/">Queue</a> to be processed. Workers will batch process these messages – for each message, the content is fetched from GitHub, and then turned into embedding vectors via OpenAI’s API. A <a href="https://developers.cloudflare.com/workers/runtime-apis/durable-objects/">Durable Object</a> is used to coordinate all the Queue processing so that when all the batches have finished processing, the resulting embedding vectors can be combined and stored in KV, ready for querying by the plugin.</p><p>This is a great example of how Workers can be used not only for front-facing HTTP APIs, but also for scheduled batch-processing use cases.</p>
    <div>
      <h3>Let us know what you think</h3>
      <a href="#let-us-know-what-you-think">
        
      </a>
    </div>
    <p>We are in a time when technology is constantly changing and evolving, so as you experiment with these new plugins please let us know what you think. What do you like? What could be better? Since ChatGPT plugins are in alpha, changes to the plugins user interface or performance (i.e. latency) may occur. If you build your own plugin, we’d love to see it and if it’s open source you can submit a pull request on our <a href="https://github.com/cloudflare/chatgpt-plugin">example repo</a>. You can always find us hanging out in our <a href="http://discord.cloudflare.com/">developer discord</a>.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div> ]]></content:encoded>
            <category><![CDATA[Developer Week]]></category>
            <category><![CDATA[ChatGPT]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[OpenAI]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">1V5D6mOrE8HfIU7fkANorJ</guid>
            <dc:creator>Ricky Robinett</dc:creator>
            <dc:creator>Celso Martinho</dc:creator>
            <dc:creator>Michael Hart</dc:creator>
        </item>
    </channel>
</rss>