# [`govinfo-link-js` ![Node.js and Web browser API][api-26-image]][readme-url]

<!-- standard-readme:banner -->

[![democracy-ia mascot][logo-image]][readme-url]

<!-- standard-readme:badges -->

[![Apache License][license-image]][license-url]
[![FOSSA Status][fossa-image]][fossa-url]
[![NPM version][npm-image]][npm-url]<br>
[![NSP Status][nsp-image]][nsp-url]
[![Dependency Status][daviddm-image]][daviddm-url]
[![Development Dependency Status][daviddm-dev-image]][daviddm-dev-url]<br>
[![MacOS and Ubuntu build statuses][travis-image]][travis-url]
[![Windows build status][appveyor-image]][appveyor-url]
[![Coverage percentage][coveralls-image]][coveralls-url]
[![Codacy code quality][codacy-image]][codacy-url]

<!-- standard-readme:short-description -->

> [![Node.js and Web browser API][api-26-image]][readme-url] Access U.S. Government Publishing Office's FDsys (Federal Digital System) content and metadata collections using the `govinfo-link-js` client for Node.js and Web browsers.

<!-- standard-readme:table-of-contents -->

## Table of contents

<!-- ⛔️ AUTO-GENERATED-CONTENT:START (TOC:excludeText=Table of contents) -->

* [1. Install](#1-install)
  * [1.1. For Node.js environments](#11-for-nodejs-environments)
    * [1.1.1. Using npm](#111-using-npm)
    * [1.1.2. Using git](#112-using-git)
  * [1.2. For browsers](#12-for-browsers)
  * [1.3. Webpack configuration](#13-webpack-configuration)
* [2. Usage](#2-usage)
* [3. API](#3-api)
  * [3.1. Models](#31-models)
  * [3.2. Endpoints](#32-endpoints)
* [4. Contribute](#4-contribute)
* [5. License](#5-license)
  <!-- ⛔️ AUTO-GENERATED-CONTENT:END -->

## 1. Install

### 1.1. For Node.js environments

> ![light-bulb][icon-octicon-light-bulb] Download and install [Node.js ![link-external][icon-octicon-link-external]](https://nodejs.org/) (and its package manager, **npm**),
> if you don't have them, already.

#### 1.1.1. Using npm

To publish the library as a [npm ![link-external][icon-octicon-link-external]](https://www.npmjs.com/),
please follow the procedure in "[Publishing npm packages ![link-external][icon-octicon-link-external]](https://docs.npmjs.com/getting-started/publishing-npm-packages)."

Then install it via:

```shell
npm install govinfo-link-js --save
```

#### 1.1.2. Using git

If the library is hosted at a git repository, e.g.
<https://github.com/democracy-ia/govinfo-link-js>
then install it via:

```shell
npm install democracy-ia/govinfo-link-js --save
```

---

<details>
  <summary><strong><img align="top" alt="code" height="20" width="20" src="https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/code.svg"> Designers and developers</strong>: additional installation instructions</summary><p>

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing
into the directory containing `package.json` (and this README). Let's call this `JAVASCRIPT_CLIENT_DIR`. Then run:

```shell
npm install
```

Next, [link](https://docs.npmjs.com/cli/link) it globally in npm with the following, also from `JAVASCRIPT_CLIENT_DIR`:

```shell
npm link
```

Finally, switch to the directory you want to use your govinfo-link-js from, and run:

```shell
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>
```

You should now be able to `require('govinfo-link-js')` in javascript files from the directory you ran the last command above from.

</p></details>

---

### 1.2. For browsers

The library also works in the browser environment via npm and [browserify ![link-external][icon-octicon-link-external]](http://browserify.org/). After following
the above steps with Node.js and installing browserify with `npm install -g browserify`,
perform the following (assuming _main.js_ is your entry file, that's to say your javascript file where you actually
use this library):

```shell
browserify main.js > bundle.js
```

Then include _bundle.js_ in the HTML pages.

### 1.3. Webpack configuration

Using Webpack you may encounter the following error: "Module not found: Error:
Cannot resolve module", most certainly you should disable AMD loader. Add/merge
the following section to your webpack config:

```javascript
module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}
```

## 2. Usage

> [![light-bulb][icon-octicon-light-bulb] View _all_ `govinfo-link-js` API references (with usage examples)](docs#readme).

```javascript
const { CodeOfFederalRegulations } = require('govinfo-link-js')

const api = new CodeOfFederalRegulations()

// {Number} Title number
const titlenum = 3

// {String} Part number.
const partnum = '100'

const opts = {
  /**
   * @prop {String} sectionnum - This is the section number. Sample value is 1.
   *    If section number is not provided the entire part will be returned.
   */
  sectionnum: null,

  /**
   * @prop {String} year - This is the four digit numerical year OR mostrecent.
   *    If year is not provided, the most recent version of the CFR section
   *    or part is returned. Default is most recent.
   */
  year: '2011',

  /**
   * @prop {string=pdf} [linkType] - This is the format of the returned
   *    document. Default is pdf. Other values are xml, mods, premis,
   *    details, context, related.
   */
  linkType: 'xml'
}

api.cfrFetchUsingGET(titlenum, partnum, opts, (error, data) => {
  if (error) {
    console.error(error)
  } else {
    console.log(`✅  Returned data: ${api.toJson(data)}`)
  }
})
```

## 3. API

The link service is used to create embedded links to content and metadata on
**govinfo** and is currently enabled for the collections below. More
information about each query, including examples, is provided on each collection page.

### 3.1. Models

1.  [![API reference][api-26-image] `CodeOfFederalRegulations`: Code of Federal Regulations](docs/CodeOfFederalRegulations.md)
1.  [![API reference][api-26-image] `CompilationOfPresidentialDocuments`: Compilation of Presidential Documents](docs/CompilationOfPresidentialDocuments.md)
1.  [![API reference][api-26-image] `CongressionalBills`: Congressional Bills](docs/CongressionalBills.md)
1.  [![API reference][api-26-image] `CongressionalCalendars`: Congressional Calendars](docs/CongressionalCalendars.md)
1.  [![API reference][api-26-image] `CongressionalCommitteePrints`: Congressional Committee Prints](docs/CongressionalCommitteePrints.md)
1.  [![API reference][api-26-image] `CongressionalDocuments`: Congressional Documents](docs/CongressionalDocuments.md)
1.  [![API reference][api-26-image] `CongressionalHearings`: Congressional Hearings](docs/CongressionalHearings.md)
1.  [![API reference][api-26-image] `CongressionalRecordDaily`: Congressional Record Daily](docs/CongressionalRecordDaily.md)
1.  [![API reference][api-26-image] `CongressionalReports`: Congressional Reports](docs/CongressionalReports.md)
1.  [![API reference][api-26-image] `FederalRegister`: Federal Register](docs/FederalRegister.md)
1.  [![API reference][api-26-image] `PublicAndPrivateLaws`: Public and Private Laws](docs/PublicAndPrivateLaws.md)
1.  [![API reference][api-26-image] `StatutesAtLarge`: Statutes at Large](docs/StatutesAtLarge.md)
1.  [![API reference][api-26-image] `UnitedStatesCode`: United States Code](docs/UnitedStatesCode.md)

### 3.2. Endpoints

> ![info][icon-octicon-info] All HTTP request URIs are relative to _<https://www.govinfo.gov/link>_.

| Class                                                                                        | Method                                                                                    | HTTP request                                                                                                                     |
| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| [_govinfo\. CodeOfFederalRegulations_](docs/CodeOfFederalRegulations.md)                     | [`cfrFetchUsingGET`](docs/CodeOfFederalRegulations.md#cfrFetchUsingGET)                   | **GET** /cfr/{titlenum}/{partnum} <br><br>Parameters: title number, part number, section number, year OR most recent             |
| [_govinfo\. CompilationOfPresidentialDocuments_](docs/CompilationOfPresidentialDocuments.md) | [`cpdDcpdFetchUsingGET`](docs/CompilationOfPresidentialDocuments.md#cpdDcpdFetchUsingGET) | **GET** /cpd/{year} <br><br>Parameters: dcpd type OR dcpd number                                                                 |
| [_govinfo\. CompilationOfPresidentialDocuments_](docs/CompilationOfPresidentialDocuments.md) | [`cpdFetchUsingGET`](docs/CompilationOfPresidentialDocuments.md#cpdFetchUsingGET)         | **GET** /cpd/{doctype}/{docnum} <br><br>Parameters: document type, document number                                               |
| [_govinfo\. CongressionalBills_](docs/CongressionalBills.md)                                 | [`billsFetchUsingGET`](docs/CongressionalBills.md#billsFetchUsingGET)                     | **GET** /bills/{congress}/{billtype}/{billnum} <br><br>Parameters: bill number, bill type, congress, bill version OR most recent |
| [_govinfo\. CongressionalCalendars_](docs/CongressionalCalendars.md)                         | [`ccalFetchUsingGET`](docs/CongressionalCalendars.md#ccalFetchUsingGET)                   | **GET** /ccal/{chamber}/{section} <br><br>Parameters: chamber, section, publish date OR most recent                              |
| [_govinfo\. CongressionalCommitteePrints_](docs/CongressionalCommitteePrints.md)             | [`cprtHouseFetchUsingGET`](docs/CongressionalCommitteePrints.md#cprtHouseFetchUsingGET)   | **GET** /cprt/{congress}/house/{printnum}/{committee} <br><br>Parameters: congress, chamber, house print number, committee       |
| [_govinfo\. CongressionalCommitteePrints_](docs/CongressionalCommitteePrints.md)             | [`cprtJacketFetchUsingGET`](docs/CongressionalCommitteePrints.md#cprtJacketFetchUsingGET) | **GET** /cprt/{congress}/{jacketid} <br><br>Parameters: congress, jacket number                                                  |
| [_govinfo\. CongressionalCommitteePrints_](docs/CongressionalCommitteePrints.md)             | [`cprtSenateFetchUsingGET`](docs/CongressionalCommitteePrints.md#cprtSenateFetchUsingGET) | **GET** /cprt/{congress}/senate/{printnum} <br><br>Parameters: congress, chamber, senate print number                            |
| [_govinfo\. CongressionalDocuments_](docs/CongressionalDocuments.md)                         | [`cdocFetchUsingGET`](docs/CongressionalDocuments.md#cdocFetchUsingGET)                   | **GET** /cdoc/{congress}/{doctype}/{docnum} <br><br>Parameters: congress, document type, document number                         |
| [_govinfo\. CongressionalDocuments_](docs/CongressionalDocuments.md)                         | [`cdocJacketFetchUsingGET`](docs/CongressionalDocuments.md#cdocJacketFetchUsingGET)       | **GET** /cdoc/{congress}/{jacketid} <br><br>Parameters: congress, jacket number                                                  |
| [_govinfo\. CongressionalHearings_](docs/CongressionalHearings.md)                           | [`chrgHouseFetchUsingGET`](docs/CongressionalHearings.md#chrgHouseFetchUsingGET)          | **GET** /chrg/{congress}/house/{committee}/{serialnumber} <br><br>Parameters: congress, chamber, committee, house serial number  |
| [_govinfo\. CongressionalHearings_](docs/CongressionalHearings.md)                           | [`chrgJacketFetchUsingGET`](docs/CongressionalHearings.md#chrgJacketFetchUsingGET)        | **GET** /chrg/{congress}/{jacketid} <br><br>Parameters: congress, jacket number                                                  |
| [_govinfo\. CongressionalHearings_](docs/CongressionalHearings.md)                           | [`chrgSenateFetchUsingGET`](docs/CongressionalHearings.md#chrgSenateFetchUsingGET)        | **GET** /chrg/{congress}/senate/{hearingnumber} <br><br>Parameters: congress, chamber, senate hearing number                     |
| [_govinfo\. CongressionalRecordDaily_](docs/CongressionalRecordDaily.md)                     | [`crecSectionFetchUsingGET`](docs/CongressionalRecordDaily.md#crecSectionFetchUsingGET)   | **GET** /crec/section/{section} <br><br>Parameters: section, publish date OR most recent                                         |
| [_govinfo\. CongressionalRecordDaily_](docs/CongressionalRecordDaily.md)                     | [`crecTypeFetchUsingGET`](docs/CongressionalRecordDaily.md#crecTypeFetchUsingGET)         | **GET** /crec/cas/{congress}/{billtype}/{billnum} <br><br>Parameters: congress, bill number, bill type                           |
| [_govinfo\. CongressionalRecordDaily_](docs/CongressionalRecordDaily.md)                     | [`crecTypeFetchUsingGET1`](docs/CongressionalRecordDaily.md#crecTypeFetchUsingGET1)       | **GET** /crec/type/{type} <br><br>Parameters: document type, publish date OR most recent                                         |
| [_govinfo\. CongressionalRecordDaily_](docs/CongressionalRecordDaily.md)                     | [`crecVolumeFetchUsingGET`](docs/CongressionalRecordDaily.md#crecVolumeFetchUsingGET)     | **GET** /crec/{volume}/{pageprefix}/{page} <br><br>Parameters: volume, page prefix, page number                                  |
| [_govinfo\. CongressionalReports_](docs/CongressionalReports.md)                             | [`crptBillFetchUsingGET`](docs/CongressionalReports.md#crptBillFetchUsingGET)             | **GET** /crpt/{congress}/{associatedbillnum} <br><br>Parameters: associated bill, congress                                       |
| [_govinfo\. CongressionalReports_](docs/CongressionalReports.md)                             | [`crptReportFetchUsingGET`](docs/CongressionalReports.md#crptReportFetchUsingGET)         | **GET** /crpt/{congress}/{doctype}/{reportnum} <br><br>Parameters: congress, report type, report number                          |
| [_govinfo\. FederalRegister_](docs/FederalRegister.md)                                       | [`frDocFetchUsingGET`](docs/FederalRegister.md#frDocFetchUsingGET)                        | **GET** /fr/{frdocnum} <br><br>Parameters: Federal Register document number                                                      |
| [_govinfo\. FederalRegister_](docs/FederalRegister.md)                                       | [`frVolumeFetchUsingGET`](docs/FederalRegister.md#frVolumeFetchUsingGET)                  | **GET** /fr/{volume}/{page} <br><br>Parameters: volume, page number                                                              |
| [_govinfo\. PublicAndPrivateLaws_](docs/PublicAndPrivateLaws.md)                             | [`plawBillFetchUsingGET`](docs/PublicAndPrivateLaws.md#plawBillFetchUsingGET)             | **GET** /plaw/{congress}/{associatedbillnum} <br><br>Parameters: associated bill number, congress                                |
| [_govinfo\. PublicAndPrivateLaws_](docs/PublicAndPrivateLaws.md)                             | [`plawStatuteFetchUsingGET`](docs/PublicAndPrivateLaws.md#plawStatuteFetchUsingGET)       | **GET** /plaw/{statutecitation} <br><br>Parameters: Statutes at Large citation                                                   |
| [_govinfo\. PublicAndPrivateLaws_](docs/PublicAndPrivateLaws.md)                             | [`plawTypeFetchUsingGET`](docs/PublicAndPrivateLaws.md#plawTypeFetchUsingGET)             | **GET** /plaw/{congress}/{lawtype}/{lawnum} <br><br>Parameters: congress, law type, law number                                   |
| [_govinfo\. StatutesAtLarge_](docs/StatutesAtLarge.md)                                       | [`statuteTypeFetchUsingGET`](docs/StatutesAtLarge.md#statuteTypeFetchUsingGET)            | **GET** /statute/{congress}/{lawtype}/{lawnum} <br><br>Parameters: congress, law type, law number                                |
| [_govinfo\. StatutesAtLarge_](docs/StatutesAtLarge.md)                                       | [`statuteVolumeFetchUsingGET`](docs/StatutesAtLarge.md#statuteVolumeFetchUsingGET)        | **GET** /statute/{volume}/{page} <br><br>Parameters: volume, page number                                                         |
| [_govinfo\. UnitedStatesCode_](docs/UnitedStatesCode.md)                                     | [`uscodeFetchUsingGET`](docs/UnitedStatesCode.md#uscodeFetchUsingGET)                     | **GET** /uscode/{title}/{section} <br><br>Parameters: title number, type, section, year OR most recent                           |

## 4. Contribute

[![PRs Welcome][makeapullrequest-image]][makeapullrequest-url] We welcome contributions with GitHub **issues** and **pull requests**.

---

[![Request a feature][issues-new-feat-image]][issues-new-feat-url]
[![Report a defect][issues-new-defect-image]][issues-new-defect-url]

[![Read the CONTRIBUTING guidelines][contributing-image]][contributing-url]

---

Contributions in the form of GitHub pull requests are welcome. Before embarking on a significant change, please adhere to the following guidelines:

1.  **[Create an issue][issues-url]**&mdash;e.g., a [defect ("bug") report][issues-new-defect-url] or a [feature request][issues-new-feat-url]&mdash;to propose changes.

    _Exceptions:_

    > If you're working on documentation and fixing something simple like a typo or an easy bug, go ahead and make a pull request.

1.  **[Follow the CONTRIBUTING guidelines][contributing-url].**

    _Why:_

    > Standards and guidelines make communication easier. If you're willing and able to program&mdash;or want to learn how&mdash; following the guidelines will increase the likelihood of adding your changes to the software product.

1.  **[Read the Code of Conduct][conduct-url].**

    _Why:_

    > It's more fun when everybody's friendly and respectful.

1.  **[Make a pull request ![link-external][icon-octicon-link-external]][makeapullrequest-url]** when you're ready for other to review your changes (or you get stuck somewhere).

    _PR novices:_

    > **🙋 Never created a pull request?** No problem. [🆓 Take this free online training ![link-external][icon-octicon-link-external]][makeapullrequest-url]. (It even covers most of the conventions in the [CONTRIBUTING guidelines][contributing-url]!)

## 5. License

[Apache 2.0][license-url]

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdemocracy-ia%2Fgovinfo-link-js.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdemocracy-ia%2Fgovinfo-link-js?ref=badge_large)

<!-- ⛔️ Images ⛔️ -->

[api-26-image]: .github/assets/img/icons8/icon-api-26.png
[conduct-url]: CODE_OF_CONDUCT.md
[contributing-image]: https://img.shields.io/badge/read-CONTRIBUTING%20Guidelines-yellow.svg?style=for-the-badge&label=read+the
[contributing-url]: CONTRIBUTING.md
[issues-new-defect-image]: https://img.shields.io/badge/report-defect-lightgrey.svg?style=for-the-badge&label=report+a
[issues-new-defect-url]: https://github.com/democracy-ia/govinfo-link-js/issues/new?title=fix%28scope%29%3A+50-character-defect-summary&labels=priority%3A+medium%2Cstatus%3A+review+needed%2Ctype%3A+defect&template=defect-report.md
[issues-new-feat-image]: https://img.shields.io/badge/request-feature-blue.svg?style=for-the-badge&label=request+a
[issues-new-feat-url]: https://github.com/democracy-ia/govinfo-link-js/issues/new?title=feat%28scope%29%3A+50-character-change-proposal-summary&labels=priority%3A+medium%2Cstatus%3A+review+needed%2Ctype%3A+Feature&template=feature-request.md
[issues-url]: https://github.com/democracy-ia/govinfo-link-js/issues
[logo-image]: https://avatars1.githubusercontent.com/u/34581173?s=200&v=4
[makeapullrequest-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
[makeapullrequest-url]: http://makeapullrequest.com
[readme-url]: https://github.com/democracy-ia/govinfo-link-js/#readme

<!-- ⛔️ CI Services ⛔️  -->

[appveyor-image]: https://img.shields.io/appveyor/ci/democracy-ia/govinfo-link-js.svg?style=flat-square&logo=appveyor&label=windows%20build
[appveyor-url]: https://ci.appveyor.com/project/democracy-ia/govinfo-link-js
[codacy-coverage-image]: https://img.shields.io/codacy/coverage/b3ac6aaaa3cf41d0897959c1e5d732a3.svg?style=flat-square
[codacy-image]: https://img.shields.io/codacy/grade/b3ac6aaaa3cf41d0897959c1e5d732a3.svg?style=flat-square
[codacy-url]: https://www.codacy.com/app/greg_7/govinfo-link-js?utm_source=github.com&utm_medium=referral&utm_content=democracy-ia/govinfo-link-js&utm_campaign=Badge_Grade
[coveralls-image]: https://img.shields.io/coveralls/github/democracy-ia/govinfo-link-js/master.svg
[coveralls-url]: https://coveralls.io/r/democracy-ia/govinfo-link-js
[daviddm-dev-image]: https://david-dm.org/democracy-ia/govinfo-link-js/dev-status.svg?theme=shields.io&style=flat-square
[daviddm-dev-url]: https://david-dm.org/democracy-ia/govinfo-link-js?type=dev
[daviddm-image]: https://david-dm.org/democracy-ia/govinfo-link-js.svg?theme=shields.io&style=flat-square
[daviddm-url]: https://david-dm.org/democracy-ia/govinfo-link-js
[fossa-image]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdemocracy-ia%2Fgovinfo-link-js.svg?type=shield&style=flat-square
[fossa-url]: https://app.fossa.io/projects/git%2Bgithub.com%2Fdemocracy-ia%2Fgovinfo-link-js?ref=badge_shield
[license-image]: https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square
[license-url]: http://www.apache.org/licenses/LICENSE-2.0
[notice-url]: https://app.fossa.io/reports/07123904-7d26-40a6-b6af-c74e82a53789
[npm-image]: https://badge.fury.io/js/govinfo-link-js.svg?style=flat-square
[npm-url]: https://npmjs.org/package/govinfo-link-js
[npms-image]: https://badges.npms.io/govinfo-link-js.svg?style=flat-square
[npms-url]: https://npms.io/search?q=govinfo-link-js
[nsp-image]: https://nodesecurity.io/orgs/democracy-ia/projects/cd614e9c-1458-438a-92ba-b7579052e1c8/badge
[nsp-url]: https://nodesecurity.io/orgs/democracy-ia/projects/cd614e9c-1458-438a-92ba-b7579052e1c8
[travis-image]: https://img.shields.io/travis/democracy-ia/govinfo-link-js.svg?branch=master&style=flat-square&label=macOS%20%7C%20ubuntu%20builds&logo=travis
[travis-url]: https://travis-ci.org/democracy-ia/govinfo-link-js

<!-- ⛔️ Octicon img references ⛔️  -->

[icon-octicon-alert]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/alert.svg
[icon-octicon-arrow-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-down.svg
[icon-octicon-arrow-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-left.svg
[icon-octicon-arrow-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-right.svg
[icon-octicon-arrow-small-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-down.svg
[icon-octicon-arrow-small-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-left.svg
[icon-octicon-arrow-small-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-right.svg
[icon-octicon-arrow-small-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-up.svg
[icon-octicon-arrow-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-up.svg
[icon-octicon-beaker]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/beaker.svg
[icon-octicon-bell]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bell.svg
[icon-octicon-bold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bold.svg
[icon-octicon-book]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/book.svg
[icon-octicon-bookmark]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bookmark.svg
[icon-octicon-briefcase]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/briefcase.svg
[icon-octicon-broadcast]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/broadcast.svg
[icon-octicon-browser]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/browser.svg
[icon-octicon-bug]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bug.svg
[icon-octicon-calendar]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/calendar.svg
[icon-octicon-check]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/check.svg
[icon-octicon-checklist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/checklist.svg
[icon-octicon-chevron-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-down.svg
[icon-octicon-chevron-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-left.svg
[icon-octicon-chevron-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-right.svg
[icon-octicon-chevron-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-up.svg
[icon-octicon-circle-slash]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/circle-slash.svg
[icon-octicon-circuit-board]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/circuit-board.svg
[icon-octicon-clippy]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/clippy.svg
[icon-octicon-clock]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/clock.svg
[icon-octicon-cloud-download]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/cloud-download.svg
[icon-octicon-cloud-upload]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/cloud-upload.svg
[icon-octicon-code]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/code.svg
[icon-octicon-comment-discussion]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/comment-discussion.svg
[icon-octicon-comment]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/comment.svg
[icon-octicon-credit-card]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/credit-card.svg
[icon-octicon-dash]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/dash.svg
[icon-octicon-dashboard]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/dashboard.svg
[icon-octicon-database]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/database.svg
[icon-octicon-desktop-download]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/desktop-download.svg
[icon-octicon-device-camera-video]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-camera-video.svg
[icon-octicon-device-camera]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-camera.svg
[icon-octicon-device-desktop]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-desktop.svg
[icon-octicon-device-mobile]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-mobile.svg
[icon-octicon-diff-added]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-added.svg
[icon-octicon-diff-ignored]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-ignored.svg
[icon-octicon-diff-modified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-modified.svg
[icon-octicon-diff-removed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-removed.svg
[icon-octicon-diff-renamed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-renamed.svg
[icon-octicon-diff]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff.svg
[icon-octicon-ellipses]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ellipses.svg
[icon-octicon-ellipsis]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ellipsis.svg
[icon-octicon-eye]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/eye.svg
[icon-octicon-file-binary]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-binary.svg
[icon-octicon-file-code]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-code.svg
[icon-octicon-file-directory]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-directory.svg
[icon-octicon-file-media]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-media.svg
[icon-octicon-file-pdf]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-pdf.svg
[icon-octicon-file-submodule]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-submodule.svg
[icon-octicon-file-symlink-directory]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-symlink-directory.svg
[icon-octicon-file-symlink-file]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-symlink-file.svg
[icon-octicon-file-text]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-text.svg
[icon-octicon-file-zip]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-zip.svg
[icon-octicon-file]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file.svg
[icon-octicon-flame]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/flame.svg
[icon-octicon-fold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/fold.svg
[icon-octicon-gear]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gear.svg
[icon-octicon-gift]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gift.svg
[icon-octicon-gist-secret]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gist-secret.svg
[icon-octicon-gist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gist.svg
[icon-octicon-git-branch]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-branch.svg
[icon-octicon-git-commit]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-commit.svg
[icon-octicon-git-compare]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-compare.svg
[icon-octicon-git-merge]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-merge.svg
[icon-octicon-git-pull-request]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-pull-request.svg
[icon-octicon-globe]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/globe.svg
[icon-octicon-grabber]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/grabber.svg
[icon-octicon-graph]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/graph.svg
[icon-octicon-heart]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/heart.svg
[icon-octicon-history]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/history.svg
[icon-octicon-home]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/home.svg
[icon-octicon-horizontal-rule]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/horizontal-rule.svg
[icon-octicon-hubot]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/hubot.svg
[icon-octicon-inbox]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/inbox.svg
[icon-octicon-info]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/info.svg
[icon-octicon-issue-closed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-closed.svg
[icon-octicon-issue-opened]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-opened.svg
[icon-octicon-issue-reopened]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-reopened.svg
[icon-octicon-italic]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/italic.svg
[icon-octicon-jersey]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/jersey.svg
[icon-octicon-key]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/key.svg
[icon-octicon-keyboard]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/keyboard.svg
[icon-octicon-law]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/law.svg
[icon-octicon-light-bulb]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/light-bulb.svg
[icon-octicon-link-external]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/link-external.svg
[icon-octicon-link]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/link.svg
[icon-octicon-list-ordered]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/list-ordered.svg
[icon-octicon-list-unordered]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/list-unordered.svg
[icon-octicon-location]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/location.svg
[icon-octicon-lock]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/lock.svg
[icon-octicon-logo-gist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/logo-gist.svg
[icon-octicon-logo-github]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/logo-github.svg
[icon-octicon-mail-read]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail-read.svg
[icon-octicon-mail-reply]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail-reply.svg
[icon-octicon-mail]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail.svg
[icon-octicon-mark-github]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mark-github.svg
[icon-octicon-markdown]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/markdown.svg
[icon-octicon-megaphone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/megaphone.svg
[icon-octicon-mention]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mention.svg
[icon-octicon-milestone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/milestone.svg
[icon-octicon-mirror]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mirror.svg
[icon-octicon-mortar-board]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mortar-board.svg
[icon-octicon-mute]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mute.svg
[icon-octicon-no-newline]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/no-newline.svg
[icon-octicon-octoface]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/octoface.svg
[icon-octicon-organization]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/organization.svg
[icon-octicon-package]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/package.svg
[icon-octicon-paintcan]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/paintcan.svg
[icon-octicon-pencil]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pencil.svg
[icon-octicon-person]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/person.svg
[icon-octicon-pin]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pin.svg
[icon-octicon-plug]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plug.svg
[icon-octicon-plus-small]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plus-small.svg
[icon-octicon-plus]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plus.svg
[icon-octicon-primitive-dot]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/primitive-dot.svg
[icon-octicon-primitive-square]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/primitive-square.svg
[icon-octicon-pulse]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pulse.svg
[icon-octicon-question]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/question.svg
[icon-octicon-quote]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/quote.svg
[icon-octicon-radio-tower]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/radio-tower.svg
[icon-octicon-reply]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/reply.svg
[icon-octicon-repo-clone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-clone.svg
[icon-octicon-repo-force-push]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-force-push.svg
[icon-octicon-repo-forked]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-forked.svg
[icon-octicon-repo-pull]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-pull.svg
[icon-octicon-repo-push]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-push.svg
[icon-octicon-repo]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo.svg
[icon-octicon-rocket]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/rocket.svg
[icon-octicon-rss]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/rss.svg
[icon-octicon-ruby]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ruby.svg
[icon-octicon-search]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/search.svg
[icon-octicon-server]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/server.svg
[icon-octicon-settings]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/settings.svg
[icon-octicon-shield]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/shield.svg
[icon-octicon-sign-in]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sign-in.svg
[icon-octicon-sign-out]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sign-out.svg
[icon-octicon-smiley]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/smiley.svg
[icon-octicon-squirrel]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/squirrel.svg
[icon-octicon-star]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/star.svg
[icon-octicon-stop]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/stop.svg
[icon-octicon-sync]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sync.svg
[icon-octicon-tag]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tag.svg
[icon-octicon-tasklist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tasklist.svg
[icon-octicon-telescope]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/telescope.svg
[icon-octicon-terminal]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/terminal.svg
[icon-octicon-text-size]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/text-size.svg
[icon-octicon-three-bars]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/three-bars.svg
[icon-octicon-thumbsdown]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/thumbsdown.svg
[icon-octicon-thumbsup]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/thumbsup.svg
[icon-octicon-tools]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tools.svg
[icon-octicon-trashcan]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/trashcan.svg
[icon-octicon-triangle-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-down.svg
[icon-octicon-triangle-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-left.svg
[icon-octicon-triangle-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-right.svg
[icon-octicon-triangle-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-up.svg
[icon-octicon-unfold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unfold.svg
[icon-octicon-unmute]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unmute.svg
[icon-octicon-unverified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unverified.svg
[icon-octicon-verified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/verified.svg
[icon-octicon-versions]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/versions.svg
[icon-octicon-watch]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/watch.svg
[icon-octicon-x]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/x.svg
