<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3711788188331634785</id><updated>2026-07-01T03:32:04.358-07:00</updated><category term="PHP"/><category term="linux"/><category term="javascript"/><category term="Database"/><category term="CAKE PHP"/><category term="Web"/><category term="General"/><category term="Nginx"/><category term="Postgresql"/><category term="Tutorial"/><category term="kubuntu"/><category term="AI"/><category term="Apache"/><category term="Concepts"/><category term="Mysql"/><category term="Next Generation Web"/><category term="Python"/><category term="R Language"/><category term="Statistical Analysis"/><category term="debugging"/><category term="BI"/><category term="BIRT"/><category term="CSS"/><category term="Cron"/><category term="Firebug"/><category term="JQuery"/><category term="Java Brdige"/><category term="LLM"/><category term="Megam"/><category term="Mongodb"/><category term="Ollama"/><category term="Rapache"/><category term="SQL"/><category term="SSL"/><category term="SVN"/><category term="Search Engine"/><category term="Self-hosted"/><category term="Solr"/><category term="UI technologies"/><category term="Version Control"/><category term="Windows Server"/><category term="Wordpress"/><category term="netbeans"/><category term="php framework"/><category term="ACID"/><category term="Administration"/><category term="Analytics"/><category term="Animations"/><category term="Attachment"/><category term="Augmented"/><category term="Automation"/><category term="Browser"/><category term="C"/><category term="CSS 3"/><category term="CSS3"/><category term="Chrome apps"/><category term="CloudFlare"/><category term="Configuration"/><category term="DB"/><category term="Datalytics"/><category term="Denial Management"/><category term="Design patterns"/><category term="Embedded Analytics"/><category term="Fail2Ban"/><category term="Fix"/><category term="HTML 5"/><category term="Hadoop"/><category term="Healthcare"/><category term="Image upload error"/><category term="Infrastructure"/><category term="Installation"/><category term="Internals"/><category term="Interview"/><category term="JAVA"/><category term="JWT"/><category term="Jboss"/><category term="Jenkins"/><category term="Kernal"/><category term="LiveKit"/><category term="MCP"/><category term="Mail Server"/><category term="MeBot"/><category term="Mercury"/><category term="Mouse Gestures"/><category term="NPHIES"/><category term="OOPs"/><category term="OS"/><category term="Olivasal"/><category term="OpenCart"/><category term="Oracle"/><category term="OutLook"/><category term="Performance"/><category term="Playwright"/><category term="RCM"/><category term="REST"/><category term="RPA"/><category term="Reference Manuals"/><category term="Reporting"/><category term="Ruby on Rails"/><category term="Security"/><category term="Services"/><category term="Sixth sense"/><category term="Speedup"/><category term="Technology"/><category term="VBA"/><category term="Web Components"/><category term="Web apps"/><category term="Whisper"/><category term="Windows"/><category term="Wired Tiger"/><category term="X12"/><category term="Xampp"/><category term="Zend frame work"/><category term="hacking"/><category term="html"/><category term="mongo 3.0"/><category term="open source"/><category term="skype"/><category term="subversion"/><category term="sysadmin"/><title type='text'>Spreading Knol</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-3319456975398772548</id><published>2026-07-01T01:54:43.484-07:00</published><updated>2026-07-01T01:54:43.484-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="MCP"/><category scheme="http://www.blogger.com/atom/ns#" term="MeBot"/><category scheme="http://www.blogger.com/atom/ns#" term="Playwright"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="RPA"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>Give Your LLM Hands: Turn Browser Automation Into MCP Tools</title><content type='html'>&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;

&lt;p&gt;LLMs are brilliant at deciding &lt;em&gt;what&lt;/em&gt; to do and useless at actually &lt;em&gt;doing&lt;/em&gt; it. Automation tools are the opposite — they execute flawlessly but can&#39;t reason about anything. The obvious move is to bolt the two together: let the model plan, and let deterministic automation carry out each step. The question is how you connect them cleanly.&lt;/p&gt;

&lt;p&gt;The answer that&#39;s become a standard is &lt;strong&gt;MCP — the Model Context Protocol&lt;/strong&gt;. It&#39;s a common language for exposing &quot;tools&quot; to a model. Wrap your automation actions as MCP tools, point a reasoning model at them, and the model can drive real software. This is the exact pattern under &lt;strong&gt;MeBot&lt;/strong&gt;&#39;s agentic RPA. Let&#39;s build a small version of it.&lt;/p&gt;

&lt;h2&gt;Step 1 — Install the pieces&lt;/h2&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;pip install &quot;mcp[cli]&quot; playwright
playwright install chromium&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 2 — Stand up an MCP server&lt;/h2&gt;
&lt;p&gt;FastMCP (bundled with the MCP SDK) turns plain Python functions into tools. Any function you decorate becomes something a model can call — the docstring and type hints &lt;em&gt;are&lt;/em&gt; the tool&#39;s description, so the model knows when to use it.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;from mcp.server.fastmcp import FastMCP
from playwright.sync_api import sync_playwright

mcp = FastMCP(&quot;mebot-browser&quot;)

_pw = sync_playwright().start()
browser = _pw.chromium.launch(headless=False)
page = browser.new_page()&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 3 — Expose automation actions as tools&lt;/h2&gt;
&lt;p&gt;Here&#39;s the key design decision: the tools themselves stay &lt;strong&gt;strictly deterministic&lt;/strong&gt;. Each one does exactly one concrete thing — no cleverness, no improvising. You never want an LLM &quot;creatively interpreting&quot; a click on a banking screen. The intelligence lives in the model&#39;s choice of &lt;em&gt;which&lt;/em&gt; tool to call; the execution is boringly reliable.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;@mcp.tool()
def open_url(url: str) -&amp;gt; str:
    &quot;&quot;&quot;Navigate the browser to a URL.&quot;&quot;&quot;
    page.goto(url)
    return f&quot;Opened {url}&quot;

@mcp.tool()
def click(text: str) -&amp;gt; str:
    &quot;&quot;&quot;Click the visible element matching the given text.&quot;&quot;&quot;
    page.get_by_text(text, exact=False).first.click()
    return f&quot;Clicked &#39;{text}&#39;&quot;

@mcp.tool()
def type_text(label: str, value: str) -&amp;gt; str:
    &quot;&quot;&quot;Type text into the field with the given label.&quot;&quot;&quot;
    page.get_by_label(label).fill(value)
    return f&quot;Typed into &#39;{label}&#39;&quot;

@mcp.tool()
def read_screen() -&amp;gt; str:
    &quot;&quot;&quot;Return the visible text on the current page.&quot;&quot;&quot;
    return page.inner_text(&quot;body&quot;)

if __name__ == &quot;__main__&quot;:
    mcp.run()&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 4 — Let a reasoning model drive&lt;/h2&gt;
&lt;p&gt;Now connect a model as an MCP &lt;em&gt;client&lt;/em&gt;. It requests the tool list, then works toward a goal by calling tools and reading results — a loop of &lt;strong&gt;observe → decide → act&lt;/strong&gt;. Give it an objective like:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;Goal: &quot;Log into the portal and download this month&#39;s invoice.&quot;

The model plans and calls tools in sequence:
  open_url(&quot;https://portal.example.com&quot;)
  read_screen()                      -&amp;gt; sees a login form
  type_text(&quot;Username&quot;, &quot;...&quot;)
  type_text(&quot;Password&quot;, &quot;...&quot;)
  click(&quot;Sign in&quot;)
  read_screen()                      -&amp;gt; sees the dashboard
  click(&quot;Invoices&quot;)
  ...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Crucially, the model &lt;em&gt;reads the screen between steps&lt;/em&gt;. When a button moves or a field is renamed, it adapts — because it&#39;s reasoning about what&#39;s actually there, not replaying recorded coordinates. That&#39;s the difference between a bot that breaks on the first UI change and one that copes.&lt;/p&gt;

&lt;h2&gt;Step 5 — Guardrails&lt;/h2&gt;
&lt;p&gt;Autonomy without brakes is a liability, so real deployments add two things: &lt;strong&gt;an approvals gate&lt;/strong&gt; for irreversible or high-risk actions (payments, deletions, submissions) that pauses for a human, and &lt;strong&gt;vision&lt;/strong&gt; — OCR and UI detection — for legacy screens where there&#39;s no clean text or label to target. Together they make the agent safe to point at production systems, including the old Windows apps that classic RPA struggles with most.&lt;/p&gt;

&lt;h2&gt;Deterministic execution, reasoning on top&lt;/h2&gt;
&lt;p&gt;That&#39;s the whole philosophy in one line: &lt;strong&gt;keep the doing precise, put the thinking in a layer above it.&lt;/strong&gt; Wrapping actions as MCP tools is what lets a model orchestrate real work without you hard-coding every branch — and it&#39;s exactly how MeBot turns brittle scripts into automation that adapts.&lt;/p&gt;

&lt;p&gt;If you&#39;d rather deploy this than assemble it — with the vision layer, approvals inbox, and legacy-app support already built — that&#39;s what we ship → &lt;a href=&quot;https://takemebot.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;takemebot.com&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/3319456975398772548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2026/07/give-your-llm-hands-turn-browser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/3319456975398772548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/3319456975398772548'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2026/07/give-your-llm-hands-turn-browser.html' title='Give Your LLM Hands: Turn Browser Automation Into MCP Tools'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-8364518717533407532</id><published>2026-07-01T01:53:12.323-07:00</published><updated>2026-07-01T01:53:12.323-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="BI"/><category scheme="http://www.blogger.com/atom/ns#" term="Datalytics"/><category scheme="http://www.blogger.com/atom/ns#" term="Embedded Analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="JWT"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Components"/><title type='text'>Embed Analytics Into Your Product in an Afternoon (Without Building a BI Team)</title><content type='html'>&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;

&lt;p&gt;Sooner or later, every SaaS product hears the same request from customers: &quot;Can we get reporting on our own data, inside the app?&quot; And every engineering team gives the same sigh, because building analytics from scratch — a query layer, a charting engine, per-tenant security, a dashboard builder — is months of work that has nothing to do with your actual product.&lt;/p&gt;

&lt;p&gt;That&#39;s the whole reason &lt;strong&gt;Datalytics&lt;/strong&gt; ships as an embeddable SDK. Instead of building BI, you drop a component into your app and pass it a secure token. Here&#39;s the full integration, end to end.&lt;/p&gt;

&lt;h2&gt;Step 1 — Drop in the component&lt;/h2&gt;
&lt;p&gt;Datalytics dashboards are web components (built on Angular Elements), which means they run in &lt;em&gt;any&lt;/em&gt; frontend — React, Vue, Angular, or plain HTML. Add the script and place the element:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.getdatalytics.com/embed.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;datalytics-dashboard
    dashboard-id=&quot;sales-overview&quot;
    theme=&quot;light&quot;&amp;gt;
&amp;lt;/datalytics-dashboard&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;At this point the component exists but shows nothing — because it doesn&#39;t yet know &lt;em&gt;who&#39;s asking&lt;/em&gt; or &lt;em&gt;what they&#39;re allowed to see&lt;/em&gt;. That&#39;s the important part.&lt;/p&gt;

&lt;h2&gt;Step 2 — Mint a signed token on your backend&lt;/h2&gt;
&lt;p&gt;Embedded analytics lives or dies on security: customer A must never see customer B&#39;s data. The clean way to enforce this is a &lt;strong&gt;two-token handshake&lt;/strong&gt;. Token one is an identity assertion your own backend signs — you already know who the logged-in user is and which tenant they belong to, so you vouch for them.&lt;/p&gt;
&lt;p&gt;Your server signs a short-lived &lt;strong&gt;RS256 JWT&lt;/strong&gt; with your private key. Datalytics verifies it with your public key — so the browser never holds any long-lived secret:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;// Node / NestJS backend
import jwt from &#39;jsonwebtoken&#39;;

function mintDatalyticsToken(user) {
  return jwt.sign(
    {
      sub: user.id,
      tenant: user.tenantId,          // scopes all queries to this tenant
      scope: [&#39;dashboard:sales-overview&#39;],
    },
    PRIVATE_KEY,                       // your RSA private key
    {
      algorithm: &#39;RS256&#39;,
      expiresIn: &#39;10m&#39;,                // short-lived on purpose
      audience: &#39;datalytics&#39;,
      issuer: &#39;your-app&#39;,
    },
  );
}&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 3 — The two-token exchange&lt;/h2&gt;
&lt;p&gt;Your frontend fetches that identity token and hands it to the component. Datalytics verifies the signature, reads the tenant and scope, and exchanges it for its own short-lived &lt;strong&gt;session token&lt;/strong&gt; that governs the live dashboard connection. Two tokens, two jobs: yours proves identity, theirs runs the session.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;const el = document.querySelector(&#39;datalytics-dashboard&#39;);

// fetch the signed identity token from YOUR backend
const res = await fetch(&#39;/api/analytics-token&#39;);
const { token } = await res.json();

// hand it over — the component does the exchange internally
el.token = token;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The dashboard renders, and every query it runs is automatically filtered to that tenant. Row-level security is enforced by the signed &lt;code&gt;tenant&lt;/code&gt; claim — not by anything editable in the browser.&lt;/p&gt;

&lt;h2&gt;Step 4 — Make it look like your app&lt;/h2&gt;
&lt;p&gt;An embedded dashboard should feel native, not bolted-on. Theme it with CSS custom properties so it inherits your product&#39;s look:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;datalytics-dashboard {
  --dl-accent: #0e9384;
  --dl-font: &#39;Inter&#39;, sans-serif;
  --dl-radius: 10px;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;What you just avoided&lt;/h2&gt;
&lt;p&gt;No query engine, no charting library, no dashboard builder, no per-tenant security model — and no BI team to maintain any of it. Your users get live, self-serve analytics inside your product; you shipped it in an afternoon and moved on with your roadmap.&lt;/p&gt;

&lt;p&gt;If you&#39;ve been putting off &quot;in-app reporting&quot; because building it is a project of its own, this is the shortcut → &lt;a href=&quot;https://getdatalytics.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;getdatalytics.com&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/8364518717533407532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2026/07/embed-analytics-into-your-product-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8364518717533407532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8364518717533407532'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2026/07/embed-analytics-into-your-product-in.html' title='Embed Analytics Into Your Product in an Afternoon (Without Building a BI Team)'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-1390151242615955768</id><published>2026-07-01T01:49:55.028-07:00</published><updated>2026-07-01T01:49:55.028-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Infrastructure"/><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="Megam"/><category scheme="http://www.blogger.com/atom/ns#" term="Ollama"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Self-hosted"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>How We Run Our Own LLMs on Our Own Hardware (and Why We Don&#39;t Just Call the Big APIs)</title><content type='html'>&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;
&lt;p&gt;When you need an LLM, the default move in 2026 is to grab an API key from one of the big providers and start calling. For a lot of what we build at Megam, that&#39;s the wrong default. Our automation reads client back-office data. Our telehealth platform touches patient records. Our conferencing tool handles private calls. None of that can be shipped off to someone else&#39;s cloud — and honestly, even where it &lt;em&gt;could&lt;/em&gt;, the economics and the loss of control often don&#39;t make sense.&lt;/p&gt;

&lt;p&gt;So we run our own inference. Here&#39;s how we stand it up, and where the line actually falls between self-hosting and calling an API.&lt;/p&gt;

&lt;h2&gt;Why self-host at all&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Data residency &amp;amp; privacy.&lt;/strong&gt; The data never leaves infrastructure we control. For regulated clients — healthcare, finance, GCC data-residency rules — this isn&#39;t a preference, it&#39;s the requirement.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cost at volume.&lt;/strong&gt; Per-token pricing is cheap for a demo and brutal at scale. A fixed box you&#39;ve already paid for doesn&#39;t meter you by the request.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Control.&lt;/strong&gt; The model doesn&#39;t change under you overnight, doesn&#39;t deprecate, doesn&#39;t rate-limit you mid-batch. You pin the version and it stays put.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Offline capability.&lt;/strong&gt; Air-gapped and on-prem deployments simply can&#39;t reach a public API. Local is the only option.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Step 1 — Pick the box, size the model to the VRAM&lt;/h2&gt;
&lt;p&gt;The single constraint that matters is GPU memory. Rough working guide, using 4-bit quantized models:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;~7-8B  model  -&gt;  ~6 GB VRAM   (fits almost anything)
~14B   model  -&gt;  ~10-12 GB
~27-32B model  -&gt;  ~20-24 GB    (a 32 GB card handles this comfortably)
~70B   model  -&gt;  ~40 GB+       (big card or multi-GPU)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A modern 24-32&amp;nbsp;GB card covers the vast majority of real workloads. You don&#39;t need frontier-scale hardware to get genuinely useful results.&lt;/p&gt;

&lt;h2&gt;Step 2 — Install Ollama and pull your models&lt;/h2&gt;
&lt;p&gt;Ollama is the simplest way to serve open models. One server can host several — chat, vision, and embeddings — and load them on demand.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;# Linux install
curl -fsSL https://ollama.com/install.sh | sh

# Pull a few models for different jobs
ollama pull qwen2.5          # general chat / reasoning
ollama pull qwen2.5vl        # vision (images, screenshots, documents)
ollama pull nomic-embed-text # embeddings for RAG / search&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 3 — Serve it on the network with an OpenAI-compatible API&lt;/h2&gt;
&lt;p&gt;By default Ollama listens only on localhost. To let your apps reach it, bind it to all interfaces:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;# Expose Ollama on the LAN
export OLLAMA_HOST=0.0.0.0:11434
ollama serve&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Ollama has no built-in authentication, so never expose port 11434 to the open internet directly. Put Nginx in front of it for TLS and an API key, so only your apps get through:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;server {
    listen 443 ssl http2;
    server_name ai.yourdomain.com;

    # ssl_certificate ... ssl_certificate_key ...;

    location /v1/ {
        # simple shared-secret gate
        if ($http_authorization != &quot;Bearer YOUR_SECRET_KEY&quot;) {
            return 401;
        }
        proxy_pass http://127.0.0.1:11434;
        proxy_set_header Host $host;
        proxy_read_timeout 300s;   # long generations
    }
}&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 4 — Call it from any app (it&#39;s just the OpenAI SDK)&lt;/h2&gt;
&lt;p&gt;Because Ollama speaks the OpenAI API format, your application code doesn&#39;t care that it&#39;s talking to your own box. You change the &lt;code&gt;base_url&lt;/code&gt; and nothing else. Migrating from a public API — or back — is a one-line change.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;from openai import OpenAI

client = OpenAI(
    base_url=&quot;https://ai.yourdomain.com/v1&quot;,
    api_key=&quot;YOUR_SECRET_KEY&quot;,
)

resp = client.chat.completions.create(
    model=&quot;qwen2.5&quot;,
    messages=[{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Summarize this ticket in one line: ...&quot;}],
)
print(resp.choices[0].message.content)&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 5 — One server, many jobs&lt;/h2&gt;
&lt;p&gt;The same endpoint routes different tasks to different models — send chat to &lt;code&gt;qwen2.5&lt;/code&gt;, screenshots and documents to &lt;code&gt;qwen2.5vl&lt;/code&gt;, and use &lt;code&gt;nomic-embed-text&lt;/code&gt; to build the vectors behind a RAG search. Ollama swaps models in and out of VRAM as calls come in, so a single machine covers a surprising amount of ground.&lt;/p&gt;

&lt;h2&gt;Where this powers our products&lt;/h2&gt;
&lt;p&gt;This isn&#39;t a lab experiment — it&#39;s the shared engine under everything we ship. The reasoning layer in &lt;strong&gt;MeBot&lt;/strong&gt; (our agentic RPA) calls it to decide next actions. &lt;strong&gt;Datalytics&lt;/strong&gt; uses it for natural-language analytics. &lt;strong&gt;Olivasal&lt;/strong&gt; runs meeting summaries on it. &lt;strong&gt;Saffron&lt;/strong&gt;, our telehealth platform, runs clinical models on it. One on-prem inference tier, many products — and no client data ever leaves the building.&lt;/p&gt;

&lt;h2&gt;The honest tradeoffs&lt;/h2&gt;
&lt;p&gt;Self-hosting isn&#39;t free. You own the ops — uptime, drivers, model updates. Open models are excellent now but a very hardest reasoning task may still favour a frontier API. And you&#39;ll think about concurrency and batching that a managed API hides from you. Our rule of thumb: &lt;strong&gt;self-host anything touching sensitive data or running at volume; reach for a frontier API only for the rare task that genuinely needs it.&lt;/strong&gt; For most real work, your own hardware wins on cost, privacy, and control at the same time.&lt;/p&gt;

&lt;p&gt;If you need AI running inside your own walls — because your data can&#39;t leave, or the API bill doesn&#39;t scale — that&#39;s precisely what we build for clients → &lt;a href=&quot;https://megamtech.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;megamtech.com&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/1390151242615955768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2026/07/how-we-run-our-own-llms-on-our-own.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/1390151242615955768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/1390151242615955768'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2026/07/how-we-run-our-own-llms-on-our-own.html' title='How We Run Our Own LLMs on Our Own Hardware (and Why We Don&#39;t Just Call the Big APIs)'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-7451516122308738122</id><published>2026-07-01T01:45:15.037-07:00</published><updated>2026-07-01T01:45:15.037-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="LiveKit"/><category scheme="http://www.blogger.com/atom/ns#" term="Olivasal"/><category scheme="http://www.blogger.com/atom/ns#" term="Ollama"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Self-hosted"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="Whisper"/><title type='text'>Build a Self-Hosted Meeting-Summary Pipeline (No Cloud, No Data Leaving Your Box)</title><content type='html'>&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;

&lt;p&gt;Every AI notetaker on the market has the same catch: to summarize your meeting, it uploads your audio to &lt;em&gt;its&lt;/em&gt; cloud. For a regulated team — healthcare, finance, anyone under data-residency rules — that&#39;s a non-starter. Your private calls quietly become someone else&#39;s data.&lt;/p&gt;

&lt;p&gt;This is exactly why we built the summary engine inside &lt;strong&gt;Olivasal&lt;/strong&gt; to run entirely on infrastructure you control. In this post I&#39;ll show you the core of it: take a recorded meeting, produce a clean transcript, and generate a structured summary with action items — all on your own box, nothing leaving the network.&lt;/p&gt;

&lt;h2&gt;What you&#39;ll build&lt;/h2&gt;
&lt;p&gt;A three-stage pipeline: &lt;strong&gt;recording → transcript → AI summary&lt;/strong&gt;. Stage 1 uses your meeting recording (from LiveKit egress, or any file). Stage 2 transcribes with &lt;strong&gt;faster-whisper&lt;/strong&gt;. Stage 3 summarizes with a local &lt;strong&gt;Qwen&lt;/strong&gt; model served by Ollama. No external API is ever called.&lt;/p&gt;

&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;# System: ffmpeg for audio, plus Python 3.10+
# A GPU makes transcription much faster, but CPU works too

pip install faster-whisper openai

# Ollama for the local LLM (https://ollama.com)
ollama pull qwen2.5&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 1 — Get the audio&lt;/h2&gt;
&lt;p&gt;If you&#39;re running a conference stack, LiveKit&#39;s egress writes a recording when the call ends. Composite egress gives you one mixed file; per-track egress gives you one file per participant (we&#39;ll use that later for speaker labels). Either way, extract a clean 16&amp;nbsp;kHz mono WAV — the format Whisper likes best:&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;ffmpeg -i meeting.mp4 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Step 2 — Transcribe locally with faster-whisper&lt;/h2&gt;
&lt;p&gt;faster-whisper is a reimplementation of Whisper that&#39;s several times quicker and lighter on memory. The &lt;code&gt;vad_filter&lt;/code&gt; flag trims silence so you don&#39;t waste compute on dead air.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;from faster_whisper import WhisperModel

# use device=&quot;cpu&quot;, compute_type=&quot;int8&quot; if you have no GPU
model = WhisperModel(&quot;large-v3&quot;, device=&quot;cuda&quot;, compute_type=&quot;float16&quot;)

segments, info = model.transcribe(
    &quot;audio.wav&quot;,
    beam_size=5,
    vad_filter=True,
)

transcript = &quot; &quot;.join(seg.text.strip() for seg in segments)
print(f&quot;Detected language: {info.language}&quot;)
print(transcript)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s your full transcript, produced without a single byte leaving the machine.&lt;/p&gt;

&lt;h2&gt;Step 3 — Summarize with a local LLM&lt;/h2&gt;
&lt;p&gt;Ollama exposes an OpenAI-compatible endpoint, so you can use the standard &lt;code&gt;openai&lt;/code&gt; client and just point it at localhost. We ask for structured JSON so the output is easy to store and render.&lt;/p&gt;
&lt;pre style=&quot;background:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;padding:12px;overflow:auto;&quot;&gt;&lt;code&gt;from openai import OpenAI
import json

# api_key is required by the client but ignored by Ollama
client = OpenAI(base_url=&quot;http://localhost:11434/v1&quot;, api_key=&quot;ollama&quot;)

prompt = f&quot;&quot;&quot;You are a meeting assistant. From the transcript below, return JSON with:
- &quot;summary&quot;: a 3-sentence overview
- &quot;decisions&quot;: a list of key decisions made
- &quot;action_items&quot;: a list of objects with &quot;task&quot; and &quot;owner&quot;

Transcript:
{transcript}&quot;&quot;&quot;

resp = client.chat.completions.create(
    model=&quot;qwen2.5&quot;,
    messages=[{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: prompt}],
    response_format={&quot;type&quot;: &quot;json_object&quot;},
    temperature=0.2,
)

notes = json.loads(resp.choices[0].message.content)
print(json.dumps(notes, indent=2))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You now have clean, structured meeting notes — summary, decisions, and owner-tagged action items — generated entirely on your own hardware.&lt;/p&gt;

&lt;h2&gt;Step 4 — Add speaker labels (optional)&lt;/h2&gt;
&lt;p&gt;This is where per-track egress earns its keep. Instead of one mixed file, you get a separate audio track per participant. Transcribe each track on its own, tag every segment with that participant&#39;s identity, then merge all segments back together in timestamp order. The result is a speaker-attributed transcript — &quot;Priya: … / Arun: …&quot; — which makes the LLM&#39;s action-item ownership far more accurate, because it can see who actually committed to what.&lt;/p&gt;

&lt;h2&gt;Why self-hosted matters here&lt;/h2&gt;
&lt;p&gt;The convenience of AI summaries usually comes at the cost of handing your conversations to a vendor. This pipeline gives you the convenience &lt;em&gt;and&lt;/em&gt; keeps every stage — media, transcript, and model — inside your own walls. For regulated teams, that&#39;s not a nice-to-have; it&#39;s the whole requirement.&lt;/p&gt;

&lt;p&gt;This is the engine behind &lt;strong&gt;Olivasal&lt;/strong&gt;, our self-hosted video conferencing with built-in AI summaries — and the same core powers the clinical scribe in our telehealth platform, Saffron. If you&#39;d rather have this running out of the box than wire it up yourself, that&#39;s exactly what we built → &lt;a href=&quot;https://olivasal.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;olivasal.com&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/7451516122308738122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2026/07/build-self-hosted-meeting-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7451516122308738122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7451516122308738122'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2026/07/build-self-hosted-meeting-summary.html' title='Build a Self-Hosted Meeting-Summary Pipeline (No Cloud, No Data Leaving Your Box)'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-89099119287249464</id><published>2026-07-01T01:40:11.351-07:00</published><updated>2026-07-01T01:40:11.351-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Denial Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Healthcare"/><category scheme="http://www.blogger.com/atom/ns#" term="Megam"/><category scheme="http://www.blogger.com/atom/ns#" term="NPHIES"/><category scheme="http://www.blogger.com/atom/ns#" term="RCM"/><category scheme="http://www.blogger.com/atom/ns#" term="X12"/><title type='text'>Catching Insurance Claim Denials Before You Submit</title><content type='html'>&lt;p&gt;In revenue-cycle management, the denial is the most expensive message you&#39;ll ever receive. Every denied claim is money you already earned — care delivered, work done — now frozen behind rework, appeals, and a filing clock that&#39;s ticking down. Some of it comes back after weeks of effort. A painful share never comes back at all, and quietly gets written off.&lt;/p&gt;

&lt;p&gt;What makes it worse is &lt;em&gt;when&lt;/em&gt; most teams deal with denials: after they happen. The claim goes out, the payer sends it back, and only then does someone open a worklist and start the reactive scramble. It&#39;s the most expensive possible point to intervene — you&#39;re now paying staff to recover revenue you&#39;d already booked.&lt;/p&gt;

&lt;p&gt;Here&#39;s the thing we kept noticing across RCM work: &lt;strong&gt;denials aren&#39;t random.&lt;/strong&gt; They cluster into a handful of predictable patterns — a missing or expired prior authorization, an eligibility lapse, a diagnosis-to-service code mismatch, a modifier issue, a timely-filing miss, a duplicate. And if a pattern is predictable, it&#39;s catchable — &lt;em&gt;before&lt;/em&gt; the claim leaves the building, when the fix costs a few minutes instead of a multi-week appeal.&lt;/p&gt;

&lt;p&gt;That single shift — from working denials to &lt;em&gt;preventing&lt;/em&gt; them — is where the money is. So we&#39;ve been building it.&lt;/p&gt;

&lt;h2&gt;Why a generic scrubber doesn&#39;t cut it&lt;/h2&gt;

&lt;p&gt;The hard part is that &quot;what causes a denial&quot; depends entirely on where you&#39;re billing.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In the &lt;strong&gt;US&lt;/strong&gt;, claims run on X12, and the reasons come back as &lt;strong&gt;CARC/RARC&lt;/strong&gt; codes buried in the remittance.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;KSA&lt;/strong&gt;, it&#39;s &lt;strong&gt;NPHIES&lt;/strong&gt; — a FHIR R4 world with its own adjudication outcomes and error structures.&lt;/li&gt;
  &lt;li&gt;In the &lt;strong&gt;UAE&lt;/strong&gt;, it&#39;s &lt;strong&gt;eClaimLink / DHPO&lt;/strong&gt; — an XML format with DHA and DOH code sets of their own.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A rule that catches a denial in one market is meaningless in another. And on top of the market differences, every individual payer has its own quirks — the undocumented reasons &lt;em&gt;this&lt;/em&gt; insurer rejects &lt;em&gt;that&lt;/em&gt; service. A one-size-fits-all checker misses most of what actually matters.&lt;/p&gt;

&lt;h2&gt;What we&#39;re building&lt;/h2&gt;

&lt;p&gt;The approach we&#39;re rolling into our RCM stack has two layers, on purpose:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;An explainable rule engine.&lt;/strong&gt; Market-aware, payer-aware rules that check a claim before submission — eligibility, authorization, coding logic, completeness, timely-filing windows. Rules are the right first layer because they&#39;re &lt;em&gt;editable&lt;/em&gt; and they tell you exactly why a claim is risky. When a client says &quot;this payer always denies X,&quot; that becomes a rule in minutes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;A denial-probability model on top.&lt;/strong&gt; Trained on the client&#39;s own historical claims and remittances, it scores each new claim and surfaces the &lt;em&gt;likely&lt;/em&gt; denial reason plus a suggested fix — learning the payer quirks the rules haven&#39;t caught yet.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything lands where the client can see it: a live dashboard (built on Datalytics) showing first-pass denial rate, the top denial reasons by payer and service, and — the number that actually matters — how that rate drops over time.&lt;/p&gt;

&lt;p&gt;The whole philosophy fits on a sticky note: &lt;strong&gt;the cheapest denial is the one that never happens.&lt;/strong&gt; Prevention beats appeal every time, because prevention costs minutes and appeals cost weeks.&lt;/p&gt;

&lt;p&gt;We&#39;re putting this to work in RCM across the UAE, KSA, and US markets. If denials are eating into your margin and your team is stuck working them after the fact, that&#39;s exactly the problem we&#39;re solving — let&#39;s talk → &lt;a href=&quot;https://megamtech.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;megamtech.com&lt;/a&gt;&lt;/p&gt;&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/89099119287249464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2026/07/catching-insurance-claim-denials-before.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/89099119287249464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/89099119287249464'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2026/07/catching-insurance-claim-denials-before.html' title='Catching Insurance Claim Denials Before You Submit'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-1737791066665508822</id><published>2018-12-11T04:41:00.003-08:00</published><updated>2018-12-11T04:48:54.961-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Jenkins"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="REST"/><title type='text'>Jenkins JSON API usage </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;
&lt;div style=&quot;font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 19px;&quot;&gt;
&lt;div&gt;
&amp;lt;?php&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;
&lt;span style=&quot;color: #0000e6;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;Jenkins&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
{&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;private&lt;/span&gt; $crumb_field;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;private&lt;/span&gt; $crumb_value;&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; * Undocumented check the jenkins url is active&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; &lt;/span&gt;boolean&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;isActive&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;api/json/&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsJson&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; isset($response-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;body&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;assignedLabels&lt;/span&gt;[0]-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;name&lt;/span&gt;);&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;getVersion&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;api/json/&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsJson&lt;/span&gt;()&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
      &lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; * &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; * getLastBuild information for the $jobName sent&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; * &lt;/span&gt;@param&lt;span style=&quot;color: #969696;&quot;&gt; &lt;/span&gt;mixed&lt;span style=&quot;color: #969696;&quot;&gt; $jobName - Valid job name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;getLastBuildInfo&lt;/span&gt;($jobName)&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;/job/&#39;&lt;/span&gt; . $jobName . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;/lastBuild/api/json&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsJson&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; $response-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;body&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *  get all available jobs from the Jenkins with basic information&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; Object&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;getJobs&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;/api/json?tree=jobs[name,color,url,description,buildable,inQueue,healthReport,lastStatbleBuild,lastUnstableBuild,lastSuccessfulBuild,lastFailedBuild]&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsJson&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; $response-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;body&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * get config.xml for the jobname passed from Jenkins URL &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@param&lt;span style=&quot;color: #969696;&quot;&gt; [string] $jobName&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; Object&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;getJobConfig&lt;/span&gt;($jobName)&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;job/&#39;&lt;/span&gt; . $jobName . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;/config.xml&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsXml&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; $response;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * trigger a job &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@param&lt;span style=&quot;color: #969696;&quot;&gt; [string] $jobName&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; Object&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;buildJob&lt;/span&gt;($jobName)&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_field&lt;/span&gt; == &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&#39;&lt;/span&gt; || &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_value&lt;/span&gt; == &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&#39;&lt;/span&gt;) {&lt;/div&gt;
&lt;div&gt;
            &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;getCrumb&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        }&lt;/div&gt;
&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; .&lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;job/&#39;&lt;/span&gt;.$jobName .&lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;/build&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;addHeader&lt;/span&gt;(&lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_field&lt;/span&gt;, &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_value&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; $response;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * Get crumb information &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; &lt;/span&gt;void&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;getCrumb&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;crumbIssuer/api/json&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;expectsJson&lt;/span&gt;()&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_field&lt;/span&gt; = $response-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;body&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumbRequestField&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_value&lt;/span&gt; = $response-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;body&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #969696;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * Copy job to a new name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     *&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@param&lt;span style=&quot;color: #969696;&quot;&gt; [type] $from - Jobname&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@param&lt;span style=&quot;color: #969696;&quot;&gt; [type] $to - Jobname&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     * &lt;/span&gt;@return&lt;span style=&quot;color: #969696;&quot;&gt; Object&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #969696;&quot;&gt;     */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
    &lt;span style=&quot;color: #0000e6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;createJob&lt;/span&gt;($from, $to)&lt;/div&gt;
&lt;div&gt;
    {&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_field&lt;/span&gt; == &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&#39;&lt;/span&gt; || &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_value&lt;/span&gt; == &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&#39;&lt;/span&gt;) {&lt;/div&gt;
&lt;div&gt;
            &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;getCrumb&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        }&lt;/div&gt;
&lt;div&gt;
        $response = \Httpful\Request::&lt;span style=&quot;font-weight: bold;&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_URL&lt;/span&gt; . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;createItem?name=&#39;&lt;/span&gt; . $to . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&amp;amp;from=&#39;&lt;/span&gt; . $from . &lt;span style=&quot;color: #ce7b00;&quot;&gt;&#39;&amp;amp;mode=copy&#39;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;addHeader&lt;/span&gt;(&lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_field&lt;/span&gt;, &lt;span style=&quot;color: #0000e6;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #009900;&quot;&gt;crumb_value&lt;/span&gt;)&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;authenticateWith&lt;/span&gt;(&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_USER&lt;/span&gt;, &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;JENKINS_PASS&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
            -&amp;gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;send&lt;/span&gt;();&lt;/div&gt;
&lt;div&gt;
        &lt;span style=&quot;color: #0000e6;&quot;&gt;return&lt;/span&gt; $response;&lt;/div&gt;
&lt;div&gt;
    }&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
}&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/1737791066665508822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2018/12/jenkins-json-api-usage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/1737791066665508822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/1737791066665508822'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2018/12/jenkins-json-api-usage.html' title='Jenkins JSON API usage '/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-7423845979405171098</id><published>2016-08-10T04:14:00.003-07:00</published><updated>2016-08-10T04:14:57.609-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CloudFlare"/><category scheme="http://www.blogger.com/atom/ns#" term="Fail2Ban"/><category scheme="http://www.blogger.com/atom/ns#" term="Nginx"/><title type='text'>Cloudflare 522 ERROR - Nginx - Fail2Ban</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In my case I was using Ubuntu 16.04 with Fail2ban installed as if fail2ban takes the ips from nginx access log, Which has repeated cloudflare ips listed on the file (As if Cloudflare used as reverse proxy). Fail2Ban started block Cloudflare ips&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The solution would be logging the original ips of the request on the access file instead of Cloudflare ip&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
First check your Nginx has &quot;ngx_http_realip_module&quot;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
nginx -V&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If Enabled add the ips below to a file under conf.d&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(238, 238, 238); box-sizing: border-box; color: #555555; font-family: monospace, monospace; font-size: 14px; line-height: 23.8px; overflow: auto; padding: 10px 15px;&quot;&gt;set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CloudFlare ip might change so please check this &lt;a href=&quot;https://www.cloudflare.com/ips/&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/7423845979405171098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/08/cloudflare-522-error-nginx-fail2ban.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7423845979405171098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7423845979405171098'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/08/cloudflare-522-error-nginx-fail2ban.html' title='Cloudflare 522 ERROR - Nginx - Fail2Ban'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-8010032113296685460</id><published>2016-08-03T22:56:00.000-07:00</published><updated>2016-08-03T22:56:11.273-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SSL"/><title type='text'>nginx error - ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you get the following error&amp;nbsp;&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #eeeeee; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;This site can’t be reached&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;The webpage at https://yourdomain.com/ might be temporarily down or it may have moved permanently to a new web address.&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #eeeeee; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;Change your nginx conf as follows&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;server&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;{&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; listen 443 ssl http2;&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; server_name yourdomain.com;&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_ciphers &#39;ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH&#39;;&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br style=&quot;font-size: 13.6px; line-height: 19.04px;&quot; /&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 13.6px; line-height: 19.04px;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Reference : &lt;a href=&quot;https://support.cloudflare.com/hc/en-us/articles/200933580-What-cipher-suites-does-CloudFlare-use-for-SSL-&quot; target=&quot;_blank&quot;&gt;CloudFlare&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/8010032113296685460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/08/nginx-error-errspdyinadequatetransports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8010032113296685460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8010032113296685460'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/08/nginx-error-errspdyinadequatetransports.html' title='nginx error - ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-2292810531231832345</id><published>2016-06-12T23:18:00.001-07:00</published><updated>2016-06-12T23:18:24.484-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="skype"/><title type='text'>Remove Skype ads</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #333534; font-family: &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 16px; font-stretch: inherit; line-height: 1.25em; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Exit Skype&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Open Internet Explorer&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Open Internet Options&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Go to Security and select Restricted sites&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Click Sites&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Add&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://apps.skype.com/,&quot; style=&quot;background-color: transparent; border: 0px; box-sizing: border-box; color: #0078ca; cursor: pointer; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot; target=&quot;_blank&quot;&gt;https://apps.skype.com/,&lt;/a&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;&amp;nbsp;click OK&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Go to General, click Delete, and click Delete again&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 1.25em;&quot;&gt;Open Skype, the blank space should be gone and there will be no ads&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #333534; font-family: &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 16px; font-stretch: inherit; line-height: 1.25em; padding: 0px; vertical-align: baseline;&quot;&gt;
I don&#39;t know what the implications are and whether there any issues with other skype apps, but so far this is the only possible solution that I can think of.&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/2292810531231832345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/06/remove-skype-ads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2292810531231832345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2292810531231832345'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/06/remove-skype-ads.html' title='Remove Skype ads'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-2843309374626640765</id><published>2016-06-04T00:23:00.005-07:00</published><updated>2016-06-04T00:24:40.104-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cron"/><category scheme="http://www.blogger.com/atom/ns#" term="hacking"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin"/><category scheme="http://www.blogger.com/atom/ns#" term="Wordpress"/><title type='text'>Find malicious or hacked file in linux</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
First find the outgoing connections with the following command&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: #cccccc; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;netstat -nputwN&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Check the connections and find the connection which is trying to attack the other systems. For example PID 11009 in this scenario.&lt;br /&gt;
&lt;br /&gt;
Use the following command to identify the list of files involved in the process execution&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: #cccccc; font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;lsof -p 11009&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/2843309374626640765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/06/find-malicious-or-hacked-file-in-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2843309374626640765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2843309374626640765'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/06/find-malicious-or-hacked-file-in-linux.html' title='Find malicious or hacked file in linux'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-5759437501979848859</id><published>2016-04-05T00:11:00.002-07:00</published><updated>2016-06-04T00:24:59.476-07:00</updated><title type='text'>why mcrypt_create_iv is slow</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; line-height: 28.8px; text-align: justify;&quot;&gt;If you don&#39;t specify argument for mcrypt_create_iv(), it will use&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; font-weight: 700; line-height: 28.8px; text-align: justify;&quot;&gt;/dev/random&lt;/span&gt;&lt;span style=&quot;background-color: white; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 28.8px;&quot;&gt;(on Linux) by default as a random number generator. The problem of /dev/random is that&amp;nbsp;it&#39;s&amp;nbsp;random pool&amp;nbsp;depends on the system interrupts, when there is not enough system interrupts, it cannot generate enough random numbers, then the process tries to get the random numbers will wait and hang.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 28.8px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 28.8px;&quot;&gt;So instead of&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; line-height: 28.8px; text-align: justify;&quot;&gt;mcrypt_create_iv($size)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; line-height: 28.8px; text-align: justify;&quot;&gt;use&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; line-height: 28.8px; text-align: justify;&quot;&gt;mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px; line-height: 28.8px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 28.8px;&quot;&gt;See the&amp;nbsp;difference&amp;nbsp;then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/5759437501979848859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/04/why-mcryptcreateiv-is-slow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5759437501979848859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5759437501979848859'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/04/why-mcryptcreateiv-is-slow.html' title='why mcrypt_create_iv is slow'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-2817832520804414068</id><published>2016-03-17T00:26:00.006-07:00</published><updated>2016-03-17T00:26:52.055-07:00</updated><title type='text'>Block traffic to your server from a particular Country</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;&lt;br /&gt;Create a file where we can declare some rules to use:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;&lt;br /&gt;sudo nano /etc/iptables.firewall.rules&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;&lt;br /&gt;Inside there you&#39;ll want to paste the following:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;&lt;br /&gt;*filter&lt;br /&gt;#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn&#39;t use lo0&lt;br /&gt;&lt;br /&gt;-A INPUT -i lo -j ACCEPT&lt;br /&gt;&lt;br /&gt;-A INPUT -d 127.0.0.0/8 -j REJECT&lt;br /&gt;&lt;br /&gt;#  Accept all established inbound connections&lt;br /&gt;&lt;br /&gt;-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;#  Allow all outbound traffic - you can modify this to only allow certain traffic&lt;br /&gt;&lt;br /&gt;-A OUTPUT -j ACCEPT&lt;br /&gt;&lt;br /&gt;#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp --dport 80 -j ACCEPT&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;&lt;br /&gt;#  Allow SSH connections&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;#  The -dport number should be the same port number you set in sshd_config&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT&lt;br /&gt;&lt;br /&gt;#  Allow ping&lt;br /&gt;&lt;br /&gt;-A INPUT -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;&lt;br /&gt;#  Log iptables denied calls&lt;br /&gt;&lt;br /&gt;-A INPUT -m limit --limit 5/min -j LOG --log-prefix &quot;iptables denied: &quot; --log-level 7&lt;br /&gt;&lt;br /&gt;#  Drop all other inbound - default deny unless explicitly allowed policy&lt;br /&gt;&lt;br /&gt;-A INPUT -j DROP&lt;br /&gt;&lt;br /&gt;-A FORWARD -j DROP&lt;br /&gt;&lt;br /&gt;COMMIT&lt;/b&gt;&lt;/blockquote&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
Save that. Next, we&lt;b&gt; &lt;/b&gt;need to apply those rules – this is just a text file, and we need to instruct iptables to actually use it.&lt;/blockquote&gt;
&lt;br /&gt;&lt;br /&gt;sudo iptables-restore &amp;lt; /etc/iptables.firewall.rules&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That should have loaded the rules and applied them; you can check by&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;iptables -L&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The output of that command ought to look like&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chain INPUT (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     icmp --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix &quot;iptables denied: &quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   DROP       all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Chain FORWARD (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   DROP       all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Chain OUTPUT (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ACCEPT     all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Great, it&#39;s working! But if you reboot the server it won&#39;t be. So lets fix that by creating a file which will run at boot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sudo nano /etc/network/if-pre-up.d/firewall&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Inside that file paste:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/sbin/iptables-restore &amp;lt; /etc/iptables.firewall.rules&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Save it. Now we must make sure it&#39;s allowed to execute:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sudo chmod +x /etc/network/if-pre-up.d/firewall&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Done. The firewall is now running with those rules applied and those rules will be re-applied every time the server reboots. But it&#39;s not blocking China yet; it&#39;s only blocking anything not on port 80 or 443 (http and https).&lt;br /&gt; Using ipset to block China&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can&#39;t manually add a few thousand IP addresses to your iptables, and even doing it automatically is a bad idea because it can cause a lot of CPU load (or so I&#39;ve read). Instead we can use ipset which is designed for this sort of thing. ipset handles big lists of ip addresses; you just create a list and then tell iptables to use that list in a rule.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note; I assume that the entirety of the following is done as root. Adjust accordingly if your system is based on sudo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;apt-get install ipset&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next, I wrote a small Bash script to do all the work, which you should be able to understand from the comments in it. Create a file:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nano /etc/block-china.sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s what you want to paste into it:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Create the ipset list&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ipset -N china hash:net&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# remove any old list that might exist from previous runs of this script&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rm cn.zone&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Pull the latest IP set for China&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Add each IP address from the downloaded list into the ipset &#39;china&#39;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;for i in $(cat /etc/cn.zone ); do ipset -A china $i; done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Restore iptables&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/sbin/iptables-restore &amp;lt; /etc/iptables.firewall.rules&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Save the file. Make it executable:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;chmod +x /etc/block-china.sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This hasn&#39;t done anything yet, but it will in a minute when we run the script. First, we need to add a rule into iptables that refers to this new ipset list the script above defines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nano /etc/iptables.firewall.rules&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add the following line:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp -m set --match-set china src -j DROP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Save the file. To be clear, my full iptables.firewall.rules now looks like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*filter&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn&#39;t use lo0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -i lo -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -d 127.0.0.0/8 -j REJECT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Accept all established inbound connections&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Block anything from China&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# These rules are pulled from ipset&#39;s china list&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# The source file is at /etc/cn.zone (which in turn is generated by a shell script at /etc/block-china.sh )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp -m set --match-set china src -j DROP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Allow all outbound traffic - you can modify this to only allow certain traffic&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A OUTPUT -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp --dport 80 -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Allow SSH connections&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  The -dport number should be the same port number you set in sshd_config&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Allow ping&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -p icmp -j ACCEPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Log iptables denied calls&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -m limit --limit 5/min -j LOG --log-prefix &quot;iptables denied: &quot; --log-level 7&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#  Drop all other inbound - default deny unless explicitly allowed policy&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A INPUT -j DROP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-A FORWARD -j DROP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;COMMIT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Right now, nothing has changed with the server because no new rules have been applied; to do so, run the block-china.sh script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/block-china.sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This should show some output as it pulls a fresh list of Chinese based IPs and then, after a few seconds or so, it will complete and drop you back to a command prompt.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To test if it worked, run:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;iptables -L&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You should now see a new rule blocking China – the output ought to look like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chain INPUT (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DROP       tcp  --  anywhere             anywhere             match-set china src&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     icmp --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix &quot;iptables denied: &quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DROP       all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chain FORWARD (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DROP       all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chain OUTPUT (policy ACCEPT)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;target     prot opt source               destination&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACCEPT     all  --  anywhere             anywhere&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Almost done! This works, and will continue to work on re-boots. But, IP addresses change and that list will grow stale over time. If you want to pull and apply an updated list of IPs you can just run the block-china.sh script again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Configure your websever:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We use Ngnix, So steps to block traffic from China do as follow :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Check ip modules are enabled &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nginx -V&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you see --with-http_geoip_module in the output, you are ready to use the GeoIP database with nginx:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;root@server1:~# nginx -V&lt;br /&gt; nginx version: nginx/1.2.1&lt;br /&gt; TLS SNI support enabled&lt;br /&gt; configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd-nginx_1.2.1-2.1-amd64-fMGfEu/nginx-1.2.1/debian/modules/nginx-auth-pam --add-module=/build/buildd-nginx_1.2.1-2.1-amd64-fMGfEu/nginx-1.2.1/debian/modules/nginx-echo --add-module=/build/buildd-nginx_1.2.1-2.1-amd64-fMGfEu/nginx-1.2.1/debian/modules/nginx-upstream-fair --add-module=/build/buildd-nginx_1.2.1-2.1-amd64-fMGfEu/nginx-1.2.1/debian/modules/nginx-dav-ext-module&lt;br /&gt; root@server1:~#&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Installing The GeoIP Database&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On Debian/Ubuntu, the GeoIP database can be installed as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;apt-get install geoip-database libgeoip1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This places the GeoIP database in /usr/share/GeoIP/GeoIP.dat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is possible that it is a bit outdated. Therefore we can optionally download a fresh copy from the GeoIP web site:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_bak&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cd /usr/share/GeoIP/&lt;br /&gt; wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt; gunzip GeoIP.dat.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Configuring nginx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Open /etc/nginx/nginx.conf...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vi /etc/nginx/nginx.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;... and place this in the http {} block, before any include lines:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;[...]&lt;br /&gt;    geoip_country /usr/share/GeoIP/GeoIP.dat;&lt;br /&gt;    map $geoip_country_code $allowed_country {&lt;br /&gt;        default yes;&lt;br /&gt;        FK no;&lt;br /&gt;        FM no;&lt;br /&gt;        EH no;&lt;br /&gt;    }&lt;br /&gt;[...]&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This allows all countries, except the three countries set to no (you can find a list of country codes &lt;a href=&quot;http://www.maxmind.com/app/iso3166&quot;&gt;here&lt;/a&gt;). To do it the other way round, i.e. block all countries and allow only a few, you&#39;d do it this way:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;[...]&lt;br /&gt;    geoip_country /usr/share/GeoIP/GeoIP.dat;&lt;br /&gt;    map $geoip_country_code $allowed_country {&lt;br /&gt;        default no;&lt;br /&gt;        FK yes;&lt;br /&gt;        FM yes;&lt;br /&gt;        EH yes;&lt;br /&gt;    }&lt;br /&gt;[...]&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, this actually doesn&#39;t block any country, it just sets the $allowed_country variable. To actually block countries, you must open your vhost configuration and place the following code in the server {} container (this can go inside and also outside any location {} block):&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
 
 
[...]&lt;br /&gt;        if ($allowed_country = no) {&lt;br /&gt;            return 444;&lt;br /&gt;        }&lt;br /&gt;[...]&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This returns the 444 error code to any visitor from a blocked country. What this does is it closes the connection without sending any headers. You can also use another error code like 403 (&quot;Forbidden&quot;) if you like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reload nginx afterwards:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/init.d/nginx reload&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 4 Links&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;·         nginx: &lt;a href=&quot;http://nginx.org/&quot;&gt;http://nginx.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;·         nginx Wiki: &lt;a href=&quot;http://wiki.nginx.org/&quot;&gt;http://wiki.nginx.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;·         HttpGeoipModule: &lt;a href=&quot;http://wiki.nginx.org/HttpGeoipModule&quot;&gt;http://wiki.nginx.org/HttpGeoipModule&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}


&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/2817832520804414068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2016/03/block-traffic-to-your-server-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2817832520804414068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2817832520804414068'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2016/03/block-traffic-to-your-server-from.html' title='Block traffic to your server from a particular Country'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-5173547159092619599</id><published>2015-08-17T00:53:00.000-07:00</published><updated>2015-08-17T00:53:19.559-07:00</updated><title type='text'>Multiple JDK versions in Centos</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2 class=&quot;heading1&quot; style=&quot;background-color: white; border: 0px; color: #ff3a00; font-family: &#39;Roboto Slab&#39;; font-size: 24px; font-weight: bolder; line-height: 34px; margin: 45px 0px 12px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
Downloading Latest Java Archive&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Java latest archive is available on its official site. We recommend to download latest version of Java from&amp;nbsp;&lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html&quot; style=&quot;color: #ff8800; outline: none; text-decoration: none; transition: all 0.25s linear;&quot;&gt;Oracle official website&lt;/a&gt;. After completing download also&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD2&quot; style=&quot;background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat !important; background-size: initial !important; border-bottom-color: rgb(27, 142, 222) !important; border-bottom-style: dotted !important; border-bottom-width: 1px !important; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: rgb(27, 142, 222) !important; cursor: pointer !important; display: inline !important; float: none !important; margin: 0px; outline: 0px; padding: 0px 0px 1px !important; position: static; vertical-align: baseline;&quot;&gt;extract&lt;/span&gt;&amp;nbsp;archive with given commands.&lt;/div&gt;
&lt;h4 class=&quot;heading3&quot; style=&quot;background-color: white; border: 0px; font-family: &#39;Roboto Slab&#39;; font-size: 17px; font-weight: bolder; line-height: 28px; margin: 0px 0px 4px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
For 64 Bit:-&lt;/h4&gt;
&lt;pre style=&quot;background: none 0px 0px repeat scroll rgb(60, 60, 60); border-radius: 4px; border: 1px solid rgb(229, 229, 229); color: white; font-size: 0.9em; line-height: 1.3em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;# cd /opt/
# wget --no-cookies --no-check-certificate --header &quot;Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie&quot; &quot;http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz&quot;

# tar xzf jdk-7u79-linux-x64.tar.gz
&lt;/pre&gt;
&lt;h4 class=&quot;heading3&quot; style=&quot;background-color: white; border: 0px; font-family: &#39;Roboto Slab&#39;; font-size: 17px; font-weight: bolder; line-height: 28px; margin: 0px 0px 4px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
For 32 Bit:-&lt;/h4&gt;
&lt;pre style=&quot;background: none 0px 0px repeat scroll rgb(60, 60, 60); border-radius: 4px; border: 1px solid rgb(229, 229, 229); color: white; font-size: 0.9em; line-height: 1.3em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;# cd /opt/
# wget --no-cookies --no-check-certificate --header &quot;Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie&quot; &quot;http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-i586.tar.gz&quot;

# tar xzf jdk-7u79-linux-i586.tar.gz
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; font-size: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;red style=&quot;color: red;&quot;&gt;Note:&lt;/red&gt;&lt;/span&gt;&amp;nbsp;If Above wget command doesn’t not work for you watch&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=McuF7g14hYw&quot; style=&quot;color: #ff8800; outline: none; text-decoration: none; transition: all 0.25s linear;&quot; target=&quot;_blank&quot;&gt;this example video&amp;nbsp;&lt;/a&gt;to download java source archive using terminal.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Use archive file as per your system configuration. For this example we are using CentOS 7.0 (64 bit) system.&lt;/div&gt;
&lt;h5 class=&quot;heading1&quot; style=&quot;background-color: white; border: 0px; color: #ff3a00; font-family: &#39;Roboto Slab&#39;; font-size: 24px; font-weight: bolder; line-height: 34px; margin: 45px 0px 12px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
Install Java with Alternatives&lt;/h5&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
After extracting Java archive file, we just need to set up to use newer version of Java using alternatives. Use the following commands to do it.&lt;/div&gt;
&lt;pre style=&quot;background: none 0px 0px repeat scroll rgb(60, 60, 60); border-radius: 4px; border: 1px solid rgb(229, 229, 229); color: white; font-size: 0.9em; line-height: 1.3em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;# cd /opt/jdk1.7.0_79/
# alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
# alternatives --&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD1&quot; style=&quot;background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat !important; background-size: initial !important; border-bottom-color: rgb(27, 142, 222) !important; border-bottom-style: dotted !important; border-bottom-width: 1px !important; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: rgb(27, 142, 222) !important; cursor: pointer !important; display: inline !important; float: none !important; font-size: 14.3999996185303px !important; margin: 0px; outline: 0px; padding: 0px 0px 1px !important; position: static; vertical-align: baseline;&quot;&gt;config&lt;/span&gt; java
&lt;/pre&gt;
&lt;pre class=&quot;pretty&quot; style=&quot;background: none 0px 0px repeat scroll rgb(240, 240, 240); border-left-color: rgb(116, 183, 63); border-left-width: 3px; border-radius: 5px; border-style: none none none solid; font-size: 0.9em; line-height: 1.5em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 8px 12px 8px 18px; vertical-align: baseline;&quot;&gt;There are 3 programs which provide &#39;java&#39;.

  Selection    Command
-----------------------------------------------
*  1           /opt/jdk1.7.0_60/bin/java
 + 2           /opt/jdk1.7.0_72/bin/java
   3           &lt;orange style=&quot;color: orange;&quot;&gt;/opt/jdk1.7.0_79/bin/java&lt;/orange&gt;

Enter to keep the current selection[+], or type selection number: &lt;span style=&quot;border: 0px; font-size: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;orange style=&quot;color: orange;&quot;&gt;3&lt;/orange&gt;&lt;/span&gt; [Press Enter]
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Now you may also required to set up&amp;nbsp;&lt;red style=&quot;color: red;&quot;&gt;javac&lt;/red&gt;&amp;nbsp;and&amp;nbsp;&lt;red style=&quot;color: red;&quot;&gt;jar&lt;/red&gt;&amp;nbsp;commands path using alternatives command.&lt;/div&gt;
&lt;pre style=&quot;background: none 0px 0px repeat scroll rgb(60, 60, 60); border-radius: 4px; border: 1px solid rgb(229, 229, 229); color: white; font-size: 0.9em; line-height: 1.3em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;# alternatives --install &lt;orange style=&quot;color: orange;&quot;&gt;/usr/bin/jar&lt;/orange&gt; jar /opt/jdk1.7.0_79/bin/jar 2
# alternatives --install &lt;orange style=&quot;color: orange;&quot;&gt;/usr/bin/javac&lt;/orange&gt; javac /opt/jdk1.7.0_79/bin/javac 2
# alternatives --set &lt;orange style=&quot;color: orange;&quot;&gt;jar&lt;/orange&gt; /opt/jdk1.7.0_79/bin/jar
# alternatives --set &lt;orange style=&quot;color: orange;&quot;&gt;javac&lt;/orange&gt; /opt/jdk1.7.0_79/bin/javac 
&lt;/pre&gt;
&lt;h5 class=&quot;heading1&quot; style=&quot;background-color: white; border: 0px; color: #ff3a00; font-family: &#39;Roboto Slab&#39;; font-size: 24px; font-weight: bolder; line-height: 34px; margin: 45px 0px 12px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
Check Installed Java Version&lt;/h5&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: &#39;Roboto Slab&#39;; font-size: 16px; line-height: 28px; margin-bottom: 20px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Use following command to check which version of Java is currently being used by system.&lt;/div&gt;
&lt;pre style=&quot;background: none 0px 0px repeat scroll rgb(60, 60, 60); border-radius: 4px; border: 1px solid rgb(229, 229, 229); color: white; font-size: 0.9em; line-height: 1.3em; margin-bottom: 20px; outline: 0px; overflow: auto; padding: 12px; vertical-align: baseline;&quot;&gt;# java -version

java version &quot;&lt;orange style=&quot;color: orange;&quot;&gt;1.7.0_79&lt;/orange&gt;&quot;
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

&lt;/pre&gt;
&lt;h5 class=&quot;heading1&quot; style=&quot;background-color: white; border: 0px; color: #ff3a00; font-family: &#39;Roboto Slab&#39;; font-size: 24px; font-weight: bolder; line-height: 34px; margin: 45px 0px 12px; opacity: 1; outline: 0px; padding: 0px; transition: opacity 0.24s ease-in-out; vertical-align: baseline; visibility: visible;&quot;&gt;
&lt;br /&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/5173547159092619599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2015/08/multiple-jdk-versions-in-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5173547159092619599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5173547159092619599'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2015/08/multiple-jdk-versions-in-centos.html' title='Multiple JDK versions in Centos'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-4238676169597305861</id><published>2015-05-21T05:24:00.002-07:00</published><updated>2015-05-21T05:24:27.720-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DB"/><category scheme="http://www.blogger.com/atom/ns#" term="Hadoop"/><category scheme="http://www.blogger.com/atom/ns#" term="mongo 3.0"/><category scheme="http://www.blogger.com/atom/ns#" term="Mongodb"/><category scheme="http://www.blogger.com/atom/ns#" term="Wired Tiger"/><title type='text'>New Features in Mongo DB 3.0</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 1.25em; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;b&gt;&lt;u&gt;Enhanced Query Language and Tools&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 20px; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Key MongoDB tools&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;mongoimport, mongoexport, mongodump, mongorestore, mongostat, mongotop&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;mongooplog&lt;/span&gt;&amp;nbsp;have been re-written as multi-threaded processes in Go, allowing faster operations and smaller binaries.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;mongodump&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;mongorestore&lt;/span&gt;&amp;nbsp;now execute parallelized backup and recovery for small MongoDB instances. Dumps created by earlier releases can be restored to instances running MongoDB 3.0.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: monospace; letter-spacing: 0.400000005960465px;&quot;&gt;mongoimport&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0.400000005960465px;&quot;&gt;&amp;nbsp;can parallelize loads across multiple collections with multi-threaded bulk inserts allowing for significantly faster imports of CSV, TSV and JSON data exported from other databases or applications. Ensuring data quality,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: monospace; letter-spacing: 0.400000005960465px;&quot;&gt;mongoimport&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0.400000005960465px;&quot;&gt;&amp;nbsp;now also supports input validation of field names during the import process.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;span style=&quot;letter-spacing: 0.400000005960465px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Improved DBA Productivity: Enhanced Query Engine Introspection The MongoDB &quot;&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;explain()&lt;/span&gt;&amp;nbsp;method is an invaluable tool for DBAs in optimizing performance. Using explain() output, DBAs can review query plans, ensuring common queries are serviced by well-defined indexes, as well as eliminating any unnecessary indexes that can increase write latency and add overhead during query planning and optimization.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
In the latest MongoDB 3.0 release explain() has been significantly enhanced:&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px; padding: 0px 0px 0px 18px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;The query plan can now be calculated and returned without first having to run the query. This enables DBAs to review which plan will be used to execute the query, without having to wait for the query to run to completion.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;DBAs can run explain() to generate detailed statistics on all query plans considered by the optimizer. Execution statistics are available for every evaluated plan, down to the granularity of execution stage. Now, for example, it is possible for the DBA to distinguish the amount of time a query plan spent sorting the result set from the amount of time spent reading index keys.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;The explain() method exposes query introspection to a wider range of operations, including find, count, update, remove, group, and aggregate, enabling DBAs to optimize for a wider range of query types.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;Richer Geospatial Apps: Big Polygon Support for Multi-Hemisphere Queries&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;MongoDB’s geospatial indexes and queries are widely used by developers building modern location-aware applications across industries as diverse as high technology, retail, telecommunications and government. MongoDB 3.0 adds big polygon geospatial support with&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: monospace; font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;$intersects&lt;/span&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: monospace; font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;$within&lt;/span&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&amp;nbsp;operators, allowing execution of queries over geographic areas extending across multiple hemispheres and areas that exceed 50% of the earth’s surface. As an example, an airline can now run queries to identify all its aircraft that have traveled across multiple hemispheres in the past 24 hours.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;b style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px;&quot;&gt;Enhanced Data Type Support: Easier Time-Series Analytics &amp;amp; Reporting&amp;nbsp;&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px;&quot; /&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;The MongoDB 3.0 aggregation pipeline offers a new&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: monospace; font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;$dateToString&lt;/span&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&amp;nbsp;operator that simplifies report generation and grouping data by time interval. The operator formats the ISO Date type as a string with a user-supplied format, allowing developers to construct rich queries with less code.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;b style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px;&quot;&gt;Faster Issue Resolution: Enhanced Logging&amp;nbsp;&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px;&quot; /&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;Log analysis is a critical part of identifying issues and determining root cause. Now in MongoDB 3.0 developers, QA and operations staff have much greater control over the granularity of log messages and specific functional areas of the server to more precisely investigate issues.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;&lt;span style=&quot;font-weight: 300; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box; color: #31302f; font-family: akzidenz-grotesk, Helvetica, Arial, sans-serif; font-size: 16px; letter-spacing: 0.400000005960465px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box;&quot;&gt;Deploying Geo-Distributed, Datacenter-Aware Applications&amp;nbsp;&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Delivering a low latency experience to customers wherever they are located is a key design consideration for distributed systems. Using MongoDB’s native replica sets, copies (replicas) of the database can be deployed to sites physically closer to users, thereby reducing the effects of network latency. Reads can be issued with the&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-family: monospace;&quot;&gt;nearest&lt;/span&gt;read preference, ensuring the query is served from the replica closest to the user, based on ping distance.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;/div&gt;
&lt;center style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;img img=&quot;&quot; src=&quot;https://www.mongodb.com/sites/mongodb.com/files/blog/screen_shot_2015-02-20_at_15.41.04.png&quot; style=&quot;border: 0px; box-sizing: border-box; max-width: 100%;&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
&lt;center style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/center&gt;
&lt;center style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/center&gt;
&lt;center style=&quot;box-sizing: border-box; font-weight: 300; letter-spacing: 0.400000005960465px; text-align: left;&quot;&gt;
&lt;h2 style=&quot;box-sizing: border-box; font-size: 1.25em; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Pluggable Storage Engines: Extending MongoDB to New Applications&lt;/h2&gt;
&lt;div style=&quot;line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Multiple storage engines can co-exist within a single MongoDB replica set, making it easy to evaluate and migrate engines. Running multiple storage engines within a replica set can also simplify the process of managing the data lifecycle. For example as different storage engines for MongoDB are developed, it would be possible to create a mixed replica set configured in such a way that:&lt;/div&gt;
&lt;ol style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px; padding: 0px 0px 0px 18px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Operational data requiring low latency and high throughput performance is managed by replica set members using the WiredTiger or in-memory storage engine (currently experimental).&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Replica set members configured with an HDFS storage engine expose the operational data to analytical processes running in a Hadoop cluster, which is executing interactive or batch operations rather than real time queries.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
MongoDB replication automatically migrates data between primary and secondary replica set members, independent of their underlying storage format. This eliminates complex ETL tools that have traditionally been used to manage data movement.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;/div&gt;
&lt;center style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;img img=&quot;&quot; src=&quot;https://www.mongodb.com/sites/mongodb.com/files/blog/figure2.png&quot; style=&quot;border: 0px; box-sizing: border-box; max-width: 100%;&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;
&lt;center style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/center&gt;
&lt;center style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; text-align: left;&quot;&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
MongoDB 3.0 ships with two supported storage engines:&lt;/div&gt;
&lt;ol style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px; padding: 0px 0px 0px 18px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;The default MMAPv1 engine, an improved version of the engine used in prior MongoDB releases, now enhanced with collection level concurrency control.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;The new WiredTiger storage engine. For many applications, WiredTiger&#39;s more granular concurrency control and native compression will provide significant benefits in the areas of lower storage costs, greater hardware utilization, higher throughput, and more predictable performance.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;center style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;img img=&quot;&quot; src=&quot;https://www.mongodb.com/sites/mongodb.com/files/blog/screen_shot_2015-02-23_at_14.12.41.png&quot; style=&quot;border: 0px; box-sizing: border-box; max-width: 100%;&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
&lt;div&gt;
&lt;h2 style=&quot;box-sizing: border-box; font-size: 1.25em; letter-spacing: 0.400000005960465px;&quot;&gt;
Higher Performance &amp;amp; Efficiency&lt;/h2&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box;&quot;&gt;Between 7x and 10x Greater Write Performance&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;MongoDB 3.0 provides more granular document-level concurrency control, delivering between 7x and 10x greater throughput for most write-intensive applications, while maintaining predictable low latency.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box;&quot;&gt;Compression: Up to 80% Reduction in Storage Costs&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Despite data storage costs declining 30% to 40% per annum, overall storage expenses continue to escalate as data volumes double every 12 to 18 months. To make matters worse, improvements to storage bandwidth and latency are not keeping pace with data growth, making disk I/O a common bottleneck to scaling overall database performance.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Administrators have the flexibility to configure specific compression algorithms for collections, indexes and the journal, choosing between:&lt;/div&gt;
&lt;ol style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px; padding: 0px 0px 0px 18px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Snappy (the default library for documents and the journal), providing a good balance between high compression ratio – typically around 70%, depending on document data types – and low CPU overhead.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;zlib, providing higher document and journal compression ratios for storage-intensive applications, at the expense of extra CPU overhead.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Prefix compression for indexes reducing the in-memory footprint of index storage by around 50% (workload dependent), freeing up more of the working set for frequently accessed documents.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Administrators can modify the default compression settings for all collections and indexes. Compression is also configurable on a per-collection and per-index basis during collection and index creation.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
By introducing compression, operations teams get higher performance per node and reduced storage costs.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;b style=&quot;box-sizing: border-box;&quot;&gt;Creating Multi-Temperature Storage&lt;/b&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Combining compression with MongoDB’s location-aware sharding, administrators can build highly efficient tiered storage models to support the data lifecycle. Administrators can balance query latency with storage density and cost by assigning data sets to specific storage devices. For example, consider an application where recent data needs to be accessed quickly, while for older data, latency is less of a priority than storage costs:&lt;/div&gt;
&lt;ol style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px; padding: 0px 0px 0px 18px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Recent, frequently accessed data can be assigned to high performance SSDs with Snappy compression enabled.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; line-height: 28px; margin-bottom: 16px;&quot;&gt;Older, less frequently accessed data is tagged to higher capacity, lower-throughput hard disk drives where it is compressed with zlib to attain maximum storage density and lower cost-per-bit.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
MongoDB will automatically migrate data between storage tiers based on user-defined policies without administrators having to build tools or ETL processes to manage data movement.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
Source :&amp;nbsp;&lt;a href=&quot;http://www.mongodb.com/blog/post/whats-new-mongodb-30-part-3-performance-efficiency-gains-new-storage-architecture&quot; target=&quot;_blank&quot;&gt;Mongo DB &lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; letter-spacing: 0.400000005960465px; line-height: 24px;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/center&gt;
&lt;/div&gt;
&lt;/center&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/4238676169597305861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2015/05/new-features-in-mongo-db-30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4238676169597305861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4238676169597305861'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2015/05/new-features-in-mongo-db-30.html' title='New Features in Mongo DB 3.0'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-6018938971184851268</id><published>2015-01-29T02:43:00.002-08:00</published><updated>2015-01-29T02:43:37.431-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Fix"/><category scheme="http://www.blogger.com/atom/ns#" term="Image upload error"/><category scheme="http://www.blogger.com/atom/ns#" term="Nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="Wordpress"/><title type='text'>Wordpress image upload http error on Nginx</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This was due to the following param in Nginx.conf under http section, Just change it to maximum size of you want to upload&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;u&gt;example&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 13px; line-height: 22px;&quot;&gt;client_max_body_size 5M;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/6018938971184851268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2015/01/wordpress-image-upload-http-error-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/6018938971184851268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/6018938971184851268'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2015/01/wordpress-image-upload-http-error-on.html' title='Wordpress image upload http error on Nginx'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-4703650592765786621</id><published>2014-10-09T03:46:00.001-07:00</published><updated>2014-10-09T03:47:14.325-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenCart"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Indian Rupee Symbol in OpenCart</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Execute these Queries in you database&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Alter table oc_currency change column symbol_left symbol_left varchar(50);&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Update oc_currency set symbol_left=&#39;&amp;lt;i class=&quot;fa fa-inr&quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/i&amp;gt;&#39; where currency_id=4;&lt;/span&gt;&lt;/blockquote&gt;
&lt;div&gt;
Change the stylesheet.css in &quot;catalog/view/theme/default/stylesheet/stylesheet.css&quot; To remove the font size to make it even across the application&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Note by default Font Awesome is included in 2.0 Opencart if your theme doesn&#39;t have added it to make this solution work&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/4703650592765786621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2014/10/indian-rupee-symbol-in-opencart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4703650592765786621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4703650592765786621'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2014/10/indian-rupee-symbol-in-opencart.html' title='Indian Rupee Symbol in OpenCart'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-7908969616417093157</id><published>2014-09-22T23:02:00.001-07:00</published><updated>2014-09-23T01:02:33.763-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="JQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="UI technologies"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Jquery 1.10 Cheetsheet</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;article class=&quot;selectors&quot; id=&quot;selectors&quot; style=&quot;background: rgb(255, 221, 58); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Selectors&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
BASICS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 all-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/all-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements.&quot;&gt;*&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 class-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/class-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements with the given class.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.class&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 element-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/element-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements with the given tag name.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;element&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 id-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/id-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects a single element with the given id attribute.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;#id&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 multiple-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/multiple-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects the combined results of all the specified selectors.&quot;&gt;selector1, selectorN, ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
HIERARCHY&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/child-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all direct child elements specified by &#39;child&#39; of elements specified by &#39;parent&#39;.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;parent &amp;gt; child&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 descendant-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/descendant-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are descendants of a given ancestor.&quot;&gt;ancestor descendant&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 next-adjacent-Selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/next-adjacent-Selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all next elements matching &#39;next&#39; that are immediately preceded by a sibling &#39;prev&#39;.&quot;&gt;prev + next&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 next-siblings-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/next-siblings-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all sibling elements that follow after the &#39;prev&#39; element, have the same parent, and match the filtering &#39;siblings&#39; selector.&quot;&gt;prev ~ siblings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
BASIC FILTERS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 animated-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/animated-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements that are in the progress of an animation at the time the selector is run.&quot;&gt;:animated&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 eq-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/eq-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select the element at index n within the matched set.&quot;&gt;:eq()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 even-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/even-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects even elements, zero-indexed. See also odd.&quot;&gt;:even&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 first-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/first-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects the first matched element.&quot;&gt;:first&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 gt-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/gt-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements at an index greater than index within the matched set.&quot;&gt;:gt()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 header-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/header-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are headers, like h1, h2, h3 and so on.&quot;&gt;:header&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 lang-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/lang-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of the specified language.&quot;&gt;:lang()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 last-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/last-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects the last matched element.&quot;&gt;:last&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 lt-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/lt-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements at an index less than index within the matched set.&quot;&gt;:lt()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 not-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/not-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that do not match the given selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;:not()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 odd-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/odd-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects odd elements, zero-indexed. See also even.&quot;&gt;:odd&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 root-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/root-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects the element that is the root of the document.&quot;&gt;:root&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 target-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/target-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects the target element indicated by the fragment identifier of the document&#39;s URI.&quot;&gt;:target&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
CONTENT FILTERS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 contains-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/contains-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements that contain the specified text.&quot;&gt;:contains()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 empty-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/empty-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements that have no children (including text nodes).&quot;&gt;:empty&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 has-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/has-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements which contain at least one element that matches the specified selector.&quot;&gt;:has()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 parent-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/parent-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select all elements that are the parent of another element, including text nodes.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;:parent&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px 0px 0px 10px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
VISIBILITY FILTERS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 hidden-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/hidden-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are hidden.&quot;&gt;:hidden&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 visible-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/visible-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are visible.&quot;&gt;:visible&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;ATTRIBUTE&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-contains-prefix-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-contains-prefix-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value either equal to a given string or starting with that string followed by a hyphen (-).&quot;&gt;[name|=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-contains-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-contains-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value containing the a given substring.&quot;&gt;[name*=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-contains-word-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-contains-word-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value containing a given word, delimited by spaces.&quot;&gt;[name~=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-ends-with-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-ends-with-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value ending exactly with a given string. The comparison is case sensitive.&quot;&gt;[name$=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-equals-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-equals-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value exactly equal to a certain value.&quot;&gt;[name=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-not-equal-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-not-equal-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Select elements that either don&#39;t have the specified attribute, or do have the specified attribute but not with a certain value.&quot;&gt;[name!=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attribute-starts-with-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/attribute-starts-with-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute with a value beginning exactly with a given string.&quot;&gt;[name^=&quot;value&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 has-attribute-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/has-attribute-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects elements that have the specified attribute, with any value.&quot;&gt;[name]&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 multiple-attribute-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/multiple-attribute-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Matches elements that match all of the specified attribute filters.&quot;&gt;[name=&quot;value&quot;][name2=&quot;value2&quot;]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
CHILD FILTERS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 first-child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/first-child-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the first child of their parent.&quot;&gt;:first-child&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 first-of-type-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/first-of-type-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the first among siblings of the same element name.&quot;&gt;:first-of-type&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 last-child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/last-child-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the last child of their parent.&quot;&gt;:last-child&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 last-of-type-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/last-of-type-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the last among siblings of the same element name.&quot;&gt;:last-of-type&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 nth-child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/nth-child-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the nth-child of their parent.&quot;&gt;:nth-child()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 nth-last-child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/nth-last-child-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the nth-child of their parent, counting from the last element to the first.&quot;&gt;:nth-last-child()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 nth-last-of-type-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/nth-last-of-type-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the nth-child of their parent, counting from the last element to the first.&quot;&gt;:nth-last-of-type()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 nth-of-type-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/nth-of-type-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the nth child of their parent in relation to siblings with the same element name.&quot;&gt;:nth-of-type()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 only-child-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/only-child-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are the only child of their parent.&quot;&gt;:only-child&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 only-of-type-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/only-of-type-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that have no siblings with the same element name.&quot;&gt;:only-of-type()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px 0px 0px 10px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
FORMS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 button-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/button-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all button elements and elements of type button.&quot;&gt;:button&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 checkbox-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/checkbox-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type checkbox.&quot;&gt;:checkbox&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 checked-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/checked-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Matches all elements that are checked.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;:checked&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 disabled-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/disabled-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are disabled.&quot;&gt;:disabled&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 enabled-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/enabled-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are enabled.&quot;&gt;:enabled&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 focus-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/focus-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects element if it is currently focused.&quot;&gt;:focus&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 file-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/file-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type file.&quot;&gt;:file&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 image-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/image-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type image.&quot;&gt;:image&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 input-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/input-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all input, textarea, select and button elements.&quot;&gt;:input&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 password-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/password-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type password.&quot;&gt;:password&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 radio-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/radio-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type radio.&quot;&gt;:radio&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 reset-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/reset-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type reset.&quot;&gt;:reset&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 selected-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/selected-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements that are selected.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;:selected&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 submit-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/submit-selector/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type submit.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;:submit&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 text-selector&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/text-selector/&quot; style=&quot;background: none; border: 0px; color: #4d4000; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Selects all elements of type text.&quot;&gt;:text&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;attributes&quot; id=&quot;attributes&quot; style=&quot;background: rgb(255, 123, 58); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Attributes / CSS&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
ATTRIBUTES&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 attr&quot; data-src=&quot;jQuery.fn.attr&quot; href=&quot;http://api.jquery.com/attr/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.attr()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 prop&quot; data-src=&quot;jQuery.fn.prop&quot; href=&quot;http://api.jquery.com/prop/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the value of a property for the first element in the set of matched elements or set one or more properties for every matched element.&quot;&gt;.prop()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 removeAttr&quot; data-src=&quot;jQuery.fn.removeAttr&quot; href=&quot;http://api.jquery.com/removeAttr/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove an attribute from each element in the set of matched elements.&quot;&gt;.removeAttr()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 removeProp&quot; data-src=&quot;jQuery.fn.removeProp&quot; href=&quot;http://api.jquery.com/removeProp/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a property for the set of matched elements.&quot;&gt;.removeProp()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 val&quot; data-src=&quot;jQuery.fn.val&quot; href=&quot;http://api.jquery.com/val/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current value of the first element in the set of matched elements or set the value of every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.val()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
CSS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 addClass&quot; data-src=&quot;jQuery.fn.addClass&quot; href=&quot;http://api.jquery.com/addClass/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Adds the specified class(es) to each of the set of matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.addClass()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 css&quot; data-src=&quot;jQuery.fn.css&quot; href=&quot;http://api.jquery.com/css/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the value of a style property for the first element in the set of matched elements or set one or more CSS properties for every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.css()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 jQuery-cssHooks&quot; data-src=&quot;jQuery.cssHooks&quot; href=&quot;http://api.jquery.com/jQuery.cssHooks/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Provides a way to hook directly into jQuery to override how particular CSS properties are retrieved or set. Amongst other uses, cssHooks can be used to create custom, browser-normalized properties for CSS3 features such as box-shadows and gradients.&quot;&gt;jQuery.cssHooks&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 hasClass&quot; data-src=&quot;jQuery.fn.hasClass&quot; href=&quot;http://api.jquery.com/hasClass/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine whether any of the matched elements are assigned the given class.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.hasClass()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 removeClass&quot; data-src=&quot;jQuery.fn.removeClass&quot; href=&quot;http://api.jquery.com/removeClass/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a single class, multiple classes, or all classes from each element in the set of matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.removeClass()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 toggleClass&quot; data-src=&quot;jQuery.fn.toggleClass&quot; href=&quot;http://api.jquery.com/toggleClass/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add or remove one or more classes from each element in the set of matched elements, depending on either the class&#39;s presence or the value of the switch argument.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.toggleClass()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DIMENSIONS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 height&quot; data-src=&quot;jQuery.fn.height&quot; href=&quot;http://api.jquery.com/height/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed height for the first element in the set of matched elements or set the height of every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.height()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 innerHeight&quot; data-src=&quot;jQuery.fn.innerHeight&quot; href=&quot;http://api.jquery.com/innerHeight/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed height for the first element in the set of matched elements, including padding but not border.&quot;&gt;.innerHeight()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 innerWidth&quot; data-src=&quot;jQuery.fn.innerWidth&quot; href=&quot;http://api.jquery.com/innerWidth/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed width for the first element in the set of matched elements, including padding but not border.&quot;&gt;.innerWidth()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 outerHeight&quot; data-src=&quot;jQuery.fn.outerHeight&quot; href=&quot;http://api.jquery.com/outerHeight/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin.&quot;&gt;.outerHeight()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 outerWidth&quot; data-src=&quot;jQuery.fn.outerWidth&quot; href=&quot;http://api.jquery.com/outerWidth/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed width for the first element in the set of matched elements, including padding and border.&quot;&gt;.outerWidth()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 width&quot; data-src=&quot;jQuery.fn.width&quot; href=&quot;http://api.jquery.com/width/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current computed width for the first element in the set of matched elements or set the width of every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.width()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
OFFSET&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 offset&quot; data-src=&quot;jQuery.fn.offset&quot; href=&quot;http://api.jquery.com/offset/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current coordinates of the first element, or set the coordinates of every element, in the set of matched elements, relative to the document.&quot;&gt;.offset()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 offsetParent&quot; data-src=&quot;jQuery.fn.offsetParent&quot; href=&quot;http://api.jquery.com/offsetParent/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the closest ancestor element that is positioned.&quot;&gt;.offsetParent()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 position&quot; data-src=&quot;jQuery.fn.position&quot; href=&quot;http://api.jquery.com/position/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current coordinates of the first element in the set of matched elements, relative to the offset parent.&quot;&gt;.position()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 scrollLeft&quot; data-src=&quot;jQuery.fn.scrollLeft&quot; href=&quot;http://api.jquery.com/scrollLeft/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current horizontal position of the scroll bar for the first element in the set of matched elements or set the horizontal position of the scroll bar for every matched element.&quot;&gt;.scrollLeft()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 scrollTop&quot; data-src=&quot;jQuery.fn.scrollTop&quot; href=&quot;http://api.jquery.com/scrollTop/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element.&quot;&gt;.scrollTop()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DATA&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-3 jQuery-data&quot; data-src=&quot;jQuery.data&quot; href=&quot;http://api.jquery.com/jQuery.data/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Store arbitrary data associated with the specified element and/or return the value that was set.&quot;&gt;jQuery.data()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-3 data&quot; data-src=&quot;jQuery.fn.data&quot; href=&quot;http://api.jquery.com/data/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Store arbitrary data associated with the matched elements or return the value at the named data store for the first element in the set of matched elements.&quot;&gt;.data()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 jQuery-hasData&quot; data-src=&quot;jQuery.hasData&quot; href=&quot;http://api.jquery.com/jQuery.hasData/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine whether an element has any jQuery data associated with it.&quot;&gt;jQuery.hasData()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-3 jQuery-removeData&quot; data-src=&quot;jQuery.removeData&quot; href=&quot;http://api.jquery.com/jQuery.removeData/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a previously-stored piece of data.&quot;&gt;jQuery.removeData()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-3 removeData&quot; data-src=&quot;jQuery.fn.removeData&quot; href=&quot;http://api.jquery.com/removeData/&quot; style=&quot;background: none; border: 0px; color: #4d1900; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a previously-stored piece of data.&quot;&gt;.removeData()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;manipulation&quot; id=&quot;manipulation&quot; style=&quot;background: rgb(228, 73, 161); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Manipulation&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
COPYING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 clone&quot; data-src=&quot;jQuery.fn.clone&quot; href=&quot;http://api.jquery.com/clone/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Create a deep copy of the set of matched elements.&quot;&gt;.clone()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM INSERTION, AROUND&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 wrap&quot; data-src=&quot;jQuery.fn.wrap&quot; href=&quot;http://api.jquery.com/wrap/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Wrap an HTML structure around each element in the set of matched elements.&quot;&gt;.wrap()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 wrapAll&quot; data-src=&quot;jQuery.fn.wrapAll&quot; href=&quot;http://api.jquery.com/wrapAll/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Wrap an HTML structure around all elements in the set of matched elements.&quot;&gt;.wrapAll()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 wrapInner&quot; data-src=&quot;jQuery.fn.wrapInner&quot; href=&quot;http://api.jquery.com/wrapInner/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Wrap an HTML structure around the content of each element in the set of matched elements.&quot;&gt;.wrapInner()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM INSERTION, INSIDE&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 append&quot; data-src=&quot;jQuery.fn.append&quot; href=&quot;http://api.jquery.com/append/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert content, specified by the parameter, to the end of each element in the set of matched elements.&quot;&gt;&lt;span style=&quot;color: #430a2a;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;append()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 appendTo&quot; data-src=&quot;jQuery.fn.appendTo&quot; href=&quot;http://api.jquery.com/appendTo/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert every element in the set of matched elements to the end of the target.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.appendTo()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 html&quot; data-src=&quot;jQuery.fn.html&quot; href=&quot;http://api.jquery.com/html/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the HTML contents of the first element in the set of matched elements or set the HTML contents of every matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.html()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 prepend&quot; data-src=&quot;jQuery.fn.prepend&quot; href=&quot;http://api.jquery.com/prepend/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.prepend()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 prependTo&quot; data-src=&quot;jQuery.fn.prependTo&quot; href=&quot;http://api.jquery.com/prependTo/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert every element in the set of matched elements to the beginning of the target.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.prependTo()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 text&quot; data-src=&quot;jQuery.fn.text&quot; href=&quot;http://api.jquery.com/text/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the combined text contents of each element in the set of matched elements, including their descendants, or set the text contents of the matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.text()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM INSERTION, OUTSIDE&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 after&quot; data-src=&quot;jQuery.fn.after&quot; href=&quot;http://api.jquery.com/after/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert content, specified by the parameter, after each element in the set of matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.after()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 before&quot; data-src=&quot;jQuery.fn.before&quot; href=&quot;http://api.jquery.com/before/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert content, specified by the parameter, before each element in the set of matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.before()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 insertAfter&quot; data-src=&quot;jQuery.fn.insertAfter&quot; href=&quot;http://api.jquery.com/insertAfter/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert every element in the set of matched elements after the target.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.insertAfter()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 insertBefore&quot; data-src=&quot;jQuery.fn.insertBefore&quot; href=&quot;http://api.jquery.com/insertBefore/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Insert every element in the set of matched elements before the target.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.insertBefore()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM REMOVAL&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 detach&quot; data-src=&quot;jQuery.fn.detach&quot; href=&quot;http://api.jquery.com/detach/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove the set of matched elements from the DOM.&quot;&gt;.detach()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 empty&quot; data-src=&quot;jQuery.fn.empty&quot; href=&quot;http://api.jquery.com/empty/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove all child nodes of the set of matched elements from the DOM.&quot;&gt;.empty()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 remove&quot; data-src=&quot;jQuery.fn.remove&quot; href=&quot;http://api.jquery.com/remove/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove the set of matched elements from the DOM.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.remove()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 unwrap&quot; data-src=&quot;jQuery.fn.unwrap&quot; href=&quot;http://api.jquery.com/unwrap/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place.&quot;&gt;.unwrap()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM REPLACEMENT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 replaceAll&quot; data-src=&quot;jQuery.fn.replaceAll&quot; href=&quot;http://api.jquery.com/replaceAll/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Replace each target element with the set of matched elements.&quot;&gt;.replaceAll()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 replaceWith&quot; data-src=&quot;jQuery.fn.replaceWith&quot; href=&quot;http://api.jquery.com/replaceWith/&quot; style=&quot;background: none; border: 0px; color: #430a2a; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Replace each element in the set of matched elements with the provided new content.&quot;&gt;.replaceWith()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;traversing&quot; id=&quot;traversing&quot; style=&quot;background: rgb(175, 79, 221); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Traversing&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
FILTERING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-2 eq&quot; data-src=&quot;jQuery.fn.eq&quot; href=&quot;http://api.jquery.com/eq/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to the one at the specified index.&quot;&gt;.eq()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 filter&quot; data-src=&quot;jQuery.fn.filter&quot; href=&quot;http://api.jquery.com/filter/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to those that match the selector or pass the function&#39;s test.&quot;&gt;.filter()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 first&quot; data-src=&quot;jQuery.fn.first&quot; href=&quot;http://api.jquery.com/first/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to the first in the set.&quot;&gt;.first()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 has&quot; data-src=&quot;jQuery.fn.has&quot; href=&quot;http://api.jquery.com/has/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element.&quot;&gt;.has()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 is&quot; data-src=&quot;jQuery.fn.is&quot; href=&quot;http://api.jquery.com/is/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Check the current matched set of elements against a selector and return true if at least one of these elements matches the selector.&quot;&gt;.is()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 last&quot; data-src=&quot;jQuery.fn.last&quot; href=&quot;http://api.jquery.com/last/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to the final one in the set.&quot;&gt;.last()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 map&quot; data-src=&quot;jQuery.fn.map&quot; href=&quot;http://api.jquery.com/map/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Pass each element in the current matched set through a function, producing a new jQuery object containing the return values.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.map()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 not&quot; data-src=&quot;jQuery.fn.not&quot; href=&quot;http://api.jquery.com/not/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove elements from the set of matched elements.&quot;&gt;.not()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 slice&quot; data-src=&quot;jQuery.fn.slice&quot; href=&quot;http://api.jquery.com/slice/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reduce the set of matched elements to a subset specified by a range of indices.&quot;&gt;.slice()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
MISCELLANEOUS TRAVERSING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 add&quot; data-src=&quot;jQuery.fn.add&quot; href=&quot;http://api.jquery.com/add/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add elements to the set of matched elements.&quot;&gt;.add()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 andSelf v1-8&#39;-d&quot; data-src=&quot;jQuery.fn.andSelf&quot; href=&quot;http://api.jquery.com/andSelf/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add the previous set of elements on the stack to the current set.&quot;&gt;.andSelf()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 contents&quot; data-src=&quot;jQuery.fn.contents&quot; href=&quot;http://api.jquery.com/contents/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the children of each element in the set of matched elements, including text and comment nodes.&quot;&gt;.contents()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 each&quot; data-src=&quot;jQuery.fn.each&quot; href=&quot;http://api.jquery.com/each/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Iterate over a jQuery object, executing a function for each matched element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.each()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 end&quot; data-src=&quot;jQuery.fn.end&quot; href=&quot;http://api.jquery.com/end/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;End the most recent filtering operation in the current chain and return the set of matched elements to its previous state.&quot;&gt;.end()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
TREE TRAVERSAL&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-8 addBack&quot; data-src=&quot;jQuery.fn.addBack&quot; href=&quot;http://api.jquery.com/addBack/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add the previous set of elements on the stack to the current set, optionally filtered by a selector.&quot;&gt;.addBack()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 children&quot; data-src=&quot;jQuery.fn.children&quot; href=&quot;http://api.jquery.com/children/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the children of each element in the set of matched elements, optionally filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.children()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 closest&quot; data-src=&quot;jQuery.fn.closest&quot; href=&quot;http://api.jquery.com/closest/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the first ancestor element that matches the selector, beginning at the current element and progressing up through the DOM tree.&quot;&gt;.closest()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 find&quot; data-src=&quot;jQuery.fn.find&quot; href=&quot;http://api.jquery.com/find/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the descendants of each element in the current set of matched elements, filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.find()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 next&quot; data-src=&quot;jQuery.fn.next&quot; href=&quot;http://api.jquery.com/next/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.next()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 nextAll&quot; data-src=&quot;jQuery.fn.nextAll&quot; href=&quot;http://api.jquery.com/nextAll/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get all following siblings of each element in the set of matched elements, optionally filtered by a selector.&quot;&gt;.nextAll()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 nextUntil&quot; data-src=&quot;jQuery.fn.nextUntil&quot; href=&quot;http://api.jquery.com/nextUntil/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get all following siblings of each element up to but not including the element matched by the selector.&quot;&gt;.nextUntil()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 parent&quot; data-src=&quot;jQuery.fn.parent&quot; href=&quot;http://api.jquery.com/parent/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the parent of each element in the current set of matched elements, optionally filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.parent()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 parents&quot; data-src=&quot;jQuery.fn.parents&quot; href=&quot;http://api.jquery.com/parents/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.parents()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 parentsUntil&quot; data-src=&quot;jQuery.fn.parentsUntil&quot; href=&quot;http://api.jquery.com/parentsUntil/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector.&quot;&gt;.parentsUntil()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 prev&quot; data-src=&quot;jQuery.fn.prev&quot; href=&quot;http://api.jquery.com/prev/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.prev()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 prevAll&quot; data-src=&quot;jQuery.fn.prevAll&quot; href=&quot;http://api.jquery.com/prevAll/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector.&quot;&gt;.prevAll()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 prevUntil&quot; data-src=&quot;jQuery.fn.prevUntil&quot; href=&quot;http://api.jquery.com/prevUntil/&quot; style=&quot;background: none; border: 0px; color: #300c40; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get all preceding siblings of each element up to but not including the element matched by the selector.&quot;&gt;.prevUntil()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 siblings&quot; data-src=&quot;jQuery.fn.siblings&quot; href=&quot;http://api.jquery.com/siblings/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Get the siblings of each element in the set of matched elements, optionally filtered by a selector.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.siblings()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;events&quot; id=&quot;events&quot; style=&quot;background: rgb(80, 123, 213); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Events&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
BROWSER EVENTS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 error v1-8-d old-version&quot; data-src=&quot;jQuery.fn.error&quot; href=&quot;http://api.jquery.com/error/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;error&#39; JavaScript event.&quot;&gt;.error()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 resize&quot; data-src=&quot;jQuery.fn.resize&quot; href=&quot;http://api.jquery.com/resize/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;resize&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.resize()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 scroll&quot; data-src=&quot;jQuery.fn.scroll&quot; href=&quot;http://api.jquery.com/scroll/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;scroll&#39; JavaScript event, or trigger that event on an element.&quot;&gt;.scroll()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOCUMENT LOADING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 jQuery-holdReady&quot; data-src=&quot;jQuery.holdReady&quot; href=&quot;http://api.jquery.com/jQuery.holdReady/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Holds or releases the execution of jQuery&#39;s ready event.&quot;&gt;.holdReady()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 load-event v1-8-d old-version&quot; data-src=&quot;jQuery.fn.load&quot; href=&quot;http://api.jquery.com/load-event/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;load&#39; JavaScript event.&quot;&gt;.load()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ready&quot; data-src=&quot;jQuery.fn.ready&quot; href=&quot;http://api.jquery.com/ready/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Specify a function to execute when the DOM is fully loaded.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.ready()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 unload v1-8-d old-version&quot; data-src=&quot;jQuery.fn.unload&quot; href=&quot;http://api.jquery.com/unload/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;unload&#39; JavaScript event.&quot;&gt;.unload()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
EVENT HANDLER ATTACHMENT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 bind&quot; data-src=&quot;jQuery.fn.bind&quot; href=&quot;http://api.jquery.com/bind/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach a handler to an event for the elements.&quot;&gt;.bind()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-2 delegate&quot; data-src=&quot;jQuery.fn.delegate&quot; href=&quot;http://api.jquery.com/delegate/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.&quot;&gt;.delegate()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 die v1-7-d v1-9-r removed old-version&quot; data-src=&quot;jQuery.fn.die&quot; href=&quot;http://api.jquery.com/die/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Remove all event handlers previously attached using .live() from the elements.&quot;&gt;.die()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 live v1-7-d v1-9-r removed old-version&quot; data-src=&quot;jQuery.fn.live&quot; href=&quot;http://api.jquery.com/live/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Attach a handler to the event for all elements which match the current selector, now and in the future.&quot;&gt;.live()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 off&quot; data-src=&quot;jQuery.fn.off&quot; href=&quot;http://api.jquery.com/off/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove an event handler.&quot;&gt;.off()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 on&quot; data-src=&quot;jQuery.fn.on&quot; href=&quot;http://api.jquery.com/on/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach an event handler function for one or more events to the selected elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.on()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1 one&quot; data-src=&quot;jQuery.fn.one&quot; href=&quot;http://api.jquery.com/one/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach a handler to an event for the elements. The handler is executed at most once per element.&quot;&gt;.one()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 trigger&quot; data-src=&quot;jQuery.fn.trigger&quot; href=&quot;http://api.jquery.com/trigger/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Execute all handlers and behaviors attached to the matched elements for the given event type.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.trigger()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 triggerHandler&quot; data-src=&quot;jQuery.fn.triggerHandler&quot; href=&quot;http://api.jquery.com/triggerHandler/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Execute all handlers attached to an element for an event.&quot;&gt;.triggerHandler()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 unbind&quot; data-src=&quot;jQuery.fn.unbind&quot; href=&quot;http://api.jquery.com/unbind/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a previously-attached event handler from the elements.&quot;&gt;.unbind()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-2 undelegate&quot; data-src=&quot;jQuery.fn.undelegate&quot; href=&quot;http://api.jquery.com/undelegate/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a handler from the event for all elements which match the current selector, now or in the future, based upon a specific set of root elements.&quot;&gt;.undelegate()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
FORM EVENTS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 blur&quot; data-src=&quot;jQuery.fn.blur&quot; href=&quot;http://api.jquery.com/blur/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;blur&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.blur()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 change&quot; data-src=&quot;jQuery.fn.change&quot; href=&quot;http://api.jquery.com/change/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;change&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.change()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 focus&quot; data-src=&quot;jQuery.fn.focus&quot; href=&quot;http://api.jquery.com/focus/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;focus&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.focus()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 select&quot; data-src=&quot;jQuery.fn.select&quot; href=&quot;http://api.jquery.com/select/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;select&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.select()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 submit&quot; data-src=&quot;jQuery.fn.submit&quot; href=&quot;http://api.jquery.com/submit/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;submit&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.submit()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
KEYBOARD EVENTS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 keydown&quot; data-src=&quot;jQuery.fn.keydown&quot; href=&quot;http://api.jquery.com/keydown/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;keydown&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.keydown()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 keypress&quot; data-src=&quot;jQuery.fn.keypress&quot; href=&quot;http://api.jquery.com/keypress/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;keypress&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.keypress()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 keyup&quot; data-src=&quot;jQuery.fn.keyup&quot; href=&quot;http://api.jquery.com/keyup/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;keyup&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.keyup()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px 0px 0px 10px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
MOUSE EVENTS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 click&quot; data-src=&quot;jQuery.fn.click&quot; href=&quot;http://api.jquery.com/click/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;click&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.click()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 dblclick&quot; data-src=&quot;jQuery.fn.dblclick&quot; href=&quot;http://api.jquery.com/dblclick/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;dblclick&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.dblclick()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 focusin&quot; data-src=&quot;jQuery.fn.focusin&quot; href=&quot;http://api.jquery.com/focusin/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;focusin&#39; JavaScript event.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.focusin()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 focusout&quot; data-src=&quot;jQuery.fn.focusout&quot; href=&quot;http://api.jquery.com/focusout/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;focusout&#39; JavaScript event.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.focusout()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 hover&quot; data-src=&quot;jQuery.fn.hover&quot; href=&quot;http://api.jquery.com/hover/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.hover()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mousedown&quot; data-src=&quot;jQuery.fn.mousedown&quot; href=&quot;http://api.jquery.com/mousedown/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;mousedown&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mousedown()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mouseenter&quot; data-src=&quot;jQuery.fn.mouseenter&quot; href=&quot;http://api.jquery.com/mouseenter/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mouseenter()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mouseleave&quot; data-src=&quot;jQuery.fn.mouseleave&quot; href=&quot;http://api.jquery.com/mouseleave/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mouseleave()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mousemove&quot; data-src=&quot;jQuery.fn.mousemove&quot; href=&quot;http://api.jquery.com/mousemove/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;mousemove&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mousemove()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mouseout&quot; data-src=&quot;jQuery.fn.mouseout&quot; href=&quot;http://api.jquery.com/mouseout/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;mouseout&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mouseout()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mouseover&quot; data-src=&quot;jQuery.fn.mouseover&quot; href=&quot;http://api.jquery.com/mouseover/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;mouseover&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mouseover()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 mouseup&quot; data-src=&quot;jQuery.fn.mouseup&quot; href=&quot;http://api.jquery.com/mouseup/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Bind an event handler to the &#39;mouseup&#39; JavaScript event, or trigger that event on an element.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.mouseup()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 toggle-event v1-8-d v1-9-r removed old-version&quot; data-src=&quot;jQuery.fn.toggle&quot; href=&quot;http://api.jquery.com/toggle-event/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Bind two or more handlers to the matched elements, to be executed on alternate clicks.&quot;&gt;.toggle()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
EVENT OBJECT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-currentTarget&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.currentTarget/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The current DOM element within the event bubbling phase.&quot;&gt;event.currentTarget&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1 event-data&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.data/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The optional data passed to jQuery.fn.bind when the current executing handler was bound.&quot;&gt;event.data&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-isDefaultPrevented&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.isDefaultPrevented/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Returns whether event.preventDefault() was ever called on this event object.&quot;&gt;event.isDefaultPrevented()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-isImmediatePropagationStopped&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.isImmediatePropagationStopped/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Returns whether event.stopImmediatePropagation() was ever called on this event object.&quot;&gt;event.isImmediatePropagationStopped()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-isPropagationStopped&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.isPropagationStopped/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Returns whether event.stopPropagation() was ever called on this event object.&quot;&gt;event.isPropagationStopped()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 event-namespace&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.namespace/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The namespace specified when the event was triggered.&quot;&gt;event.namespace&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0-4 event-pageX&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.pageX/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The mouse position relative to the left edge of the document.&quot;&gt;event.pageX&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0-4 event-pageY&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.pageY/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The mouse position relative to the top edge of the document.&quot;&gt;event.pageY&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 event-preventDefault&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.preventDefault/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;If this method is called, the default action of the event will not be triggered.&quot;&gt;event.preventDefault()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 event-relatedTarget&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.relatedTarget/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The other DOM element involved in the event, if any.&quot;&gt;event.relatedTarget&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-result&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.result/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The last value returned by an event handler that was triggered by this event, unless the value was undefined.&quot;&gt;event.result&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 event-stopImmediatePropagation&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.stopImmediatePropagation/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Prevents other event handlers from being called.&quot;&gt;event.stopImmediatePropagation()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 event-stopPropagation&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.stopPropagation/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.&quot;&gt;event.stopPropagation()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 event-target&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.target/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The DOM element that initiated the event.&quot;&gt;event.target&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2-6 event-timeStamp&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.timeStamp/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The difference in milliseconds between the time an event is triggered and January 1, 1970.&quot;&gt;event.timeStamp&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 event-type&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.type/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Describes the nature of the event.&quot;&gt;event.type&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-3 event-which&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/event.which/&quot; style=&quot;background: none; border: 0px; color: #0f1e3e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;For key or button events, this attribute indicates the specific button or key that was pressed.&quot;&gt;event.which&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;effects&quot; id=&quot;effects&quot; style=&quot;background: rgb(28, 177, 218); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Effects&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
BASICS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 hide&quot; data-src=&quot;jQuery.fn.hide&quot; href=&quot;http://api.jquery.com/hide/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Hide the matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.hide()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 show&quot; data-src=&quot;jQuery.fn.show&quot; href=&quot;http://api.jquery.com/show/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display the matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.show()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 toggle&quot; data-src=&quot;jQuery.fn.toggle&quot; href=&quot;http://api.jquery.com/toggle/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display or hide the matched elements.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.toggle()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
CUSTOM&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 animate&quot; data-src=&quot;jQuery.fn.animate&quot; href=&quot;http://api.jquery.com/animate/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Perform a custom animation of a set of CSS properties.&quot;&gt;.animate()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 clearQueue&quot; data-src=&quot;jQuery.fn.clearQueue&quot; href=&quot;http://api.jquery.com/clearQueue/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove from the queue all items that have not yet been run.&quot;&gt;.clearQueue()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 delay&quot; data-src=&quot;jQuery.fn.delay&quot; href=&quot;http://api.jquery.com/delay/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Set a timer to delay execution of subsequent items in the queue.&quot;&gt;.delay()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 dequeue&quot; data-src=&quot;jQuery.fn.dequeue&quot; href=&quot;http://api.jquery.com/dequeue/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Execute the next function on the queue for the matched elements.&quot;&gt;.dequeue()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 jQuery-dequeue&quot; data-src=&quot;jQuery.dequeue&quot; href=&quot;http://api.jquery.com/jQuery.dequeue/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Execute the next function on the queue for the matched element.&quot;&gt;jQuery.dequeue()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-9 finish&quot; data-src=&quot;jQuery.fn.finish&quot; href=&quot;http://api.jquery.com/finish/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Stop the currently-running animation, remove all queued animations, and complete all animations for the matched elements.&quot;&gt;.finish()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 jQuery-fx-interval&quot; data-src=&quot;jQuery.fx.interval&quot; href=&quot;http://api.jquery.com/jQuery.fx.interval/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The rate (in milliseconds) at which animations fire.&quot;&gt;jQuery.fx.interval&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 jQuery-fx-off&quot; data-src=&quot;jQuery.fx.off&quot; href=&quot;http://api.jquery.com/jQuery.fx.off/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Globally disable all animations.&quot;&gt;jQuery.fx.off&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 queue&quot; data-src=&quot;jQuery.fn.queue&quot; href=&quot;http://api.jquery.com/queue/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Show or manipulate the queue of functions to be executed on the matched elements.&quot;&gt;.queue()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 jQuery-queue&quot; data-src=&quot;jQuery.queue&quot; href=&quot;http://api.jquery.com/jQuery.queue/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Show or manipulate the queue of functions to be executed on the matched element.&quot;&gt;jQuery.queue()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 stop&quot; data-src=&quot;jQuery.fn.stop&quot; href=&quot;http://api.jquery.com/stop/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Stop the currently-running animation on the matched elements.&quot;&gt;.stop()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
FADING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 fadeIn&quot; data-src=&quot;jQuery.fn.fadeIn&quot; href=&quot;http://api.jquery.com/fadeIn/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display the matched elements by fading them to opaque.&quot;&gt;.fadeIn()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 fadeOut&quot; data-src=&quot;jQuery.fn.fadeOut&quot; href=&quot;http://api.jquery.com/fadeOut/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Hide the matched elements by fading them to transparent.&quot;&gt;.fadeOut()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 fadeTo&quot; data-src=&quot;jQuery.fn.fadeTo&quot; href=&quot;http://api.jquery.com/fadeTo/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Adjust the opacity of the matched elements.&quot;&gt;.fadeTo()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-4 fadeToggle&quot; data-src=&quot;jQuery.fn.fadeToggle&quot; href=&quot;http://api.jquery.com/fadeToggle/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display or hide the matched elements by animating their opacity.&quot;&gt;.fadeToggle()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
SLIDING&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 slideDown&quot; data-src=&quot;jQuery.fn.slideDown&quot; href=&quot;http://api.jquery.com/slideDown/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display the matched elements with a sliding motion.&quot;&gt;.slideDown()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 slideToggle&quot; data-src=&quot;jQuery.fn.slideToggle&quot; href=&quot;http://api.jquery.com/slideToggle/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Display or hide the matched elements with a sliding motion.&quot;&gt;.slideToggle()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 slideUp&quot; data-src=&quot;jQuery.fn.slideUp&quot; href=&quot;http://api.jquery.com/slideUp/&quot; style=&quot;background: none; border: 0px; color: #093744; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Hide the matched elements with a sliding motion.&quot;&gt;.slideUp()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;ajax&quot; id=&quot;ajax&quot; style=&quot;background: rgb(15, 213, 92); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Ajax&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
GLOBAL AJAX EVENT HANDLERS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxComplete&quot; data-src=&quot;jQuery.fn.ajaxComplete&quot; href=&quot;http://api.jquery.com/ajaxComplete/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Register a handler to be called when Ajax requests complete. This is an Ajax Event.&quot;&gt;.ajaxComplete()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxError&quot; data-src=&quot;jQuery.fn.ajaxError&quot; href=&quot;http://api.jquery.com/ajaxError/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event.&quot;&gt;.ajaxError()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxSend&quot; data-src=&quot;jQuery.fn.ajaxSend&quot; href=&quot;http://api.jquery.com/ajaxSend/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach a function to be executed before an Ajax request is sent. This is an Ajax Event.&quot;&gt;.ajaxSend()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxStart&quot; data-src=&quot;jQuery.fn.ajaxStart&quot; href=&quot;http://api.jquery.com/ajaxStart/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Register a handler to be called when the first Ajax request begins. This is an Ajax Event.&quot;&gt;.ajaxStart()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxStop&quot; data-src=&quot;jQuery.fn.ajaxStop&quot; href=&quot;http://api.jquery.com/ajaxStop/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Register a handler to be called when all Ajax requests have completed. This is an Ajax Event.&quot;&gt;.ajaxStop()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 ajaxSuccess&quot; data-src=&quot;jQuery.fn.ajaxSuccess&quot; href=&quot;http://api.jquery.com/ajaxSuccess/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event.&quot;&gt;.ajaxSuccess()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
HELPER FUNCTIONS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 jQuery-param&quot; data-src=&quot;jQuery.param&quot; href=&quot;http://api.jquery.com/jQuery.param/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request.&quot;&gt;jQuery.param()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 serialize&quot; data-src=&quot;jQuery.fn.serialize&quot; href=&quot;http://api.jquery.com/serialize/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Encode a set of form elements as a string for submission.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.serialize()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 serializeArray&quot; data-src=&quot;jQuery.fn.serializeArray&quot; href=&quot;http://api.jquery.com/serializeArray/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Encode a set of form elements as an array of names and values.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.serializeArray()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
LOW-LEVEL INTERFACE&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-ajax&quot; data-src=&quot;jQuery.ajax&quot; href=&quot;http://api.jquery.com/jQuery.ajax/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Perform an asynchronous HTTP (Ajax) request.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.ajax()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1 jQuery-ajaxSetup&quot; data-src=&quot;jQuery.ajaxSetup&quot; href=&quot;http://api.jquery.com/jQuery.ajaxSetup/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Set default values for future Ajax requests.&quot;&gt;jQuery.ajaxSetup()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
SHORTHAND METHODS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-get&quot; data-src=&quot;jQuery.get&quot; href=&quot;http://api.jquery.com/jQuery.get/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Load data from the server using a HTTP GET request.&quot;&gt;jQuery.get()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-getJSON&quot; data-src=&quot;jQuery.getJSON&quot; href=&quot;http://api.jquery.com/jQuery.getJSON/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Load JSON-encoded data from the server using a GET HTTP request.&quot;&gt;jQuery.getJSON()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-getScript&quot; data-src=&quot;jQuery.getScript&quot; href=&quot;http://api.jquery.com/jQuery.getScript/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Load a JavaScript file from the server using a GET HTTP request, then execute it.&quot;&gt;jQuery.getScript()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 load&quot; data-src=&quot;jQuery.fn.load&quot; href=&quot;http://api.jquery.com/load/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Load data from the server and place the returned HTML into the matched element.&quot;&gt;.load()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-post&quot; data-src=&quot;jQuery.post&quot; href=&quot;http://api.jquery.com/jQuery.post/&quot; style=&quot;background: none; border: 0px; color: #05481e; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Load data from the server using a HTTP POST request.&quot;&gt;jQuery.post()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class=&quot;core&quot; id=&quot;core&quot; style=&quot;background: rgb(157, 244, 23); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; color: #333333; flex-shrink: 0; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 16px; line-height: 22.3999996185303px; margin: 10px 10px 0px 0px; outline: none; padding: 10px 10px 5px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-width: 1px; border-style: none none solid; font-size: 1.2em; line-height: 1.1; margin: 0px 0px 15px; outline: none; padding: 0px; position: relative;&quot;&gt;
Core&lt;/h1&gt;
&lt;div style=&quot;align-content: flex-start; border: none; display: flex; flex-shrink: 0; font-size: 1em; margin: 0px; outline: none; padding: 0px;&quot;&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
JQUERY OBJECT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery&quot; data-src=&quot;jQuery&quot; href=&quot;http://api.jquery.com/jQuery/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string.&quot;&gt;jQuery()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-noConflict&quot; data-src=&quot;jQuery.noConflict&quot; href=&quot;http://api.jquery.com/jQuery.noConflict/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Relinquish jQuery&#39;s control of the $ variable.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.noConflict()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 jQuery-sub v1-7-d v1-9-r removed old-version&quot; data-src=&quot;jQuery.sub&quot; href=&quot;http://api.jquery.com/jQuery.sub/&quot; style=&quot;background: none; border: 0px; color: #2d4903; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object.&quot;&gt;jQuery.sub()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 jQuery-when&quot; data-src=&quot;jQuery.when&quot; href=&quot;http://api.jquery.com/jQuery.when/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.&quot;&gt;jQuery.when()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
UTILITIES&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-boxModel v1-3-d old-version&quot; data-src=&quot;jQuery.boxModel&quot; href=&quot;http://api.jquery.com/jQuery.boxModel/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;States if the current page, in the user&#39;s browser, is being rendered using the W3C CSS Box Model.&quot;&gt;jQuery.boxModel&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-browser v1-3-d v1-9-r removed old-version&quot; data-src=&quot;jQuery.browser&quot; href=&quot;http://api.jquery.com/jQuery.browser/&quot; style=&quot;background: none; border: 0px; color: #2d4903; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Contains flags for the useragent, read from navigator.userAgent. We recommend against using this property; please try to use feature detection instead (see jQuery.support). jQuery.browser may be moved to a plugin in a future release of jQuery.&quot;&gt;jQuery.browser&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 jQuery-contains&quot; data-src=&quot;jQuery.contains&quot; href=&quot;http://api.jquery.com/jQuery.contains/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Check to see if a DOM node is within another DOM node.&quot;&gt;jQuery.contains()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-each&quot; data-src=&quot;jQuery.each&quot; href=&quot;http://api.jquery.com/jQuery.each/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function&#39;s arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.each()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-extend&quot; data-src=&quot;jQuery.extend&quot; href=&quot;http://api.jquery.com/jQuery.extend/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Merge the contents of two or more objects together into the first object.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.extend()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0-4 jQuery-globalEval&quot; data-src=&quot;jQuery.globalEval&quot; href=&quot;http://api.jquery.com/jQuery.globalEval/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Execute some JavaScript code globally.&quot;&gt;jQuery.globalEval()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-grep&quot; data-src=&quot;jQuery.grep&quot; href=&quot;http://api.jquery.com/jQuery.grep/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Finds the elements of an array which satisfy a filter function. The original array is not affected.&quot;&gt;jQuery.grep()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 jQuery-inArray&quot; data-src=&quot;jQuery.inArray&quot; href=&quot;http://api.jquery.com/jQuery.inArray/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Search for a specified value within an array and return its index (or -1 if not found).&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.inArray()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 jQuery-isArray&quot; data-src=&quot;jQuery.isArray&quot; href=&quot;http://api.jquery.com/jQuery.isArray/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine whether the argument is an array.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.isArray()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 jQuery-isEmptyObject&quot; data-src=&quot;jQuery.isEmptyObject&quot; href=&quot;http://api.jquery.com/jQuery.isEmptyObject/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Check to see if an object is empty (contains no properties).&quot;&gt;jQuery.isEmptyObject()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 jQuery-isFunction&quot; data-src=&quot;jQuery.isFunction&quot; href=&quot;http://api.jquery.com/jQuery.isFunction/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine if the argument passed is a Javascript function object.&quot;&gt;jQuery.isFunction()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 jQuery-isNumeric&quot; data-src=&quot;jQuery.isNumeric&quot; href=&quot;http://api.jquery.com/jQuery.isNumeric/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determines whether its argument is a number.&quot;&gt;jQuery.isNumeric()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 jQuery-isPlainObject&quot; data-src=&quot;jQuery.isPlainObject&quot; href=&quot;http://api.jquery.com/jQuery.isPlainObject/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Check to see if an object is a plain object (created using &#39;{}&#39; or &#39;new Object&#39;).&quot;&gt;jQuery.isPlainObject()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 jQuery-isWindow&quot; data-src=&quot;jQuery.isWindow&quot; href=&quot;http://api.jquery.com/jQuery.isWindow/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine whether the argument is a window.&quot;&gt;jQuery.isWindow()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-4 jQuery-isXMLDoc&quot; data-src=&quot;jQuery.isXMLDoc&quot; href=&quot;http://api.jquery.com/jQuery.isXMLDoc/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Check to see if a DOM node is within an XML document (or is an XML document).&quot;&gt;jQuery.isXMLDoc()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-2 jQuery-makeArray&quot; data-src=&quot;jQuery.makeArray&quot; href=&quot;http://api.jquery.com/jQuery.makeArray/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Convert an array-like object into a true JavaScript array.&quot;&gt;jQuery.makeArray()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-map&quot; data-src=&quot;jQuery.map&quot; href=&quot;http://api.jquery.com/jQuery.map/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Translate all items in an array or array-like object to another array of items.&quot;&gt;jQuery.map()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-merge&quot; data-src=&quot;jQuery.merge&quot; href=&quot;http://api.jquery.com/jQuery.merge/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Merge the contents of two arrays together into the first array.&quot;&gt;jQuery.merge()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 jQuery-noop&quot; data-src=&quot;jQuery.noop&quot; href=&quot;http://api.jquery.com/jQuery.noop/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;An empty function.&quot;&gt;jQuery.noop()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 jQuery-now&quot; data-src=&quot;jQuery.now&quot; href=&quot;http://api.jquery.com/jQuery.now/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Return a number representing the current time.&quot;&gt;jQuery.now()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-8 jQuery-parseHTML&quot; data-src=&quot;jQuery.parseHTML&quot; href=&quot;http://api.jquery.com/jQuery.parseHTML/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Parses a string into an array of DOM nodes.&quot;&gt;jQuery.parseHTML()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-1 jQuery-parseJSON&quot; data-src=&quot;jQuery.parseJSON&quot; href=&quot;http://api.jquery.com/jQuery.parseJSON/&quot; style=&quot;background: none; border: 0px; color: #6699cc; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Takes a well-formed JSON string and returns the resulting JavaScript object.&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;jQuery.parseJSON()&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 jQuery-parseXML&quot; data-src=&quot;jQuery.parseXML&quot; href=&quot;http://api.jquery.com/jQuery.parseXML/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Parses a string into an XML document.&quot;&gt;jQuery.parseXML()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 jQuery-proxy&quot; data-src=&quot;jQuery.proxy&quot; href=&quot;http://api.jquery.com/jQuery.proxy/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Takes a function and returns a new one that will always have a particular context.&quot;&gt;jQuery.proxy()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 jQuery-support&quot; data-src=&quot;jQuery.support&quot; href=&quot;http://api.jquery.com/jQuery.support/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;A collection of properties that represent the presence of different browser features or bugs.&quot;&gt;jQuery.support&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jQuery-trim&quot; data-src=&quot;jQuery.trim&quot; href=&quot;http://api.jquery.com/jQuery.trim/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove the whitespace from the beginning and end of a string.&quot;&gt;jQuery.trim()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-3 jQuery-type&quot; data-src=&quot;jQuery.type&quot; href=&quot;http://api.jquery.com/jQuery.type/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine the internal JavaScript [[Class]] of an object.&quot;&gt;jQuery.type()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-1-3 jQuery-unique&quot; data-src=&quot;jQuery.unique&quot; href=&quot;http://api.jquery.com/jQuery.unique/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers.&quot;&gt;jQuery.unique()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px 0px 0px 10px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DOM ELEMENT METHODS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 get&quot; data-src=&quot;jQuery.fn.get&quot; href=&quot;http://api.jquery.com/get/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Retrieve the DOM elements matched by the jQuery object.&quot;&gt;.get()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 index&quot; data-src=&quot;jQuery.fn.index&quot; href=&quot;http://api.jquery.com/index/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Search for a given element from among the matched elements.&quot;&gt;.index()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 size v1-8-d old-version&quot; data-src=&quot;jQuery.fn.size&quot; href=&quot;http://api.jquery.com/size/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;Return the number of elements in the jQuery object.&quot;&gt;.size()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4 toArray&quot; data-src=&quot;jQuery.fn.toArray&quot; href=&quot;http://api.jquery.com/toArray/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Retrieve all the DOM elements contained in the jQuery set, as an array.&quot;&gt;.toArray()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
INTERNALS&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 jquery-2&quot; data-src=&quot;jQuery.fn.jquery&quot; href=&quot;http://api.jquery.com/jquery-2/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;A string containing the jQuery version number.&quot;&gt;.jquery&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 context v1-10-d old-version&quot; data-src=&quot;jQuery.fn.context&quot; href=&quot;http://api.jquery.com/context/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;The DOM node context originally passed to jQuery(); if none was passed then context will likely be the document.&quot;&gt;.context&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-4-1 jQuery-error&quot; data-src=&quot;jQuery.error&quot; href=&quot;http://api.jquery.com/jQuery.error/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Takes a string and throws an exception containing it.&quot;&gt;jQuery.error()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 length&quot; data-src=&quot;jQuery.fn.length&quot; href=&quot;http://api.jquery.com/length/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;The number of elements in the jQuery object.&quot;&gt;.length&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-0 pushStack&quot; data-src=&quot;jQuery.fn.pushStack&quot; href=&quot;http://api.jquery.com/pushStack/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add a collection of DOM elements onto the jQuery stack.&quot;&gt;.pushStack()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-3 selector&quot; data-src=&quot;jQuery.fn.selector&quot; href=&quot;http://api.jquery.com/selector/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;A selector representing selector originally passed to jQuery().&quot;&gt;.selector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
DEFERRED OBJECT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 deferred-always&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.always/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add handlers to be called when the Deferred object is either resolved or rejected.&quot;&gt;deferred.always()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-done&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.done/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add handlers to be called when the Deferred object is resolved.&quot;&gt;deferred.done()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-fail&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.fail/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add handlers to be called when the Deferred object is rejected.&quot;&gt;deferred.fail()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-isRejected v1-7-d v1-8-r removed old-version&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.isRejected/&quot; style=&quot;background: none; border: 0px; color: #2d4903; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Determine whether a Deferred object has been rejected.&quot;&gt;deferred.isRejected()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-isResolved v1-7-d v1-8-r removed old-version&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.isResolved/&quot; style=&quot;background: none; border: 0px; color: #2d4903; cursor: not-allowed; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: line-through;&quot; title=&quot;Determine whether a Deferred object has been resolved.&quot;&gt;deferred.isResolved()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 deferred-notify&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.notify/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Call the progressCallbacks on a Deferred object with the given args.&quot;&gt;deferred.notify()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 deferred-notifyWith&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.notifyWith/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Call the progressCallbacks on a Deferred object with the given context and args.&quot;&gt;deferred.notifyWith()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 deferred-pipe v1-8-d old-version&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.pipe/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; opacity: 0.3; padding: 2px; text-decoration: none;&quot; title=&quot;Utility method to filter and/or chain Deferreds.&quot;&gt;deferred.pipe()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 deferred-progress&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.progress/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add handlers to be called when the Deferred object generates progress notifications.&quot;&gt;deferred.progress()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-promise&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.promise/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Return a Deferred&#39;s Promise object.&quot;&gt;deferred.promise()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-reject&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.reject/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reject a Deferred object and call any failCallbacks with the given args.&quot;&gt;deferred.reject()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-rejectWith&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.rejectWith/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Reject a Deferred object and call any failCallbacks with the given context and args.&quot;&gt;deferred.rejectWith()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-resolve&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.resolve/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Resolve a Deferred object and call any doneCallbacks with the given args.&quot;&gt;deferred.resolve()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-resolveWith&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.resolveWith/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Resolve a Deferred object and call any doneCallbacks with the given context and args.&quot;&gt;deferred.resolveWith()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 deferred-state&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.state/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine the current state of a Deferred object.&quot;&gt;deferred.state()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-5 deferred-then&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/deferred.then/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add handlers to be called when the Deferred object is resolved or rejected.&quot;&gt;deferred.then()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-6 promise&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/promise/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.&quot;&gt;.promise()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; font-size: 1em; margin: 0px 0px 0px 10px; min-width: 100px; outline: none; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;section style=&quot;border: none; font-size: 1em; margin: 0px 0px 15px; outline: none; padding: 0px;&quot;&gt;&lt;h2 style=&quot;border: none; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 0.9em; line-height: 1em; margin: 0px 0px 2px; outline: none; padding: 0px; position: relative; text-transform: uppercase;&quot;&gt;
CALLBACKS OBJECT&lt;/h2&gt;
&lt;ul style=&quot;font-size: 0.8em; line-height: 1em; list-style: none; margin: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 jQuery-Callbacks&quot; data-src=&quot;jQuery.Callbacks&quot; href=&quot;http://api.jquery.com/jQuery.Callbacks/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;A multi-purpose callbacks list object that provides a powerful way to manage callback lists.&quot;&gt;jQuery.Callbacks()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-add&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.add/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Add a callback or a collection of callbacks to a callback list.&quot;&gt;callbacks.add()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-disable&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.disable/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Disable a callback list from doing anything more.&quot;&gt;callbacks.disable()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-empty&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.empty/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove all of the callbacks from a list.&quot;&gt;callbacks.empty()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-fire&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.fire/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Call all of the callbacks with the given arguments.&quot;&gt;callbacks.fire()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-fired&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.fired/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine if the callbacks have already been called at least once.&quot;&gt;callbacks.fired()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-fireWith&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.fireWith/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Call all callbacks in a list with the given context and arguments.&quot;&gt;callbacks.fireWith()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-has&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.has/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine whether a supplied callback is in a list.&quot;&gt;callbacks.has()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-lock&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.lock/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Lock a callback list in its current state.&quot;&gt;callbacks.lock()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-locked&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.locked/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Determine if the callbacks list has been locked.&quot;&gt;callbacks.locked()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;&lt;a class=&quot;v1-7 callbacks-remove&quot; data-src=&quot;&quot; href=&quot;http://api.jquery.com/callbacks.remove/&quot; style=&quot;background: none; border: 0px; color: #2d4903; display: block; font-size: 1em; margin: 0px; padding: 2px; text-decoration: none;&quot; title=&quot;Remove a callback or a collection of callbacks from a callback list.&quot;&gt;callbacks.remove()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;b style=&quot;background-color: white; color: #333333; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 15px; line-height: 20.7900009155273px;&quot;&gt;Note&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 15px; line-height: 20.7900009155273px;&quot;&gt;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: red; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 15px; line-height: 20.7900009155273px;&quot;&gt;RED&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;Droid Sans&#39;, Helvetica, sans-serif; font-size: 15px; line-height: 20.7900009155273px;&quot;&gt;&amp;nbsp;colored functions/items are frequently used&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/7908969616417093157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2014/09/jquery-110-cheetsheet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7908969616417093157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/7908969616417093157'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2014/09/jquery-110-cheetsheet.html' title='Jquery 1.10 Cheetsheet'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-203857173881599750</id><published>2014-07-24T22:36:00.003-07:00</published><updated>2014-09-22T23:03:09.934-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="kubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Mongodb"/><category scheme="http://www.blogger.com/atom/ns#" term="Next Generation Web"/><category scheme="http://www.blogger.com/atom/ns#" term="Nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>install Nginx PHP mongodb ubuntu</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;border: 0px; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 1.1em; line-height: 1.7em; margin-bottom: 10px; padding: 0px;&quot;&gt;
Install prerequisites&lt;/div&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgb(204, 204, 204) 2px 2px 15px; background: rgb(255, 255, 255); border-color: rgb(204, 204, 204) rgb(106, 133, 0); border-style: solid; border-width: 1px 2px 1px 15px; box-shadow: rgb(204, 204, 204) 2px 2px 15px; color: #666666; font-family: Georgia, serif; font-size: 16px; line-height: 1.2; margin-bottom: 20px; overflow: auto; padding: 15px 20px; position: relative; text-align: justify; text-shadow: none;&quot;&gt;apt-get update
apt-get install php5-cli php5-common php5-cgi php5-curl php5-fpm php5-json php5-mcrypt php5-dev php-pear php-apc
&lt;/pre&gt;
&lt;div style=&quot;border: 0px; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 1.1em; line-height: 1.7em; margin-bottom: 10px; padding: 0px;&quot;&gt;
Enable Mongo&lt;/div&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgb(204, 204, 204) 2px 2px 15px; background: rgb(255, 255, 255); border-color: rgb(204, 204, 204) rgb(106, 133, 0); border-style: solid; border-width: 1px 2px 1px 15px; box-shadow: rgb(204, 204, 204) 2px 2px 15px; color: #666666; font-family: Georgia, serif; font-size: 16px; line-height: 1.2; margin-bottom: 20px; overflow: auto; padding: 15px 20px; position: relative; text-align: justify; text-shadow: none;&quot;&gt;pecl install mongo
echo &quot;extension=mongo.so&quot; &amp;gt;&amp;gt; /etc/php5/fpm/php.ini&lt;/pre&gt;
&lt;div style=&quot;border: 0px; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 1.1em; line-height: 1.7em; margin-bottom: 10px; padding: 0px;&quot;&gt;
Install MongoDB&lt;/div&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgb(204, 204, 204) 2px 2px 15px; background: rgb(255, 255, 255); border-color: rgb(204, 204, 204) rgb(106, 133, 0); border-style: solid; border-width: 1px 2px 1px 15px; box-shadow: rgb(204, 204, 204) 2px 2px 15px; color: #666666; font-family: Georgia, serif; font-size: 16px; line-height: 1.2; margin-bottom: 20px; overflow: auto; padding: 15px 20px; position: relative; text-align: justify; text-shadow: none;&quot;&gt;apt-get install mongodb mongodb-server&lt;/pre&gt;
&lt;div style=&quot;border: 0px; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 1.1em; line-height: 1.7em; margin-bottom: 10px; padding: 0px;&quot;&gt;
Restart Services&lt;/div&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgb(204, 204, 204) 2px 2px 15px; background: rgb(255, 255, 255); border-color: rgb(204, 204, 204) rgb(106, 133, 0); border-style: solid; border-width: 1px 2px 1px 15px; box-shadow: rgb(204, 204, 204) 2px 2px 15px; color: #666666; font-family: Georgia, serif; font-size: 16px; line-height: 1.2; margin-bottom: 20px; overflow: auto; padding: 15px 20px; position: relative; text-align: justify; text-shadow: none;&quot;&gt;service nginx restart
service php5-fpm restart&lt;/pre&gt;
&lt;div style=&quot;border: 0px; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 1.1em; line-height: 1.7em; margin-bottom: 10px; padding: 0px;&quot;&gt;
done&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/203857173881599750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2014/07/install-nginx-php-mongodb-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/203857173881599750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/203857173881599750'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2014/07/install-nginx-php-mongodb-ubuntu.html' title='install Nginx PHP mongodb ubuntu'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-8442356999904151364</id><published>2014-04-09T23:19:00.002-07:00</published><updated>2014-04-09T23:19:34.579-07:00</updated><title type='text'>Installing Apache Solr with Jetty in CentOS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
Apache Solr comes with the Jetty web server to be run as an example server. For single-instance installations, this built-in configuration is robust enough. Enabling Solr as a typical startup service makes management much easier. All of the following directions should be run as the root user and are loosely based on the Solr wiki.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
As a prerequisite, newer versions of Solr require an upgraded version of Java -&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;yum -y install java-1.7.0-openjdk.x86_64
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
To download Solr and drop it into our installation directory (/opt/solr) -&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;curl -O http://www.us.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz
tar xzf solr-4.4.0.tgz
mv solr-4.4.0/example /opt/solr
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
Now to enable Solr as a standard service (since Red Hat typically uses /etc/sysconfig for storing environment variables, this location is changed as well) -&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;&lt;span class=&quot;c&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# Download the Jetty default startup script&lt;/span&gt;
curl -o /etc/init.d/solr http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty.sh

&lt;span class=&quot;c&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# Change file to be executable&lt;/span&gt;
chmod +x /etc/init.d/solr

&lt;span class=&quot;c&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# Change references from Jetty configuration to Solr&lt;/span&gt;
perl -pi -e &lt;span class=&quot;s1&quot; style=&quot;color: #ed9d13;&quot;&gt;&#39;s/\/default\/jetty/\/sysconfig\/solr/g&#39;&lt;/span&gt; /etc/init.d/solr

&lt;span class=&quot;c&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# Enable the Solr service&lt;/span&gt;
chkconfig solr on
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
Creating a dedicated Solr user allows permissions to be explicitly defined and reduce confusion caused by shared user accounts -&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;useradd -r -d /opt/solr -M -c &lt;span class=&quot;s2&quot; style=&quot;color: #ed9d13;&quot;&gt;&quot;Apache Solr&quot;&lt;/span&gt; solr
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
Change permissions of Solr installation to this user&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;chown -R solr:solr /opt/solr/
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px; margin-bottom: 1.625em;&quot;&gt;
The startup script looks for environment variables in /etc/sysconfig/solr. That configuration file should look like -&lt;/div&gt;
&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #2d2d2d; font-family: Frutiger, &#39;Frutiger Linotype&#39;, Univers, Calibri, &#39;Gill Sans&#39;, &#39;Gill Sans MT&#39;, &#39;Myriad Pro&#39;, Myriad, &#39;DejaVu Sans Condensed&#39;, &#39;Liberation Sans&#39;, &#39;Nimbus Sans L&#39;, Tahoma, Geneva, &#39;Helvetica Neue&#39;, Helvetica, Arial, &#39;MS PGothic&#39;, Osaka, sans-serif; font-size: 16px; line-height: 26px;&quot;&gt;
&lt;pre style=&quot;-webkit-box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; background-color: #393939; border: 1px solid rgb(57, 57, 57); box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 2px inset, rgba(255, 255, 255, 0.6) 0px 1px 0px; color: #f2f2f2; font-family: &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace; font-size: 1em; margin-bottom: 1.625em; overflow: auto; padding: 1.625em; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;bash&quot; style=&quot;font-family: monospace, serif; font-size: 1em;&quot;&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #40ffff;&quot;&gt;JAVA_HOME&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;color: #d0d0d0;&quot;&gt;=&lt;/span&gt;/usr/java/default
&lt;span class=&quot;nv&quot; style=&quot;color: #40ffff;&quot;&gt;JAVA_OPTIONS&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;color: #d0d0d0;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;color: #ed9d13;&quot;&gt;&quot;-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS&quot;&lt;/span&gt;
&lt;span class=&quot;nv&quot; style=&quot;color: #40ffff;&quot;&gt;JETTY_HOME&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;color: #d0d0d0;&quot;&gt;=&lt;/span&gt;/opt/solr
&lt;span class=&quot;nv&quot; style=&quot;color: #40ffff;&quot;&gt;JETTY_USER&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;color: #d0d0d0;&quot;&gt;=&lt;/span&gt;solr
&lt;span class=&quot;nv&quot; style=&quot;color: #40ffff;&quot;&gt;JETTY_LOGS&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;color: #d0d0d0;&quot;&gt;=&lt;/span&gt;/opt/solr/logs&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/8442356999904151364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2014/04/installing-apache-solr-with-jetty-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8442356999904151364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8442356999904151364'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2014/04/installing-apache-solr-with-jetty-in.html' title='Installing Apache Solr with Jetty in CentOS'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-2500376785759830164</id><published>2014-03-05T01:21:00.002-08:00</published><updated>2014-03-05T01:21:30.177-08:00</updated><title type='text'>How To Install and Configure Varnish with Apache on Ubuntu 12.04</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;clear: left; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17.5px; font-weight: 400; line-height: 32px; margin: 20px 0px 2px; text-rendering: optimizelegibility;&quot;&gt;
About Varnish&lt;/h3&gt;
&lt;hr style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-left-width: 0px; border-right-width: 0px; border-top-color: rgb(238, 238, 238); border-top-style: solid; box-sizing: content-box; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; height: 0px; line-height: 24.26666831970215px; margin: 0px 0px 13px !important;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Varnish is an HTTP accelerator and a useful tool for speeding up a server, especially during a times when there is high traffic to a site. It works by redirecting visitors to static pages whenever possible and only drawing on the virtual private server itself if there is a need for an active process.&lt;/span&gt;&lt;h2 style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 22.5px; font-weight: 500; line-height: 32px; margin: 30px 0px 2px; text-rendering: optimizelegibility;&quot;&gt;
Setup&lt;/h2&gt;
&lt;hr style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-left-width: 0px; border-right-width: 0px; border-top-color: rgb(238, 238, 238); border-top-style: solid; box-sizing: content-box; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; height: 0px; line-height: 24.26666831970215px; margin: 0px 0px 13px !important;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;To perform the steps in this tutorial, you will need to both have a user with sudo privileges and apache installed on your virtual private server.&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;To create a user with sudo privileges, go through the third and fourth steps of the&amp;nbsp;&lt;/span&gt;initial ubuntu server setup tutorial&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Apache can be installed on your VPS with a single command from the apt-get repository.&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo apt-get install apache2&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;h2 style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 22.5px; font-weight: 500; line-height: 32px; margin: 30px 0px 2px; text-rendering: optimizelegibility;&quot;&gt;
Step One—Install Varnish&lt;/h2&gt;
&lt;hr style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-left-width: 0px; border-right-width: 0px; border-top-color: rgb(238, 238, 238); border-top-style: solid; box-sizing: content-box; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; height: 0px; line-height: 24.26666831970215px; margin: 0px 0px 13px !important;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;The varnish site recommends installing the varnish package through their repository.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;You can start that process by grabbing the repository:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;The next step is to add the repository to the list of apt sources. Go ahead and open up that file.&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo nano /etc/apt/sources.list&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Once inside the file, add the varnish repository to the list of sources.&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Save and exit.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Finally, update apt-get and install varnish.&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo apt-get update
sudo apt-get install varnish&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;h2 style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 22.5px; font-weight: 500; line-height: 32px; margin: 30px 0px 2px; text-rendering: optimizelegibility;&quot;&gt;
Step Two—Configure Varnish&lt;/h2&gt;
&lt;hr style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-left-width: 0px; border-right-width: 0px; border-top-color: rgb(238, 238, 238); border-top-style: solid; box-sizing: content-box; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; height: 0px; line-height: 24.26666831970215px; margin: 0px 0px 13px !important;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Once you have both apache and varnish installed, you can start to configure them to ease the load on your server from future visitors.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Varnish will serve the content on port 80, while fetching it from apache which will run on port 8080.&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Let’s go ahead and start setting that up by opening the /etc/default/varnish file:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo nano /etc/default/varnish&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Uncomment all of the lines under “DAEMON_OPTS”—under Alternative 2, and make the configuration match the following code:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt; DAEMON_OPTS=&quot;-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m&quot;&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Once you save and exit out of that file, open up the default.vcl file:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo nano /etc/varnish/default.vcl&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;This file tells varnish where to look for the webserver content. Although Apache listens on port 80 by default, we will change the settings for it later. Within this file, we will tell varnish to look for the content on port 8080. The configuration should like this:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;backend default {
    .host = &quot;127.0.0.1&quot;;
    .port = &quot;8080&quot;;
}&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;h2 style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 22.5px; font-weight: 500; line-height: 32px; margin: 30px 0px 2px; text-rendering: optimizelegibility;&quot;&gt;
Step Three—Configure Apache&lt;/h2&gt;
&lt;hr style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-left-width: 0px; border-right-width: 0px; border-top-color: rgb(238, 238, 238); border-top-style: solid; box-sizing: content-box; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; height: 0px; line-height: 24.26666831970215px; margin: 0px 0px 13px !important;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;So far we have told varnish that apache ports will be running on 8080. However the default settings for apache are still on port 80. We will correct the discrepancy now.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Open up the apache ports file:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo nano /etc/apache2/ports.conf&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Change the port number for both the NameVirtualHost and the Listen line to port 8080, and the virtual host should only be accessible from the localhost. The configuration should look like this:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Change these settings in the default virtual host file as well:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo nano /etc/apache2/sites-available/default&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;The Virtual Host should also be set to port 8080, and updated line looks like this:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt; &amp;lt;VirtualHost 127.0.0.1:8080&amp;gt;&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Save and exit the file and proceed to restart Apache and Varnish to make the changes effective.&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;sudo service apache2 restart
sudo service varnish restart&lt;/pre&gt;
&lt;br style=&quot;color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #111111; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 17px; line-height: 24.26666831970215px;&quot;&gt;Accessing your domain should instantly take you to the varnish cached version, and you can see the details of varnish’s workings with this command:&lt;/span&gt;&lt;pre style=&quot;background-color: whitesmoke; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.14902); color: #333333; font-family: Monaco, Menlo, Consolas, &#39;Courier New&#39;, monospace; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-top: 1em; padding: 7.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;&quot;&gt;varnishstat&lt;/pre&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/2500376785759830164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2014/03/how-to-install-and-configure-varnish.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2500376785759830164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/2500376785759830164'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2014/03/how-to-install-and-configure-varnish.html' title='How To Install and Configure Varnish with Apache on Ubuntu 12.04'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-401802373977454076</id><published>2013-09-29T23:29:00.000-07:00</published><updated>2013-09-29T23:29:10.036-07:00</updated><title type='text'>MySQL Storage Engines Comparison</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MyISAM&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;Storage Engine Features(default storage engine)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; style=&quot;width: 659px;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;124&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;37&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;205&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;22&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;192&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;31&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Storage    limits&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;256TB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Locking    granularity&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Table&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MVCC&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    datatype support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    indexing support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;B-tree    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Hash    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Full-text    search indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Clustered    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Data    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Index    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Compressed    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1610846&quot; name=&quot;id1610846&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Encrypted    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1610856&quot; name=&quot;id1610856&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Cluster    database support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Replication    support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1610877&quot; name=&quot;id1610877&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Foreign    key support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Backup    / point-in-time recovery&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1610897&quot; name=&quot;id1610897&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;d&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Query    cache support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;37&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Update    statistics for data dictionary&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;InnoDB&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;Storage Engine Features&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; style=&quot;width: 650px;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;124&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;34&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;205&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;22&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;192&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Storage    limits&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;64TB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Locking    granularity&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Row&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MVCC&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    datatype support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    indexing support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;B-tree    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Hash    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Full-text    search indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Clustered    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Data    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Index    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Compressed    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1614306&quot; name=&quot;id1614306&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Encrypted    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1614315&quot; name=&quot;id1614315&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Cluster    database support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Replication    support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1614336&quot; name=&quot;id1614336&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Foreign    key support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Backup    / point-in-time recovery&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1614356&quot; name=&quot;id1614356&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;d&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;124&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Query    cache support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;34&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Update    statistics for data dictionary&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;192&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MEMORY&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;Storage Engine Features&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MEMORY&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;storage engine creates tables with contents that are stored in memory. Formerly, these were known as&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;HEAP&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;tables.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MEMORY&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;is the preferred term, although&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;HEAP&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;remains supported for backward compatibility.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; style=&quot;width: 650px;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;125&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;29&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;205&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;22&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;191&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;31&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Storage    limits&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;RAM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Locking    granularity&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Table&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MVCC&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    datatype support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    indexing support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;B-tree    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Hash    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Full-text    search indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Clustered    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Data    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;N/A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Index    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;N/A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Compressed    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Encrypted    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1661550&quot; name=&quot;id1661550&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Cluster    database support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Replication    support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1661571&quot; name=&quot;id1661571&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Foreign    key support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Backup    / point-in-time recovery&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1661590&quot; name=&quot;id1661590&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Query    cache support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;29&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Update    statistics for data dictionary&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td valign=&quot;TOP&quot; width=&quot;31&quot;&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;ARCHIVE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;Storage Engine Features&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: transparent; border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;ARCHIVE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;&amp;nbsp;storage engine is used for storing large amounts of data without indexes in a very small footprint.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; style=&quot;width: 647px;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;125&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;31&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;205&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;22&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;191&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Storage    limits&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Transactions&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Locking    granularity&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Row&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MVCC&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    datatype support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Geospatial    indexing support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;B-tree    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Hash    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Full-text    search indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Clustered    indexes&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Data    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Index    caches&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Compressed    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Encrypted    data&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1664670&quot; name=&quot;id1664670&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Cluster    database support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Replication    support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1664691&quot; name=&quot;id1664691&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Foreign    key support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Backup    / point-in-time recovery&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/post-create.g?blogID=3711788188331634785#ftn.id1664711&quot; name=&quot;id1664711&quot;&gt;&lt;span style=&quot;color: #00759f;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td width=&quot;125&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Query    cache support&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;31&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;205&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;color: #003333;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;Update    statistics for data dictionary&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;22&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;191&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;26&quot;&gt;&lt;div style=&quot;border: none; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Others  &lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;BLACKHOLE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine acts as a “&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;black hole&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;” that accepts data but throws it away and does not store it.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;CSV&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine stores data in text files using comma-separated values format.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;FEDERATED&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine enables data to be accessed from a remote MySQL database on a local server without using replication or cluster technology. When using a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;FEDERATED&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;table, queries on the local server are automatically executed on the remote (federated) tables. No data is stored on the local tables.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;EXAMPLE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine is a stub engine that does nothing. Its purpose is to serve as an example in the MySQL source code that illustrates how to begin writing new storage engines. As such, it is primarily of interest to developers.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MERGE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine, also known as the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MRG_MyISAM&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;engine, is a collection of identical&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MyISAM&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;tables that can be used as one. “&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: transparent;&quot;&gt;Identical&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;” means that all tables have identical column and index information. You cannot merge&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;MyISAM&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;tables in which the columns are listed in a different order, do not have exactly the same columns, or have the indexes in different order.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border: none; line-height: 0.64cm; margin-bottom: 0cm; orphans: 2; padding: 0cm; widows: 2;&quot;&gt;
&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;IBMDB2I&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine is designed as a fully featured transaction-capable storage engine that enables MySQL to store its data in DB2 tables running on IBM i. With the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: #026789;&quot;&gt;&lt;span style=&quot;font-family: courier, &#39;courier new&#39;, fixed, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background: #ffffff;&quot;&gt;IBMDB2I&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;storage engine, data can be shared between MySQL applications and applications coded for native DB2 for i interfaces.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/401802373977454076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2013/09/mysql-storage-engines-comparison.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/401802373977454076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/401802373977454076'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2013/09/mysql-storage-engines-comparison.html' title='MySQL Storage Engines Comparison'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-4883947499527337974</id><published>2013-09-29T23:28:00.000-07:00</published><updated>2013-09-29T23:28:24.206-07:00</updated><title type='text'></title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;strong&gt;Apache Solr Installation and Configuration&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Installation &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
1. Download Apache Solr Package (http://www.apache.org/dyn/closer.cgi/lucene/solr/)&lt;br /&gt;
&lt;br /&gt;
2. In shell enter “tar –xvzf apache-solr-x.x.x.tgz” this step will create a folder apache-solr-x.x.x&lt;br /&gt;
&lt;br /&gt;
3. Rename the folder for ease of use “mv apache-solr-x.x.x apache-solr”&lt;br /&gt;
&lt;br /&gt;
4. Install JDK (requires &amp;gt; 1.6.0) can download from sun downloads(http://java.sun.com/javase/downloads/widget/jdk6.jsp)&lt;br /&gt;
&lt;br /&gt;
5. “cd apache-solr/example/”&lt;br /&gt;
&lt;br /&gt;
6. Start the servlet “Java –jar start.jar”, Long list of messages will appear at the end you can see message as follows : INFO: Started SocketConnector @ 0.0.0.0:8983&lt;br /&gt;
&lt;br /&gt;
7. Check for errors in java if so please correct it and restart the server. To Stop the server use “CTRL+C” &lt;br /&gt;
&lt;br /&gt;
8. If everything goes fine you should see a screen as below in your browser &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Configuring with MySQL Database &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
1. Download jdbc driver for mysql (mysql-connector-java-5.1.12-bin.jar) put it in the “lib” folder , this is the one which is responsible for communication between MySQL db and apache Solr&lt;br /&gt;
&lt;br /&gt;
2. Open data-config.xml in your conf folder under example directory (example-&amp;gt;conf-&amp;gt;data-config.xml) in any text editor &lt;br /&gt;
&lt;br /&gt;
3. Add XML as below &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Data source is the tag which holds the data about the connecter (which database ,user, password, url, driver etc.,), we can have many data source in a single file and use the name of data source to connect&lt;br /&gt;
&lt;br /&gt;
5. Change the “Query” in the “entity” tag as you want to create index it can also use joins and db functions in it &lt;br /&gt;
&lt;br /&gt;
6. There is another set of tags called “Field” which used to specify what are the column which are returned by the query is going to be used (take care in giving values to name attribute),”Column” attribute is used to map the column name to the name attribute &lt;br /&gt;
&lt;br /&gt;
7. Open “schema.xml” in the same folder search for “fields” tag and remove the content of it and add your columns names as picture below&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/4883947499527337974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2013/09/apache-solr-installation-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4883947499527337974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/4883947499527337974'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2013/09/apache-solr-installation-and.html' title=''/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-8633271589494921693</id><published>2013-09-29T23:24:00.000-07:00</published><updated>2013-09-29T23:24:19.859-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Concepts"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>Interface Vs Abstract Class</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;&lt;table cellpadding=&quot;7&quot; cellspacing=&quot;0&quot; class=&quot;ArticleTable&quot; style=&quot;background-color: white; border-collapse: collapse; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; width: 568px;&quot;&gt;&lt;thead style=&quot;background-color: #ebf6ff; font-weight: bold;&quot;&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Feature&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Interface&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Abstract class&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Multiple inheritance&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
A class may inherit several interfaces.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
A class may inherit only one abstract class.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Default implementation&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
An interface cannot provide any code, just the signature.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
An abstract class can provide complete, default code and/or just the details that have to be overridden.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;Access Modfiers&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;An interface cannot have access modifiers for the subs, functions, properties etc everything is assumed as public&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;An abstract class can contain access modifiers for the subs, functions, properties&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Core VS Peripheral&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Interfaces are used to define the peripheral abilities of a class. In other words both Human and Vehicle can inherit from a IMovable interface.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
An abstract class defines the core identity of a class and there it is used for objects of the same type.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Homogeneity&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
If various implementations only share method signatures then it is better to use Interfaces.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
If various implementations are of the same kind and use common behaviour or status then abstract class is better to use.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Speed&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Requires more time to find the actual method in the corresponding classes.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Fast&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
Adding functionality (Versioning)&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
If we add a new method to an Interface then we have to track down all the implementations of the interface and define implementation for the new method.&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;&lt;div style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;
If we add a new method to an abstract class then we have the option of providing default implementation and therefore all the existing code might work properly.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;Fields and Constants&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;No fields can be defined in interfaces&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; font-family: Verdana, Arial, sans-serif; font-size: 10pt; line-height: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;&quot; valign=&quot;top&quot; width=&quot;33%&quot;&gt;An abstract class can have fields and constrants defined&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/span&gt;&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/8633271589494921693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2013/09/interface-vs-abstract-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8633271589494921693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/8633271589494921693'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2013/09/interface-vs-abstract-class.html' title='Interface Vs Abstract Class'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-5020162034428976124</id><published>2013-09-29T23:22:00.000-07:00</published><updated>2013-09-29T23:22:08.690-07:00</updated><title type='text'>Hudson in Tomcat</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
Installation&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
To install Hudson on Tomcat, simply copy&amp;nbsp;&lt;tt&gt;hudson.war&lt;/tt&gt;&amp;nbsp;to&amp;nbsp;&lt;tt&gt;$TOMCAT_HOME/webapps&lt;/tt&gt;, then access&amp;nbsp;&lt;tt&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://yourhost/hudson&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;http://yourhost/hudson&lt;/a&gt;&lt;/tt&gt;.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
If you are running Tomcat just to host Hudson, then remove everything from&amp;nbsp;&lt;tt&gt;$TOMCAT_HOME/webapps&lt;/tt&gt;, and place&amp;nbsp;&lt;tt&gt;hudson.war&lt;/tt&gt;&amp;nbsp;as&amp;nbsp;&lt;tt&gt;ROOT.war&lt;/tt&gt;. Tomcat should expand this and create the&amp;nbsp;&lt;tt&gt;ROOT&lt;/tt&gt;&amp;nbsp;directory, and you should see Hudson in&amp;nbsp;&lt;tt&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://yourhost/&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;http://yourhost&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;(if you accepted the Tomcat defaults -&amp;nbsp;&lt;tt&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://yourhost:8080/&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;http://yourhost:8080&lt;/a&gt;&lt;/tt&gt;) without any additional path. This also works nicely when you set up a virtual host, as it allows a single Tomcat instance to run multiple applications, yet users can still access your hudson with URLs like&amp;nbsp;&lt;tt&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://hudson.acme.org/&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;http://hudson.acme.org/&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;without any additional path. See the Tomcat documentation for more about how to set up a virtual host.&lt;/div&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-Upgrade&quot;&gt;&lt;/a&gt;Upgrade&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Simply overwrite your&amp;nbsp;&lt;tt&gt;hudson.war&lt;/tt&gt;&amp;nbsp;with the new version and delete the hudson folder in webapps (exploded war). Tomcat should automatically redeploy the application.&lt;/div&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-SettingHUDSONHOME&quot;&gt;&lt;/a&gt;Setting HUDSON_HOME&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Before starting Tomcat, set CATALINA_OPTS like this. This can be also used to specify JVM options to increase the heap size:&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;$ export CATALINA_OPTS=&quot;-DHUDSON_HOME=/path/to/hudson_home/ -Xmx512m&quot;
$ catalina.sh start
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Or on Tomcat 1.6+ CATALINA_OPTS has been replaced by JAVA_OPTS (Thanks to Ronoaldo Pereira):&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;$ export JAVA_OPTS=&quot;-DHUDSON_HOME=/path/to/hudson_home/ -Xmx512m&quot;
$ catalina.sh start
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Or if that fails for some reason, you should still be able to use the environment variable:&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;$ export HUDSON_HOME=/path/to/hudson_home/
$ catalina.sh start
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-IncreasingTomcatPermGenspace&quot;&gt;&lt;/a&gt;Increasing Tomcat PermGen space&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
If you see permgen errors when running Tomcat, edit the catalina.sh file on *NIX systems to assign the following options&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;JAVA_OPTS=&quot;-Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m&quot;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Or on windows use the Configure Tomcat GUI Java panel to set the same additional options and restart Tomcat.&lt;/div&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-SecuringHudsononTomcat&quot;&gt;&lt;/a&gt;Securing Hudson on Tomcat&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Tomcat by default stores the user database in an XML file called&amp;nbsp;&lt;tt&gt;$TOMCAT_HOME/conf/tomcat-users.xml&lt;/tt&gt;. You can add the following lines to this file to create an admin user.&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;&amp;lt;role rolename=&quot;admin&quot;/&amp;gt;
&amp;lt;user username=&quot;hudson-admin&quot; password=&quot;secret&quot; roles=&quot;admin&quot;/&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-i18n&quot;&gt;&lt;/a&gt;i18n&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Some versions of Tomcat (such as 5.0.28) uses iso-8859-1 to decode URLs, which is in a clear violation of the relevant RFCs. To fix this problem, add the following&amp;nbsp;&lt;tt&gt;URIEncoding&lt;/tt&gt;&amp;nbsp;attribute to the connector definition in&amp;nbsp;&lt;tt&gt;$TOMCAT_HOME/conf/server.xml&lt;/tt&gt;.&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;&amp;lt;Connector port=&quot;8080&quot; URIEncoding=&quot;UTF-8&quot;/&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Other people reported that&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;https://hudson.dev.java.net/issues/show_bug.cgi?id=302&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;a presence of&amp;nbsp;&lt;tt&gt;RequestDumperValve&lt;/tt&gt;&amp;nbsp;would also cause a problem&lt;/a&gt;.&lt;/div&gt;
&lt;h4 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 12pt; margin: 14px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-Relatedreads&quot;&gt;&lt;/a&gt;Related reads&lt;/h4&gt;
&lt;ol style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px;&quot;&gt;
&lt;li style=&quot;font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;&quot;&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://confluence.atlassian.com/display/DOC/Configuring+Tomcat&#39;s+URI+encoding&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;Similar instruction for Confluence&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;&quot;&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://weblogs.java.net/blog/joconner/archive/2005/07/charset_traps.html&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;John O&#39;Conner&#39;s blog entry about his experiment&lt;/a&gt;. See Elliotte(id:elharo)&#39;s comment in particular,&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 style=&quot;background-color: white; border-bottom-color: rgb(102, 153, 204); color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 18pt; margin: 32px 0px 10px; padding: 0px; width: 1195px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-RelevantIssues&quot;&gt;&lt;/a&gt;Relevant Issues&lt;/h1&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
See the&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://issues.hudson-ci.org/secure/IssueNavigator.jspa?mode=hide&amp;amp;requestId=10130&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;list of issues&lt;/a&gt;&amp;nbsp;filed that are specifically marked relevant to Tomcat.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
There is also a&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://issues.hudson-ci.org/browse/HUDSON-6473?focusedCommentId=138461&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_138461&quot; rel=&quot;nofollow&quot; style=&quot;color: #003366;&quot;&gt;known issue&lt;/a&gt;&amp;nbsp;in Tomcat 6.0.21 to 6.0.26 that may cause some requests to hang.&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 14pt; margin: 20px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-TomcatfromXAMPP&quot;&gt;&lt;/a&gt;Tomcat from XAMPP&lt;/h3&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
If you are using XAMPP&#39;s tomcat installation, and you have Java &amp;gt; 1.5, then you need to remove the following jars from the common\lib directory, otherwise you will get FileNotFound exceptions from the changelog.xml generator:&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;xalan.jar
xercesImpl.jar
xercesSamples.jar
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 14pt; margin: 20px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-TomcatfromUbuntu&quot;&gt;&lt;/a&gt;Tomcat from Ubuntu&lt;/h3&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
If you get Tomcat from Ubuntu via apt-get, Hudson will report an error citing the security permission issue. This is because Tomcat in Ubuntu comes with the security manager on by default. This can be disabled by modifying&amp;nbsp;&lt;tt&gt;/etc/default/tomcat5&lt;/tt&gt;&amp;nbsp;(version number will be different depending on which version of Tomcat you install.) See&amp;nbsp;&lt;a href=&quot;http://issues.hudson-ci.org/browse/HUDSON-719&quot; style=&quot;color: #003366;&quot;&gt;issue #719&lt;/a&gt;&amp;nbsp;for more details.&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 14pt; margin: 20px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-TomcatfromDebian&quot;&gt;&lt;/a&gt;Tomcat from Debian&lt;/h3&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Fix security issues adding the next lines at&amp;nbsp;&lt;tt&gt;/etc/tomcat5.5/policy.d/04webapps.policy&lt;/tt&gt;:&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;grant codeBase &quot;file:/var/lib/tomcat5.5/webapps/hudson/-&quot; {
    permission java.security.AllPermission;
};
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 14pt; margin: 20px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-TomcatfromWindows&quot;&gt;&lt;/a&gt;Tomcat from Windows&lt;/h3&gt;
&lt;h4 style=&quot;background-color: white; color: #003366; font-family: Helvetica, Arial, sans-serif; font-size: 12pt; margin: 14px 0px 4px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3711788188331634785&quot; name=&quot;Tomcat-GUITestinginWindows&quot;&gt;&lt;/a&gt;GUI Testing in Windows&lt;/h4&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Most Windows services -- including those run with the option &quot;Allow service to interact with desktop&quot; in Windows XP and Vista -- do not have access to many of the computer&#39;s resources, including the console display.&amp;nbsp; This may cause Automated GUI Tests to fail if you are running Apache Tomcat as a Windows Service and are doing any GUI testing. This is true at least for AWT and Abbot frameworks.&amp;nbsp; A typical error might look similar to this:&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;background-color: white; border: 1px solid rgb(102, 153, 204); font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin: 10px 20px; overflow: hidden; padding: 0px;&quot;&gt;
&lt;div class=&quot;preformattedContent panelContent&quot; style=&quot;font-size: 0.95em; margin: 0px; padding: 0px 12px;&quot;&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; line-height: 1.3; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 0px;&quot;&gt;[junit] \# An unexpected error has been detected by HotSpot Virtual Machine:
[junit] \#
[junit] \# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d07baf4, pid=3260, tid=288
[junit] \#
[junit] \# Java VM: Java HotSpot(TM) Client VM (1.5.0_09-b03 mixed mode, sharing)
[junit] \# Problematic frame:
[junit] \# C [awt.dll+0xbaf4|awt.dll+0xbaf4]
[junit] \#
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17.33333396911621px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
This limitation can be resolved by not running Tomcat as a Windows Service, but instead through a &quot;Scheduled Task&quot; as an Application that runs at logon. There are several options for doing this, an example would be&amp;nbsp; to run &quot;$TOMCAT_HOME\bin\tomcat5.exe&quot;.&amp;nbsp; When setting up the scheduled task in Windows Vista consider choosing the check-box for &quot;Run with highest privileges&quot; from the general tab, as this removes the need to always provide administrator privileges and may resolve other issues as well.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/5020162034428976124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2013/09/hudson-in-tomcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5020162034428976124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/5020162034428976124'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2013/09/hudson-in-tomcat.html' title='Hudson in Tomcat'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3711788188331634785.post-9039337888897227441</id><published>2013-09-29T23:21:00.004-07:00</published><updated>2013-09-29T23:21:25.304-07:00</updated><title type='text'>Add service Auto start centos</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: 微软雅黑, Helvetica, Times, Arial, serif; font-size: 12px; line-height: 18px; margin-bottom: 12px; padding: 0px;&quot;&gt;
To auto start services in Centos or Redhat OS, you can use builtin&amp;nbsp;&lt;strong&gt;chkconfig&lt;/strong&gt;&amp;nbsp;utility. It is located in /sbin directory. In the example below using a service called noip2d.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: 微软雅黑, Helvetica, Times, Arial, serif; font-size: 12px; line-height: 18px; margin-bottom: 12px; padding: 0px;&quot;&gt;
To auto start a&amp;nbsp;noip2d&amp;nbsp;service:&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #333333; font-family: monospace;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;strong style=&quot;font-family: 微软雅黑, Helvetica, Times, Arial, serif;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;u style=&quot;background-color: white;&quot;&gt;Add Service to auto start&lt;/u&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;strong style=&quot;font-family: 微软雅黑, Helvetica, Times, Arial, serif;&quot;&gt;&lt;code style=&quot;font-weight: normal; margin: 0px; padding: 0px;&quot;&gt;sudo /sbin/chkconfig --add&amp;nbsp;&lt;/code&gt;&lt;/strong&gt;noip2d&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;Check is it addded&lt;/u&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;sudo /sbin/chkconfig --list noip2d&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;noip2d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0:off &amp;nbsp; 1:off &amp;nbsp; 2:off &amp;nbsp; 3:on &amp;nbsp; &amp;nbsp;4:off &amp;nbsp; 5:off &amp;nbsp; 6:off&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;Make it auto start on run different levels&lt;/u&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;sudo /sbin/chkconfig noip2d on&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u style=&quot;background-color: white;&quot;&gt;Check it on run levels&lt;/u&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;sudo /sbin/chkconfig --list noip2d&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;noip2d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0:off &amp;nbsp; 1:off &amp;nbsp; 2:on &amp;nbsp; &amp;nbsp;3:on &amp;nbsp; &amp;nbsp;4:on &amp;nbsp; &amp;nbsp;5:on &amp;nbsp; &amp;nbsp;6:off&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;style&gt;
blockquote {
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
}

code {
 font-family: Courier;
 margin:.75em 0;
 border:1px solid #596;
 border-width:1px 1px;
 padding:5px 15px;
 display: block;
 background-color: #dedede;
 white-space: pre;
}
&lt;/style&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;From Megam Technologies&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmsundar.blogspot.com/feeds/9039337888897227441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmsundar.blogspot.com/2013/09/add-service-auto-start-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/9039337888897227441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3711788188331634785/posts/default/9039337888897227441'/><link rel='alternate' type='text/html' href='http://gmsundar.blogspot.com/2013/09/add-service-auto-start-centos.html' title='Add service Auto start centos'/><author><name>G.M.Sundar - Megamtech</name><uri>http://www.blogger.com/profile/00758409822999980535</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>