{
  localUrl: '../page/quine.html',
  arbitalUrl: 'https://arbital.com/p/quine',
  rawJsonUrl: '../raw/322.json',
  likeableId: '1987',
  likeableType: 'page',
  myLikeValue: '0',
  likeCount: '3',
  dislikeCount: '0',
  likeScore: '3',
  individualLikes: [
    'EricBruylant',
    'NateSoares',
    'EricRogstad'
  ],
  pageId: 'quine',
  edit: '5',
  editSummary: '',
  prevEdit: '4',
  currentEdit: '5',
  wasPublished: 'true',
  type: 'wiki',
  title: 'Quine',
  clickbait: 'A computer program that prints (or does other computations to) its own source code, using indirect self-reference.',
  textLength: '1822',
  alias: 'quine',
  externalUrl: '',
  sortChildrenBy: 'likes',
  hasVote: 'false',
  voteType: '',
  votesAnonymous: 'false',
  editCreatorId: 'NateSoares',
  editCreatedAt: '2016-05-08 20:27:17',
  pageCreatorId: 'PatrickLaVictoir',
  pageCreatedAt: '2016-04-03 22:00:33',
  seeDomainId: '0',
  editDomainId: 'AlexeiAndreev',
  submitToDomainId: '0',
  isAutosave: 'false',
  isSnapshot: 'false',
  isLiveEdit: 'true',
  isMinorEdit: 'false',
  indirectTeacher: 'false',
  todoCount: '0',
  isEditorComment: 'false',
  isApprovedComment: 'true',
  isResolved: 'false',
  snapshotText: '',
  anchorContext: '',
  anchorText: '',
  anchorOffset: '0',
  mergedInto: '',
  isDeleted: 'false',
  viewCount: '100',
  text: 'A quine is a computer program that 'knows' its own entire source code via indirect self-reference, rather than by getting it as input. The classic exercise in this domain is writing a (non-empty) program that takes no input and which outputs its own entire source code. But the same trick can be used to do more than that; for any program that takes a string as input and performs some operations on it, we can write a quining program that takes no input and performs the same operations on the program's own source code.\n\nThe trick to write a quining program is to take a recipe for substituting a string into various places in a program, and then to apply this recipe to itself.  If you've not encountered this idea before, but you know a programming language, it is a nice exercise to try and write a quine which prints its own source code.\n\nAn example of a quine in Python (due to [32]) which prints its own source code:\n\n\ttemplate = 'template = {hole}\\nprint(template.format(hole=repr(template)))'\n\tprint(template.format(hole=repr(template)))\n\nWikipedia has a [list of examples of quining programs](https://en.wikipedia.org/wiki/Quine_(computing)#Examples) in various languages.\n\nNamed after the logician [W.V.O. Quine](https://en.wikipedia.org/wiki/Willard_Van_Orman_Quine), as coined by [Douglas Hofstadter](https://en.wikipedia.org/wiki/Douglas_Hofstadter) in [Gödel, Escher, Bach](https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach), in the informal context of English phrases like\n\n> "Yields falsehood when preceded by its quotation" yields falsehood\n> when preceded by its quotation.\n\nQuining has been used for practical purposes and even seen in the wild, most famously in [Ken Thompson's illustration of a C compiler Trojan backdoor](http://en.wikipedia.org/wiki/Backdoor_(computing)#Compiler_backdoors).',
  metaText: '',
  isTextLoaded: 'true',
  isSubscribedToDiscussion: 'false',
  isSubscribedToUser: 'false',
  isSubscribedAsMaintainer: 'false',
  discussionSubscriberCount: '1',
  maintainerCount: '1',
  userSubscriberCount: '0',
  lastVisit: '',
  hasDraft: 'false',
  votes: [],
  voteSummary: [
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0'
  ],
  muVoteSummary: '0',
  voteScaling: '0',
  currentUserVote: '-2',
  voteCount: '0',
  lockedVoteType: '',
  maxEditEver: '0',
  redLinkCount: '0',
  lockedBy: '',
  lockedUntil: '',
  nextPageId: '',
  prevPageId: '',
  usedAsMastery: 'false',
  proposalEditNum: '0',
  permissions: {
    edit: {
      has: 'false',
      reason: 'You don't have domain permission to edit this page'
    },
    proposeEdit: {
      has: 'true',
      reason: ''
    },
    delete: {
      has: 'false',
      reason: 'You don't have domain permission to delete this page'
    },
    comment: {
      has: 'false',
      reason: 'You can't comment in this domain because you are not a member'
    },
    proposeComment: {
      has: 'true',
      reason: ''
    }
  },
  summaries: {},
  creatorIds: [
    'PatrickLaVictoir',
    'NateSoares'
  ],
  childIds: [],
  parentIds: [
    'godel_codes',
    'diagonal_lemma'
  ],
  commentIds: [],
  questionIds: [],
  tagIds: [],
  relatedIds: [],
  markIds: [],
  explanations: [],
  learnMore: [],
  requirements: [],
  subjects: [],
  lenses: [],
  lensParentId: 'diagonal_lemma',
  pathPages: [],
  learnMoreTaughtMap: {},
  learnMoreCoveredMap: {},
  learnMoreRequiredMap: {},
  editHistory: {},
  domainSubmissions: {},
  answers: [],
  answerCount: '0',
  commentCount: '0',
  newCommentCount: '0',
  linkedMarkCount: '0',
  changeLogs: [
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '17233',
      pageId: 'quine',
      userId: 'JaimeSevillaMolina',
      edit: '0',
      type: 'newParent',
      createdAt: '2016-07-21 17:36:30',
      auxPageId: 'diagonal_lemma',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '9657',
      pageId: 'quine',
      userId: 'NateSoares',
      edit: '5',
      type: 'newEdit',
      createdAt: '2016-05-08 20:27:17',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '9627',
      pageId: 'quine',
      userId: 'PatrickLaVictoir',
      edit: '4',
      type: 'newEdit',
      createdAt: '2016-05-06 17:29:58',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '9626',
      pageId: 'quine',
      userId: 'PatrickLaVictoir',
      edit: '3',
      type: 'newEdit',
      createdAt: '2016-05-06 17:24:26',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '9209',
      pageId: 'quine',
      userId: 'PatrickLaVictoir',
      edit: '2',
      type: 'newEdit',
      createdAt: '2016-04-03 22:12:26',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '9207',
      pageId: 'quine',
      userId: 'PatrickLaVictoir',
      edit: '1',
      type: 'newEdit',
      createdAt: '2016-04-03 22:00:33',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    }
  ],
  feedSubmissions: [],
  searchStrings: {},
  hasChildren: 'false',
  hasParents: 'true',
  redAliases: {},
  improvementTagIds: [],
  nonMetaTagIds: [],
  todos: [],
  slowDownMap: 'null',
  speedUpMap: 'null',
  arcPageIds: 'null',
  contentRequests: {}
}