├── .gitignore ├── google2e662aa9cf6dc347.html ├── README.md ├── img ├── wait.gif ├── ClearType.png ├── ClearType.psd ├── face-random.png └── BulletinInner.png ├── psd ├── Ink.psd ├── Emotions.psd ├── InkReason.psd ├── IntrosEnds.psd ├── StampBot.psd ├── PezpertInner.psd ├── ArskickersInner.psd ├── ReasonStampTop.psd ├── SonDrawingInner.psd ├── SonDrawingMount.psd ├── SonDrawingOuter.psd └── BrothelFlyerInner.psd ├── capture ├── Emblem.png ├── Filer.png ├── News.png ├── EndNews.png ├── GiveIcon.png ├── LoadDrag.png ├── Upgrades.png ├── EmblemsMOA.png ├── EmblemsMOL.png ├── IdCardInner.png ├── RifleKill.png ├── RifleTranq.png ├── RulesInner.png ├── RulesTabL.png ├── RulesTabR.png ├── StampBarMid.png ├── CitationInner.png ├── DetainButton.png ├── GymFlyerInner.png ├── LoadButtonNew.png ├── PezpertInner.png ├── ReasonButton.png ├── RulesUpgrade0.png ├── RulesUpgrade1.png ├── RulesUpgrade2.png ├── RulesUpgrade3.png ├── SearchButton.png ├── VisaSlipInner.png ├── ApartmentClass.png ├── ArskickersInner.png ├── AsylumGrantInner.png ├── BizCardInnerBack.png ├── BrothelHelpInner.png ├── EntryPermitInner.png ├── EntryTicketInner.png ├── FamilyPhotoInner.png ├── HintMissingInner.png ├── LocketInnerOpen.png ├── LoveSongInner1.png ├── LoveSongInner2.png ├── LoveSongInner3.png ├── LoveSongInner4.png ├── NewVersionButton.png ├── PlaqueOneInner.png ├── PlaqueTwoInner.png ├── PoisonInnerBack.png ├── PoisonInnerOpen1.png ├── PoisonInnerOpen2.png ├── PoliceBadgeInner.png ├── PressPassInner.png ├── RulesInnerBasic.png ├── RulesInnerBooth.png ├── RulesInnerDocs.png ├── RulesInnerHome.png ├── RulesInnerIdCard.png ├── RulesInnerLast.png ├── RulesInnerRegion.png ├── SeizureSlipInner.png ├── SonDrawingInner.png ├── SonDrawingMount.png ├── SonDrawingOuter.png ├── SpyDocsInnerBack.png ├── TranscriptInner.png ├── VaccineCertInner.png ├── WorkPermitInner.png ├── AccessPermitInner.png ├── BizCardInnerFront.png ├── BrothelFlyerInner.png ├── BulletinInnerNews.png ├── EzicNoteInnerOpen.png ├── FingerprintButton.png ├── FingerprintsInner.png ├── IdSupplementInner.png ├── PassportInnerImpor.png ├── BulletinInnerBoothTut.png ├── BulletinInnerDiploTut.png ├── BulletinInnerFilerTut.png ├── BulletinInnerGunTut.png ├── BulletinInnerRuleTut.png ├── DiplomaticAuthInner.png ├── ForgeryFlyerInnerBack.png ├── IdentityRecordInner.png ├── PassportInnerAntegria.png ├── PassportInnerKolechia.png ├── PassportInnerObristan.png ├── PassportInnerRepublia.png ├── RulesInnerAsylumGrant.png ├── RulesInnerEntryPermit.png ├── RulesInnerVaccineCert.png ├── RulesInnerWorkPermit.png ├── VictimPhotoInnerBack.png ├── BulletinInnerContraTut.png ├── BulletinInnerCriminals.png ├── BulletinInnerMissingTut.png ├── ForgeryFlyerInnerFront.png ├── PassportInnerArstotzka.png ├── PassportInnerUnitedFed.png ├── RulesInnerAccessPermit.png ├── RulesInnerConfiscation.png ├── RulesInnerIdSupplement.png ├── BulletinInnerCorrelateTut.png ├── BulletinInnerPassportTut.png ├── RulesInnerDiplomaticAuth.png └── RulesInnerRegionArstotzka.png ├── export ├── Intro1.png ├── Shutter.png ├── boss0.png ├── boss1.png ├── boss2.png ├── elisa.png ├── jorji0.png ├── jorji1.png ├── jorji2.png ├── jorji3.png ├── jorji4.png ├── Arstotzka.png ├── Emotions.png ├── InkDenied.png ├── InkReason.png ├── brothel2.png ├── brothel3.png ├── face-F00.png ├── face-F01.png ├── face-F02.png ├── face-F03.png ├── face-F10.png ├── face-F11.png ├── face-F12.png ├── face-F13.png ├── face-F20.png ├── face-F21.png ├── face-F22.png ├── face-F23.png ├── face-F30.png ├── face-F31.png ├── face-F32.png ├── face-F33.png ├── face-F40.png ├── face-F41.png ├── face-F42.png ├── face-F43.png ├── face-M00.png ├── face-M01.png ├── face-M02.png ├── face-M03.png ├── face-M10.png ├── face-M11.png ├── face-M12.png ├── face-M13.png ├── face-M20.png ├── face-M21.png ├── face-M22.png ├── face-M23.png ├── face-M30.png ├── face-M31.png ├── face-M32.png ├── face-M33.png ├── face-M40.png ├── face-M41.png ├── face-M42.png ├── face-M43.png ├── InkApproved.png ├── Obrinspector.png ├── arskicker0.png ├── arskicker1.png ├── boss_angry.png ├── boss_buddy.png ├── ezic_diplo.png ├── ezic_final.png ├── ezic_handler.png ├── ezic_intro.png ├── jorji_base.png ├── kid_killer0.png ├── kid_killer1.png ├── kid_killer2.png ├── watch_giver0.png ├── watch_giver1.png ├── ReasonStampTop.png ├── StampBotDenied.png ├── familiar_face.png ├── jorji_criminal.png ├── jorji_goodbye.png ├── jorji_smuggle0.png ├── jorji_smuggle1.png ├── killerathlete.png ├── prison_guard0.png ├── prison_guard1.png ├── prison_guard2.png ├── prison_guard3.png ├── two_passports.png ├── whistleblower.png ├── LoadButtonLatest.png ├── StampBotApproved.png ├── boss_appearance.png ├── ezic_diplo_follow.png ├── ezic_handler_ext.png ├── ezic_handler_pre0.png ├── ezic_handler_pre1.png ├── friendly_guard0.png ├── friendly_guard1.png ├── friendly_guard2.png ├── friendly_guard3.png ├── friendly_guard4.png ├── jorji_appearance.png ├── jorji_passports.png ├── jorji_smuggling.png ├── prison_guard_bomb.png ├── ezic_handler_diplo.png ├── ezic_handler_post0.png ├── ezic_handler_post1.png ├── ezic_handler_snipe.png ├── search_bribe_intro.png ├── secret_police_final.png ├── secret_police_intro.png ├── arskicker_appearance.png ├── ezic_diplo_appearance.png ├── ezic_handler_postsnipe.png ├── ezic_poison_messenger.png ├── hiring_engineers_end.png ├── hiring_engineers_start.png ├── kid_killer_appearance.png ├── secret_police_caught.png ├── watch_giver_appearance.png ├── prison_guard_appearance.png ├── secret_police_appearance.png ├── friendly_guard_appearance.png ├── hiring_engineer_appearance.png └── kid_killer_parent_appearance.png ├── fonts ├── BMgermar.TTF ├── PROPAGAN.ttf ├── fallback.ttf ├── 84-Orange.ttf ├── v5loxical.ttf ├── Arial-Black.ttf ├── Raleway-Heavy.otf ├── NotNokia-U--knj10b.ttf ├── Resource-U--knj10.ttf ├── RightyUsesLeftHand.ttf ├── pixelplay--shnmk14.ttf ├── Bangalor-U--elisat10.ttf ├── 04B03-U--misaki_gothic.ttf ├── 53Veda-U--misaki_gothic.ttf ├── ChixaDemiBold--shnmk12b.ttf ├── 5mikropix--misaki_gothic.ttf ├── MiniKylie-U--misaki_gothic.ttf ├── BMmini-U--88Zen--misaki_gothic.ttf ├── MotorolaScreentype-U--shnmk16b.ttf ├── PlainBlack--EncientGermanGothic.ttf ├── AtariSmall-U--misaki_gothic--88Zen.ttf └── sd_auto_pilot--BetinaScriptExtraCTT--nagurip.ttf ├── final ├── es │ ├── Intro1.png │ ├── Shutter.png │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── Obrinspector.png │ ├── PezpertInner.png │ ├── ArskickersInner.png │ ├── ReasonStampTop.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotDenied.png │ ├── BrothelFlyerInner.png │ ├── LoadButtonLatest.png │ ├── StampBotApproved.png │ └── VictimPhotoInnerBack.png ├── fr │ ├── Intro1.png │ ├── Shutter.png │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── Obrinspector.png │ ├── PezpertInner.png │ ├── ReasonStampTop.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotDenied.png │ ├── LoadButtonLatest.png │ ├── StampBotApproved.png │ └── VictimPhotoInnerBack.png ├── it │ ├── Intro1.png │ ├── Shutter.png │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── Obrinspector.png │ ├── PezpertInner.png │ ├── ArskickersInner.png │ ├── ReasonStampTop.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotDenied.png │ ├── LoadButtonLatest.png │ ├── StampBotApproved.png │ └── VictimPhotoInnerBack.png ├── ru │ ├── Intro1.png │ ├── Shutter.png │ ├── Arstotzka.png │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── Obrinspector.png │ ├── PezpertInner.png │ ├── ArskickersInner.png │ ├── ReasonStampTop.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotDenied.png │ ├── BrothelFlyerInner.png │ ├── LoadButtonLatest.png │ ├── StampBotApproved.png │ └── VictimPhotoInnerBack.png ├── de │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── PezpertInner.png │ ├── ArskickersInner.png │ ├── ReasonStampTop.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotDenied.png │ ├── BrothelFlyerInner.png │ ├── LoadButtonLatest.png │ └── StampBotApproved.png └── pt-BR │ ├── Intro1.png │ ├── Shutter.png │ ├── Emotions.png │ ├── InkDenied.png │ ├── InkReason.png │ ├── InkApproved.png │ ├── Obrinspector.png │ ├── PezpertInner.png │ ├── ReasonStampTop.png │ ├── StampBotDenied.png │ ├── ArskickersInner.png │ ├── BrothelFlyerInner.png │ ├── LoadButtonLatest.png │ ├── SonDrawingInner.png │ ├── SonDrawingMount.png │ ├── SonDrawingOuter.png │ ├── StampBotApproved.png │ └── VictimPhotoInnerBack.png ├── ext ├── CaptureVisible │ ├── icon_128.png │ ├── installed.js │ ├── background.js │ └── manifest.json ├── csvToArray.v2.1.min.js ├── lib │ ├── base64.js │ └── underscore-min.js ├── marklib.js ├── cloud.js ├── jszip-inflate.js ├── jstorage.min.js ├── divcap.js ├── jszip-deflate.js └── github.js ├── terms.txt └── css ├── fonts.css ├── captures.css └── normalize.css /.gitignore: -------------------------------------------------------------------------------- 1 | *.sublime* 2 | sftp-config.* 3 | -------------------------------------------------------------------------------- /google2e662aa9cf6dc347.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google2e662aa9cf6dc347.html -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### **Papers, Please** - Localization Tool 2 | 3 | http://paperspleaseloc.github.io 4 | 5 | -------------------------------------------------------------------------------- /img/wait.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/img/wait.gif -------------------------------------------------------------------------------- /psd/Ink.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/Ink.psd -------------------------------------------------------------------------------- /capture/Emblem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/Emblem.png -------------------------------------------------------------------------------- /capture/Filer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/Filer.png -------------------------------------------------------------------------------- /capture/News.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/News.png -------------------------------------------------------------------------------- /export/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/Intro1.png -------------------------------------------------------------------------------- /export/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/Shutter.png -------------------------------------------------------------------------------- /export/boss0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss0.png -------------------------------------------------------------------------------- /export/boss1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss1.png -------------------------------------------------------------------------------- /export/boss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss2.png -------------------------------------------------------------------------------- /export/elisa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/elisa.png -------------------------------------------------------------------------------- /export/jorji0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji0.png -------------------------------------------------------------------------------- /export/jorji1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji1.png -------------------------------------------------------------------------------- /export/jorji2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji2.png -------------------------------------------------------------------------------- /export/jorji3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji3.png -------------------------------------------------------------------------------- /export/jorji4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji4.png -------------------------------------------------------------------------------- /fonts/BMgermar.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/BMgermar.TTF -------------------------------------------------------------------------------- /fonts/PROPAGAN.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/PROPAGAN.ttf -------------------------------------------------------------------------------- /fonts/fallback.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/fallback.ttf -------------------------------------------------------------------------------- /img/ClearType.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/img/ClearType.png -------------------------------------------------------------------------------- /img/ClearType.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/img/ClearType.psd -------------------------------------------------------------------------------- /psd/Emotions.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/Emotions.psd -------------------------------------------------------------------------------- /psd/InkReason.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/InkReason.psd -------------------------------------------------------------------------------- /psd/IntrosEnds.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/IntrosEnds.psd -------------------------------------------------------------------------------- /psd/StampBot.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/StampBot.psd -------------------------------------------------------------------------------- /capture/EndNews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EndNews.png -------------------------------------------------------------------------------- /capture/GiveIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/GiveIcon.png -------------------------------------------------------------------------------- /capture/LoadDrag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoadDrag.png -------------------------------------------------------------------------------- /capture/Upgrades.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/Upgrades.png -------------------------------------------------------------------------------- /export/Arstotzka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/Arstotzka.png -------------------------------------------------------------------------------- /export/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/Emotions.png -------------------------------------------------------------------------------- /export/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/InkDenied.png -------------------------------------------------------------------------------- /export/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/InkReason.png -------------------------------------------------------------------------------- /export/brothel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/brothel2.png -------------------------------------------------------------------------------- /export/brothel3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/brothel3.png -------------------------------------------------------------------------------- /export/face-F00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F00.png -------------------------------------------------------------------------------- /export/face-F01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F01.png -------------------------------------------------------------------------------- /export/face-F02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F02.png -------------------------------------------------------------------------------- /export/face-F03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F03.png -------------------------------------------------------------------------------- /export/face-F10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F10.png -------------------------------------------------------------------------------- /export/face-F11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F11.png -------------------------------------------------------------------------------- /export/face-F12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F12.png -------------------------------------------------------------------------------- /export/face-F13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F13.png -------------------------------------------------------------------------------- /export/face-F20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F20.png -------------------------------------------------------------------------------- /export/face-F21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F21.png -------------------------------------------------------------------------------- /export/face-F22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F22.png -------------------------------------------------------------------------------- /export/face-F23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F23.png -------------------------------------------------------------------------------- /export/face-F30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F30.png -------------------------------------------------------------------------------- /export/face-F31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F31.png -------------------------------------------------------------------------------- /export/face-F32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F32.png -------------------------------------------------------------------------------- /export/face-F33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F33.png -------------------------------------------------------------------------------- /export/face-F40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F40.png -------------------------------------------------------------------------------- /export/face-F41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F41.png -------------------------------------------------------------------------------- /export/face-F42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F42.png -------------------------------------------------------------------------------- /export/face-F43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-F43.png -------------------------------------------------------------------------------- /export/face-M00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M00.png -------------------------------------------------------------------------------- /export/face-M01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M01.png -------------------------------------------------------------------------------- /export/face-M02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M02.png -------------------------------------------------------------------------------- /export/face-M03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M03.png -------------------------------------------------------------------------------- /export/face-M10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M10.png -------------------------------------------------------------------------------- /export/face-M11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M11.png -------------------------------------------------------------------------------- /export/face-M12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M12.png -------------------------------------------------------------------------------- /export/face-M13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M13.png -------------------------------------------------------------------------------- /export/face-M20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M20.png -------------------------------------------------------------------------------- /export/face-M21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M21.png -------------------------------------------------------------------------------- /export/face-M22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M22.png -------------------------------------------------------------------------------- /export/face-M23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M23.png -------------------------------------------------------------------------------- /export/face-M30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M30.png -------------------------------------------------------------------------------- /export/face-M31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M31.png -------------------------------------------------------------------------------- /export/face-M32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M32.png -------------------------------------------------------------------------------- /export/face-M33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M33.png -------------------------------------------------------------------------------- /export/face-M40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M40.png -------------------------------------------------------------------------------- /export/face-M41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M41.png -------------------------------------------------------------------------------- /export/face-M42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M42.png -------------------------------------------------------------------------------- /export/face-M43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/face-M43.png -------------------------------------------------------------------------------- /final/es/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/Intro1.png -------------------------------------------------------------------------------- /final/es/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/Shutter.png -------------------------------------------------------------------------------- /final/fr/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/Intro1.png -------------------------------------------------------------------------------- /final/fr/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/Shutter.png -------------------------------------------------------------------------------- /final/it/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/Intro1.png -------------------------------------------------------------------------------- /final/it/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/Shutter.png -------------------------------------------------------------------------------- /final/ru/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/Intro1.png -------------------------------------------------------------------------------- /final/ru/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/Shutter.png -------------------------------------------------------------------------------- /fonts/84-Orange.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/84-Orange.ttf -------------------------------------------------------------------------------- /fonts/v5loxical.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/v5loxical.ttf -------------------------------------------------------------------------------- /img/face-random.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/img/face-random.png -------------------------------------------------------------------------------- /psd/PezpertInner.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/PezpertInner.psd -------------------------------------------------------------------------------- /capture/EmblemsMOA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EmblemsMOA.png -------------------------------------------------------------------------------- /capture/EmblemsMOL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EmblemsMOL.png -------------------------------------------------------------------------------- /capture/IdCardInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/IdCardInner.png -------------------------------------------------------------------------------- /capture/RifleKill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RifleKill.png -------------------------------------------------------------------------------- /capture/RifleTranq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RifleTranq.png -------------------------------------------------------------------------------- /capture/RulesInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInner.png -------------------------------------------------------------------------------- /capture/RulesTabL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesTabL.png -------------------------------------------------------------------------------- /capture/RulesTabR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesTabR.png -------------------------------------------------------------------------------- /capture/StampBarMid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/StampBarMid.png -------------------------------------------------------------------------------- /export/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/InkApproved.png -------------------------------------------------------------------------------- /export/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/Obrinspector.png -------------------------------------------------------------------------------- /export/arskicker0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/arskicker0.png -------------------------------------------------------------------------------- /export/arskicker1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/arskicker1.png -------------------------------------------------------------------------------- /export/boss_angry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss_angry.png -------------------------------------------------------------------------------- /export/boss_buddy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss_buddy.png -------------------------------------------------------------------------------- /export/ezic_diplo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_diplo.png -------------------------------------------------------------------------------- /export/ezic_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_final.png -------------------------------------------------------------------------------- /export/ezic_handler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler.png -------------------------------------------------------------------------------- /export/ezic_intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_intro.png -------------------------------------------------------------------------------- /export/jorji_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_base.png -------------------------------------------------------------------------------- /export/kid_killer0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/kid_killer0.png -------------------------------------------------------------------------------- /export/kid_killer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/kid_killer1.png -------------------------------------------------------------------------------- /export/kid_killer2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/kid_killer2.png -------------------------------------------------------------------------------- /export/watch_giver0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/watch_giver0.png -------------------------------------------------------------------------------- /export/watch_giver1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/watch_giver1.png -------------------------------------------------------------------------------- /final/de/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/Emotions.png -------------------------------------------------------------------------------- /final/de/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/InkDenied.png -------------------------------------------------------------------------------- /final/de/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/InkReason.png -------------------------------------------------------------------------------- /final/es/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/Emotions.png -------------------------------------------------------------------------------- /final/es/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/InkDenied.png -------------------------------------------------------------------------------- /final/es/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/InkReason.png -------------------------------------------------------------------------------- /final/fr/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/Emotions.png -------------------------------------------------------------------------------- /final/fr/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/InkDenied.png -------------------------------------------------------------------------------- /final/fr/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/InkReason.png -------------------------------------------------------------------------------- /final/it/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/Emotions.png -------------------------------------------------------------------------------- /final/it/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/InkDenied.png -------------------------------------------------------------------------------- /final/it/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/InkReason.png -------------------------------------------------------------------------------- /final/pt-BR/Intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/Intro1.png -------------------------------------------------------------------------------- /final/pt-BR/Shutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/Shutter.png -------------------------------------------------------------------------------- /final/ru/Arstotzka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/Arstotzka.png -------------------------------------------------------------------------------- /final/ru/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/Emotions.png -------------------------------------------------------------------------------- /final/ru/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/InkDenied.png -------------------------------------------------------------------------------- /final/ru/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/InkReason.png -------------------------------------------------------------------------------- /fonts/Arial-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/Arial-Black.ttf -------------------------------------------------------------------------------- /fonts/Raleway-Heavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/Raleway-Heavy.otf -------------------------------------------------------------------------------- /img/BulletinInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/img/BulletinInner.png -------------------------------------------------------------------------------- /psd/ArskickersInner.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/ArskickersInner.psd -------------------------------------------------------------------------------- /psd/ReasonStampTop.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/ReasonStampTop.psd -------------------------------------------------------------------------------- /psd/SonDrawingInner.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/SonDrawingInner.psd -------------------------------------------------------------------------------- /psd/SonDrawingMount.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/SonDrawingMount.psd -------------------------------------------------------------------------------- /psd/SonDrawingOuter.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/SonDrawingOuter.psd -------------------------------------------------------------------------------- /capture/CitationInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/CitationInner.png -------------------------------------------------------------------------------- /capture/DetainButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/DetainButton.png -------------------------------------------------------------------------------- /capture/GymFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/GymFlyerInner.png -------------------------------------------------------------------------------- /capture/LoadButtonNew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoadButtonNew.png -------------------------------------------------------------------------------- /capture/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PezpertInner.png -------------------------------------------------------------------------------- /capture/ReasonButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/ReasonButton.png -------------------------------------------------------------------------------- /capture/RulesUpgrade0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesUpgrade0.png -------------------------------------------------------------------------------- /capture/RulesUpgrade1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesUpgrade1.png -------------------------------------------------------------------------------- /capture/RulesUpgrade2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesUpgrade2.png -------------------------------------------------------------------------------- /capture/RulesUpgrade3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesUpgrade3.png -------------------------------------------------------------------------------- /capture/SearchButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SearchButton.png -------------------------------------------------------------------------------- /capture/VisaSlipInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/VisaSlipInner.png -------------------------------------------------------------------------------- /export/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ReasonStampTop.png -------------------------------------------------------------------------------- /export/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/StampBotDenied.png -------------------------------------------------------------------------------- /export/familiar_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/familiar_face.png -------------------------------------------------------------------------------- /export/jorji_criminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_criminal.png -------------------------------------------------------------------------------- /export/jorji_goodbye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_goodbye.png -------------------------------------------------------------------------------- /export/jorji_smuggle0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_smuggle0.png -------------------------------------------------------------------------------- /export/jorji_smuggle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_smuggle1.png -------------------------------------------------------------------------------- /export/killerathlete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/killerathlete.png -------------------------------------------------------------------------------- /export/prison_guard0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard0.png -------------------------------------------------------------------------------- /export/prison_guard1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard1.png -------------------------------------------------------------------------------- /export/prison_guard2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard2.png -------------------------------------------------------------------------------- /export/prison_guard3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard3.png -------------------------------------------------------------------------------- /export/two_passports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/two_passports.png -------------------------------------------------------------------------------- /export/whistleblower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/whistleblower.png -------------------------------------------------------------------------------- /final/de/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/InkApproved.png -------------------------------------------------------------------------------- /final/de/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/PezpertInner.png -------------------------------------------------------------------------------- /final/es/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/InkApproved.png -------------------------------------------------------------------------------- /final/es/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/Obrinspector.png -------------------------------------------------------------------------------- /final/es/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/PezpertInner.png -------------------------------------------------------------------------------- /final/fr/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/InkApproved.png -------------------------------------------------------------------------------- /final/fr/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/Obrinspector.png -------------------------------------------------------------------------------- /final/fr/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/PezpertInner.png -------------------------------------------------------------------------------- /final/it/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/InkApproved.png -------------------------------------------------------------------------------- /final/it/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/Obrinspector.png -------------------------------------------------------------------------------- /final/it/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/PezpertInner.png -------------------------------------------------------------------------------- /final/pt-BR/Emotions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/Emotions.png -------------------------------------------------------------------------------- /final/pt-BR/InkDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/InkDenied.png -------------------------------------------------------------------------------- /final/pt-BR/InkReason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/InkReason.png -------------------------------------------------------------------------------- /final/ru/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/InkApproved.png -------------------------------------------------------------------------------- /final/ru/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/Obrinspector.png -------------------------------------------------------------------------------- /final/ru/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/PezpertInner.png -------------------------------------------------------------------------------- /psd/BrothelFlyerInner.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/psd/BrothelFlyerInner.psd -------------------------------------------------------------------------------- /capture/ApartmentClass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/ApartmentClass.png -------------------------------------------------------------------------------- /capture/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/ArskickersInner.png -------------------------------------------------------------------------------- /capture/AsylumGrantInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/AsylumGrantInner.png -------------------------------------------------------------------------------- /capture/BizCardInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BizCardInnerBack.png -------------------------------------------------------------------------------- /capture/BrothelHelpInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BrothelHelpInner.png -------------------------------------------------------------------------------- /capture/EntryPermitInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EntryPermitInner.png -------------------------------------------------------------------------------- /capture/EntryTicketInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EntryTicketInner.png -------------------------------------------------------------------------------- /capture/FamilyPhotoInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/FamilyPhotoInner.png -------------------------------------------------------------------------------- /capture/HintMissingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/HintMissingInner.png -------------------------------------------------------------------------------- /capture/LocketInnerOpen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LocketInnerOpen.png -------------------------------------------------------------------------------- /capture/LoveSongInner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoveSongInner1.png -------------------------------------------------------------------------------- /capture/LoveSongInner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoveSongInner2.png -------------------------------------------------------------------------------- /capture/LoveSongInner3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoveSongInner3.png -------------------------------------------------------------------------------- /capture/LoveSongInner4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/LoveSongInner4.png -------------------------------------------------------------------------------- /capture/NewVersionButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/NewVersionButton.png -------------------------------------------------------------------------------- /capture/PlaqueOneInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PlaqueOneInner.png -------------------------------------------------------------------------------- /capture/PlaqueTwoInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PlaqueTwoInner.png -------------------------------------------------------------------------------- /capture/PoisonInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PoisonInnerBack.png -------------------------------------------------------------------------------- /capture/PoisonInnerOpen1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PoisonInnerOpen1.png -------------------------------------------------------------------------------- /capture/PoisonInnerOpen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PoisonInnerOpen2.png -------------------------------------------------------------------------------- /capture/PoliceBadgeInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PoliceBadgeInner.png -------------------------------------------------------------------------------- /capture/PressPassInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PressPassInner.png -------------------------------------------------------------------------------- /capture/RulesInnerBasic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerBasic.png -------------------------------------------------------------------------------- /capture/RulesInnerBooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerBooth.png -------------------------------------------------------------------------------- /capture/RulesInnerDocs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerDocs.png -------------------------------------------------------------------------------- /capture/RulesInnerHome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerHome.png -------------------------------------------------------------------------------- /capture/RulesInnerIdCard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerIdCard.png -------------------------------------------------------------------------------- /capture/RulesInnerLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerLast.png -------------------------------------------------------------------------------- /capture/RulesInnerRegion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerRegion.png -------------------------------------------------------------------------------- /capture/SeizureSlipInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SeizureSlipInner.png -------------------------------------------------------------------------------- /capture/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SonDrawingInner.png -------------------------------------------------------------------------------- /capture/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SonDrawingMount.png -------------------------------------------------------------------------------- /capture/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SonDrawingOuter.png -------------------------------------------------------------------------------- /capture/SpyDocsInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/SpyDocsInnerBack.png -------------------------------------------------------------------------------- /capture/TranscriptInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/TranscriptInner.png -------------------------------------------------------------------------------- /capture/VaccineCertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/VaccineCertInner.png -------------------------------------------------------------------------------- /capture/WorkPermitInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/WorkPermitInner.png -------------------------------------------------------------------------------- /export/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/LoadButtonLatest.png -------------------------------------------------------------------------------- /export/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/StampBotApproved.png -------------------------------------------------------------------------------- /export/boss_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/boss_appearance.png -------------------------------------------------------------------------------- /export/ezic_diplo_follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_diplo_follow.png -------------------------------------------------------------------------------- /export/ezic_handler_ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_ext.png -------------------------------------------------------------------------------- /export/ezic_handler_pre0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_pre0.png -------------------------------------------------------------------------------- /export/ezic_handler_pre1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_pre1.png -------------------------------------------------------------------------------- /export/friendly_guard0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard0.png -------------------------------------------------------------------------------- /export/friendly_guard1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard1.png -------------------------------------------------------------------------------- /export/friendly_guard2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard2.png -------------------------------------------------------------------------------- /export/friendly_guard3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard3.png -------------------------------------------------------------------------------- /export/friendly_guard4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard4.png -------------------------------------------------------------------------------- /export/jorji_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_appearance.png -------------------------------------------------------------------------------- /export/jorji_passports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_passports.png -------------------------------------------------------------------------------- /export/jorji_smuggling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/jorji_smuggling.png -------------------------------------------------------------------------------- /export/prison_guard_bomb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard_bomb.png -------------------------------------------------------------------------------- /final/de/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/ArskickersInner.png -------------------------------------------------------------------------------- /final/de/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/ReasonStampTop.png -------------------------------------------------------------------------------- /final/de/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/SonDrawingInner.png -------------------------------------------------------------------------------- /final/de/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/SonDrawingMount.png -------------------------------------------------------------------------------- /final/de/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/de/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/StampBotDenied.png -------------------------------------------------------------------------------- /final/es/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/ArskickersInner.png -------------------------------------------------------------------------------- /final/es/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/ReasonStampTop.png -------------------------------------------------------------------------------- /final/es/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/SonDrawingInner.png -------------------------------------------------------------------------------- /final/es/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/SonDrawingMount.png -------------------------------------------------------------------------------- /final/es/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/es/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/StampBotDenied.png -------------------------------------------------------------------------------- /final/fr/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/ReasonStampTop.png -------------------------------------------------------------------------------- /final/fr/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/SonDrawingInner.png -------------------------------------------------------------------------------- /final/fr/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/SonDrawingMount.png -------------------------------------------------------------------------------- /final/fr/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/fr/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/StampBotDenied.png -------------------------------------------------------------------------------- /final/it/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/ArskickersInner.png -------------------------------------------------------------------------------- /final/it/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/ReasonStampTop.png -------------------------------------------------------------------------------- /final/it/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/SonDrawingInner.png -------------------------------------------------------------------------------- /final/it/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/SonDrawingMount.png -------------------------------------------------------------------------------- /final/it/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/it/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/StampBotDenied.png -------------------------------------------------------------------------------- /final/pt-BR/InkApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/InkApproved.png -------------------------------------------------------------------------------- /final/pt-BR/Obrinspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/Obrinspector.png -------------------------------------------------------------------------------- /final/pt-BR/PezpertInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/PezpertInner.png -------------------------------------------------------------------------------- /final/ru/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/ArskickersInner.png -------------------------------------------------------------------------------- /final/ru/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/ReasonStampTop.png -------------------------------------------------------------------------------- /final/ru/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/SonDrawingInner.png -------------------------------------------------------------------------------- /final/ru/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/SonDrawingMount.png -------------------------------------------------------------------------------- /final/ru/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/ru/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/StampBotDenied.png -------------------------------------------------------------------------------- /fonts/NotNokia-U--knj10b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/NotNokia-U--knj10b.ttf -------------------------------------------------------------------------------- /fonts/Resource-U--knj10.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/Resource-U--knj10.ttf -------------------------------------------------------------------------------- /fonts/RightyUsesLeftHand.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/RightyUsesLeftHand.ttf -------------------------------------------------------------------------------- /fonts/pixelplay--shnmk14.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/pixelplay--shnmk14.ttf -------------------------------------------------------------------------------- /capture/AccessPermitInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/AccessPermitInner.png -------------------------------------------------------------------------------- /capture/BizCardInnerFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BizCardInnerFront.png -------------------------------------------------------------------------------- /capture/BrothelFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BrothelFlyerInner.png -------------------------------------------------------------------------------- /capture/BulletinInnerNews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerNews.png -------------------------------------------------------------------------------- /capture/EzicNoteInnerOpen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/EzicNoteInnerOpen.png -------------------------------------------------------------------------------- /capture/FingerprintButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/FingerprintButton.png -------------------------------------------------------------------------------- /capture/FingerprintsInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/FingerprintsInner.png -------------------------------------------------------------------------------- /capture/IdSupplementInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/IdSupplementInner.png -------------------------------------------------------------------------------- /capture/PassportInnerImpor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerImpor.png -------------------------------------------------------------------------------- /export/ezic_handler_diplo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_diplo.png -------------------------------------------------------------------------------- /export/ezic_handler_post0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_post0.png -------------------------------------------------------------------------------- /export/ezic_handler_post1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_post1.png -------------------------------------------------------------------------------- /export/ezic_handler_snipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_snipe.png -------------------------------------------------------------------------------- /export/search_bribe_intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/search_bribe_intro.png -------------------------------------------------------------------------------- /export/secret_police_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/secret_police_final.png -------------------------------------------------------------------------------- /export/secret_police_intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/secret_police_intro.png -------------------------------------------------------------------------------- /final/de/BrothelFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/BrothelFlyerInner.png -------------------------------------------------------------------------------- /final/de/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/de/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/de/StampBotApproved.png -------------------------------------------------------------------------------- /final/es/BrothelFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/BrothelFlyerInner.png -------------------------------------------------------------------------------- /final/es/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/es/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/StampBotApproved.png -------------------------------------------------------------------------------- /final/fr/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/fr/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/StampBotApproved.png -------------------------------------------------------------------------------- /final/it/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/it/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/StampBotApproved.png -------------------------------------------------------------------------------- /final/pt-BR/ReasonStampTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/ReasonStampTop.png -------------------------------------------------------------------------------- /final/pt-BR/StampBotDenied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/StampBotDenied.png -------------------------------------------------------------------------------- /final/ru/BrothelFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/BrothelFlyerInner.png -------------------------------------------------------------------------------- /final/ru/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/ru/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/StampBotApproved.png -------------------------------------------------------------------------------- /fonts/Bangalor-U--elisat10.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/Bangalor-U--elisat10.ttf -------------------------------------------------------------------------------- /capture/BulletinInnerBoothTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerBoothTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerDiploTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerDiploTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerFilerTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerFilerTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerGunTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerGunTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerRuleTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerRuleTut.png -------------------------------------------------------------------------------- /capture/DiplomaticAuthInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/DiplomaticAuthInner.png -------------------------------------------------------------------------------- /capture/ForgeryFlyerInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/ForgeryFlyerInnerBack.png -------------------------------------------------------------------------------- /capture/IdentityRecordInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/IdentityRecordInner.png -------------------------------------------------------------------------------- /capture/PassportInnerAntegria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerAntegria.png -------------------------------------------------------------------------------- /capture/PassportInnerKolechia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerKolechia.png -------------------------------------------------------------------------------- /capture/PassportInnerObristan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerObristan.png -------------------------------------------------------------------------------- /capture/PassportInnerRepublia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerRepublia.png -------------------------------------------------------------------------------- /capture/RulesInnerAsylumGrant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerAsylumGrant.png -------------------------------------------------------------------------------- /capture/RulesInnerEntryPermit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerEntryPermit.png -------------------------------------------------------------------------------- /capture/RulesInnerVaccineCert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerVaccineCert.png -------------------------------------------------------------------------------- /capture/RulesInnerWorkPermit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerWorkPermit.png -------------------------------------------------------------------------------- /capture/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /export/arskicker_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/arskicker_appearance.png -------------------------------------------------------------------------------- /export/ezic_diplo_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_diplo_appearance.png -------------------------------------------------------------------------------- /export/ezic_handler_postsnipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_handler_postsnipe.png -------------------------------------------------------------------------------- /export/ezic_poison_messenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/ezic_poison_messenger.png -------------------------------------------------------------------------------- /export/hiring_engineers_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/hiring_engineers_end.png -------------------------------------------------------------------------------- /export/hiring_engineers_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/hiring_engineers_start.png -------------------------------------------------------------------------------- /export/kid_killer_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/kid_killer_appearance.png -------------------------------------------------------------------------------- /export/secret_police_caught.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/secret_police_caught.png -------------------------------------------------------------------------------- /export/watch_giver_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/watch_giver_appearance.png -------------------------------------------------------------------------------- /ext/CaptureVisible/icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/ext/CaptureVisible/icon_128.png -------------------------------------------------------------------------------- /final/es/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/es/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /final/fr/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/fr/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /final/it/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/it/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /final/pt-BR/ArskickersInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/ArskickersInner.png -------------------------------------------------------------------------------- /final/pt-BR/BrothelFlyerInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/BrothelFlyerInner.png -------------------------------------------------------------------------------- /final/pt-BR/LoadButtonLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/LoadButtonLatest.png -------------------------------------------------------------------------------- /final/pt-BR/SonDrawingInner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/SonDrawingInner.png -------------------------------------------------------------------------------- /final/pt-BR/SonDrawingMount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/SonDrawingMount.png -------------------------------------------------------------------------------- /final/pt-BR/SonDrawingOuter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/SonDrawingOuter.png -------------------------------------------------------------------------------- /final/pt-BR/StampBotApproved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/StampBotApproved.png -------------------------------------------------------------------------------- /final/ru/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/ru/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /fonts/04B03-U--misaki_gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/04B03-U--misaki_gothic.ttf -------------------------------------------------------------------------------- /fonts/53Veda-U--misaki_gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/53Veda-U--misaki_gothic.ttf -------------------------------------------------------------------------------- /fonts/ChixaDemiBold--shnmk12b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/ChixaDemiBold--shnmk12b.ttf -------------------------------------------------------------------------------- /capture/BulletinInnerContraTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerContraTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerCriminals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerCriminals.png -------------------------------------------------------------------------------- /capture/BulletinInnerMissingTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerMissingTut.png -------------------------------------------------------------------------------- /capture/ForgeryFlyerInnerFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/ForgeryFlyerInnerFront.png -------------------------------------------------------------------------------- /capture/PassportInnerArstotzka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerArstotzka.png -------------------------------------------------------------------------------- /capture/PassportInnerUnitedFed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/PassportInnerUnitedFed.png -------------------------------------------------------------------------------- /capture/RulesInnerAccessPermit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerAccessPermit.png -------------------------------------------------------------------------------- /capture/RulesInnerConfiscation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerConfiscation.png -------------------------------------------------------------------------------- /capture/RulesInnerIdSupplement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerIdSupplement.png -------------------------------------------------------------------------------- /export/prison_guard_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/prison_guard_appearance.png -------------------------------------------------------------------------------- /export/secret_police_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/secret_police_appearance.png -------------------------------------------------------------------------------- /fonts/5mikropix--misaki_gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/5mikropix--misaki_gothic.ttf -------------------------------------------------------------------------------- /capture/BulletinInnerCorrelateTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerCorrelateTut.png -------------------------------------------------------------------------------- /capture/BulletinInnerPassportTut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/BulletinInnerPassportTut.png -------------------------------------------------------------------------------- /capture/RulesInnerDiplomaticAuth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerDiplomaticAuth.png -------------------------------------------------------------------------------- /capture/RulesInnerRegionArstotzka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/capture/RulesInnerRegionArstotzka.png -------------------------------------------------------------------------------- /export/friendly_guard_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/friendly_guard_appearance.png -------------------------------------------------------------------------------- /export/hiring_engineer_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/hiring_engineer_appearance.png -------------------------------------------------------------------------------- /final/pt-BR/VictimPhotoInnerBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/final/pt-BR/VictimPhotoInnerBack.png -------------------------------------------------------------------------------- /fonts/MiniKylie-U--misaki_gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/MiniKylie-U--misaki_gothic.ttf -------------------------------------------------------------------------------- /export/kid_killer_parent_appearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/export/kid_killer_parent_appearance.png -------------------------------------------------------------------------------- /fonts/BMmini-U--88Zen--misaki_gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/BMmini-U--88Zen--misaki_gothic.ttf -------------------------------------------------------------------------------- /fonts/MotorolaScreentype-U--shnmk16b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/MotorolaScreentype-U--shnmk16b.ttf -------------------------------------------------------------------------------- /fonts/PlainBlack--EncientGermanGothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/PlainBlack--EncientGermanGothic.ttf -------------------------------------------------------------------------------- /fonts/AtariSmall-U--misaki_gothic--88Zen.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/AtariSmall-U--misaki_gothic--88Zen.ttf -------------------------------------------------------------------------------- /fonts/sd_auto_pilot--BetinaScriptExtraCTT--nagurip.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/passwordreset/PapersPleaseLoc.github.io/master/fonts/sd_auto_pilot--BetinaScriptExtraCTT--nagurip.ttf -------------------------------------------------------------------------------- /ext/CaptureVisible/installed.js: -------------------------------------------------------------------------------- 1 | var isInstalledNode = document.createElement('div'); 2 | isInstalledNode.id = 'extension-is-installed-CaptureVisible'; 3 | document.body.appendChild(isInstalledNode); -------------------------------------------------------------------------------- /ext/CaptureVisible/background.js: -------------------------------------------------------------------------------- 1 | chrome.runtime.onMessageExternal.addListener(function(request, sender, sendResponse) { 2 | if (request.name == 'screenshot') { 3 | chrome.tabs.captureVisibleTab(null, { "format": "png" }, function(dataUrl) { 4 | sendResponse({ screenshotUrl: dataUrl }); 5 | }); 6 | } 7 | return true; 8 | }); 9 | -------------------------------------------------------------------------------- /ext/csvToArray.v2.1.min.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2012-2013 Daniel Tillin full license details at http://code.google.com/p/csv-to-array/#License */String.prototype.csvToArray=function(e){var t={fSep:",",rSep:"\r\n",quot:'"',head:false,trim:false};if(e){for(var n in t){if(!e[n])e[n]=t[n]}}else{e=t}var r=[[""]];for(var i=f=p=q=0;p.", 6 | "version": "1.0.6", 7 | 8 | "icons": { 9 | "128": "icon_128.png" 10 | }, 11 | 12 | "permissions": [ 13 | "tabs", 14 | "*://*.papersplea.se/loc*", 15 | "*://*.lucaspope.com/loc*", 16 | "*://localhost/*", 17 | "*://paperspleaseloc.github.io/*" 18 | ], 19 | 20 | "background": { 21 | "scripts": ["background.js"] 22 | }, 23 | 24 | "content_scripts": [ 25 | { 26 | "matches": ["*://*.papersplea.se/loc*", "*://*.lucaspope.com/loc*", "*://localhost/*", "*://paperspleaseloc.github.io/*"], 27 | "js": ["installed.js"] 28 | } 29 | ], 30 | 31 | "externally_connectable": { 32 | "matches": ["*://*.papersplea.se/loc*", "*://*.lucaspope.com/loc*", "*://localhost/*", "*://paperspleaseloc.github.io/*"] 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /terms.txt: -------------------------------------------------------------------------------- 1 | Entry Permit 2 | Access Permit 3 | Rule Book 4 | Bulletin 5 | Audio Transcript 6 | Diplomatic Authorization / Diplomatic Auth 7 | Passport 8 | Entry Ticket 9 | Identity Card 10 | Id Card 11 | Identity Supplement 12 | Id Supplement 13 | Work Pass 14 | Vaccine Certificate / Vaccine Cert. / Certificate of Vaccination 15 | Visa Slip 16 | Reason for Denial 17 | Passport Seizure Slip 18 | Identity Record 19 | Entry Visa 20 | Grant of Asylum / Asylum Grant 21 | Id Number / ID# / ID # 22 | Height / HT 23 | Weight / WT 24 | Purpose 25 | Duration 26 | Description / Physical Appearance 27 | ;Nationality / NAT 28 | Seal 29 | Counter 30 | Shutter 31 | 32 | Arstotzka / Arstotzkan 33 | Kolechia / Kolechian 34 | Obristan 35 | United Fed / United Federation 36 | Antegria / Antegrian 37 | Republia / Republian 38 | Impor / Imporian 39 | Cobrastan 40 | 41 | Grestin 42 | Nirsk 43 | Gennistora 44 | Paradizna 45 | Altan 46 | 47 | Ministry of Admission 48 | M.O.A. 49 | Ministry of Justice 50 | Ministry of Information 51 | Ministry of Labor 52 | MOI 53 | 54 | Hang on wall 55 | Polio 56 | DO NOT LEAVE YOUR DESIGNATED REGION 57 | EZIC 58 | Arskickers 59 | Citation 60 | Criminal 61 | ISS. 62 | RECOGNITION 63 | Glory to Arstotzka 64 | DETAIN 65 | FINGERPRINT 66 | SEARCH 67 | CLASS 68 | 69 | Vince Lestrade 70 | Dari Ludum 71 | Jorji 72 | Sergiu 73 | Elisa 74 | Shae Piersovska 75 | Dimitri 76 | Simon Wens 77 | Julia -------------------------------------------------------------------------------- /ext/lib/base64.js: -------------------------------------------------------------------------------- 1 | // This code was written by Tyler Akins and has been placed in the 2 | // public domain. It would be nice if you left this header intact. 3 | // Base64 code from Tyler Akins -- http://rumkin.com 4 | 5 | var Base64 = (function () { 6 | var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 7 | 8 | var obj = { 9 | /** 10 | * Encodes a string in base64 11 | * @param {String} input The string to encode in base64. 12 | */ 13 | encode: function (input) { 14 | var output = ""; 15 | var chr1, chr2, chr3; 16 | var enc1, enc2, enc3, enc4; 17 | var i = 0; 18 | 19 | do { 20 | chr1 = input.charCodeAt(i++); 21 | chr2 = input.charCodeAt(i++); 22 | chr3 = input.charCodeAt(i++); 23 | 24 | enc1 = chr1 >> 2; 25 | enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); 26 | enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); 27 | enc4 = chr3 & 63; 28 | 29 | if (isNaN(chr2)) { 30 | enc3 = enc4 = 64; 31 | } else if (isNaN(chr3)) { 32 | enc4 = 64; 33 | } 34 | 35 | output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 36 | keyStr.charAt(enc3) + keyStr.charAt(enc4); 37 | } while (i < input.length); 38 | 39 | return output; 40 | }, 41 | 42 | /** 43 | * Decodes a base64 string. 44 | * @param {String} input The string to decode. 45 | */ 46 | decode: function (input) { 47 | var output = ""; 48 | var chr1, chr2, chr3; 49 | var enc1, enc2, enc3, enc4; 50 | var i = 0; 51 | 52 | // remove all characters that are not A-Z, a-z, 0-9, +, /, or = 53 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); 54 | 55 | do { 56 | enc1 = keyStr.indexOf(input.charAt(i++)); 57 | enc2 = keyStr.indexOf(input.charAt(i++)); 58 | enc3 = keyStr.indexOf(input.charAt(i++)); 59 | enc4 = keyStr.indexOf(input.charAt(i++)); 60 | 61 | chr1 = (enc1 << 2) | (enc2 >> 4); 62 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 63 | chr3 = ((enc3 & 3) << 6) | enc4; 64 | 65 | output = output + String.fromCharCode(chr1); 66 | 67 | if (enc3 != 64) { 68 | output = output + String.fromCharCode(chr2); 69 | } 70 | if (enc4 != 64) { 71 | output = output + String.fromCharCode(chr3); 72 | } 73 | } while (i < input.length); 74 | 75 | return output; 76 | } 77 | }; 78 | 79 | return obj; 80 | })(); 81 | if (typeof exports !== 'undefined') { 82 | // Github = exports; 83 | module.exports = Base64; 84 | } else { 85 | window.Base64 = Base64; 86 | } 87 | 88 | -------------------------------------------------------------------------------- /ext/marklib.js: -------------------------------------------------------------------------------- 1 | markLib = {} 2 | 3 | markLib.detectBaselinePerc = function(fontfamily) 4 | { 5 | var $bigA, $container, $smallA; 6 | var el = 'body'; 7 | $container = $('
'); 8 | $smallA = $('A'); 9 | $bigA = $('A'); 10 | $container.append($smallA).append($bigA).appendTo(el); 11 | setTimeout((function() { 12 | return $container.remove(); 13 | }), 10); 14 | return $smallA.position().top / $bigA.height(); 15 | } 16 | 17 | markLib.baselines = {}; 18 | 19 | markLib.getBaseline = function(fontFamily) 20 | { 21 | if (markLib.baselines[fontFamily] == null) 22 | { 23 | markLib.baselines[fontFamily] = markLib.detectBaselinePerc(fontFamily); 24 | } 25 | return markLib.baselines[fontFamily]; 26 | } 27 | 28 | markLib.getDirectCssProp = function(forClass, prop) 29 | { 30 | var $inspector = $("
").css('display', 'none').addClass(forClass); 31 | $("body").append($inspector); // add to DOM, in order to read the CSS property 32 | try { 33 | return $inspector.css(prop); 34 | } finally { 35 | $inspector.remove(); // and remove from DOM 36 | } 37 | } 38 | 39 | markLib.pxToInt = function(px) 40 | { 41 | px = $.trim(px.replace("px", "")); 42 | return parseInt(px, 10); 43 | } 44 | 45 | markLib.getTextMarkPos = function(markElem) 46 | { 47 | var fontFamily = markElem.css("font-family"); 48 | var fontSize = pxToInt(markElem.css("font-size")); 49 | var lineHeight = markElem.css("line-height"); 50 | if (lineHeight == "normal") lineHeight = getDirectCssProp("font-" + fontFamily, "line-height"); 51 | lineHeight = pxToInt(lineHeight); 52 | var baseline = Math.round((lineHeight - fontSize) / 2 + (getBaseline(fontFamily) * fontSize)); 53 | 54 | var captureElem = getCaptureElem(markElem); 55 | 56 | var textAlign = markElem.css("text-align"); 57 | var x = markElem.offset().left - captureElem.offset().left; 58 | if (textAlign == "right") 59 | x += markElem.width() - 2; 60 | else if (textAlign == "center") 61 | x += Math.round(markElem.width()/2) - 1; 62 | 63 | var y = Math.round(markElem.offset().top + baseline - captureElem.offset().top) - 1; 64 | 65 | console.log(markElem.attr("id") + " " + x + ", " + y + " (" + fontSize + ", " + lineHeight + ", " + baseline + ", " + textAlign + ")"); 66 | 67 | return { x:x, y:y }; 68 | } 69 | 70 | markLib.beforeCapture = function() 71 | { 72 | $(".marktxt").css({color:'#000', 'background-color':'transparent' }); 73 | $(".markimg").css({width:'1px', height:'1px', 'background-color':'#000'}); 74 | $(".markemb").css({display:'none'}); 75 | 76 | $(".marktxt").each(function() 77 | { 78 | //var pos = getTextMarkPos($(this)); 79 | var width = $(this).width(); 80 | $(this).html("."); 81 | //$(this).css('font-family','regular'); 82 | $(this).width(width); 83 | }); 84 | } 85 | 86 | markLib.afterCapture = function() 87 | { 88 | $("body").css("background-color", "#fff"); 89 | } 90 | -------------------------------------------------------------------------------- /ext/cloud.js: -------------------------------------------------------------------------------- 1 | function Cloud(username, password, repo) 2 | { 3 | this.user = username; 4 | this.repoName = repo; 5 | 6 | this.contents = {}; 7 | 8 | this.init = function(doneFunc, errorFunc) 9 | { 10 | this.github = new Github({ 11 | username: this.user, 12 | password: password, 13 | auth: "basic" 14 | }); 15 | 16 | this.repo = this.github.getRepo(this.user, this.repoName); 17 | 18 | // validate username/password 19 | var self = this; 20 | this.repo.show(function(err, repo) { 21 | if (err != null) 22 | { 23 | console.log(err); 24 | var message = "Failed to connect to repo " + self.user + "/" + self.repoName + "
" + err.error; 25 | if (err.error == 401) 26 | message += ": Invalid username or password"; 27 | errorFunc(message); 28 | } 29 | else 30 | { 31 | doneFunc(); 32 | } 33 | }); 34 | } 35 | 36 | this.content = function(filename) 37 | { 38 | if (filename in this.contents) 39 | return this.contents[filename]; 40 | else 41 | return null; 42 | } 43 | 44 | this.makeGuid = function() 45 | { 46 | var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 47 | var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); 48 | return v.toString(16); 49 | }); 50 | return guid; 51 | } 52 | 53 | this.getUrl = function(filename) 54 | { 55 | return "https://github.com/" + this.user + "/" + this.repoName + "/blob/master/" + filename; 56 | } 57 | 58 | this.extractErrorMessage = function(error) 59 | { 60 | if (error.request != null && error.request.responseText != null) 61 | { 62 | var message = JSON.parse(error.request.responseText).message; 63 | if (message.indexOf("Update is not a fast forward") >= 0) message += "
Please reload the page and try syncing again."; 64 | return message; 65 | } 66 | return "Unknown"; 67 | } 68 | 69 | this.publish = function(filename, content, doneFunc, errorFunc) 70 | { 71 | var self = this; 72 | 73 | // always re-init self to hack around "Update is not a fast forward" error 74 | self.init(); 75 | 76 | this.repo.write('master', filename, content, 'Updates ' + self.makeGuid(), function(err) { 77 | if (err != null) 78 | { 79 | console.log(err); 80 | var message = self.extractErrorMessage(err); 81 | errorFunc(message); 82 | } 83 | else 84 | { 85 | self.contents[filename] = content; 86 | doneFunc(content); 87 | } 88 | }); 89 | } 90 | 91 | this.refreshContent = function(filename, doneFunc, errorFunc) 92 | { 93 | var self = this; 94 | 95 | if (this.repo == null) 96 | { 97 | errorFunc("Failed to connect to github repo: " + this.user + "/" + this.repoName); 98 | return; 99 | } 100 | 101 | this.repo.read('master', filename, function(err, content) 102 | { 103 | if (err == "not found") 104 | { 105 | console.log(err); 106 | self.contents[filename] = ""; 107 | doneFunc(""); 108 | } 109 | else if (err != null) 110 | { 111 | console.log(err); 112 | errorFunc(self.extractErrorMessage(err)); 113 | } 114 | else 115 | { 116 | self.contents[filename] = content; 117 | doneFunc(content); 118 | } 119 | }); 120 | } 121 | 122 | this.getDiff = function(filename, localContent, doneFunc, errorFunc) 123 | { 124 | this.refreshContent(filename, 125 | function(gitContent) 126 | { 127 | var diff = new Diff(gitContent, localContent); 128 | doneFunc(diff); 129 | }, 130 | function(error) 131 | { 132 | errorFunc(error); 133 | } 134 | ); 135 | } 136 | } 137 | 138 | function Diff(beforeCsvStr, afterCsvStr) 139 | { 140 | var beforeCsv = beforeCsvStr != null ? (beforeCsvStr.csvToArray({ rSep:'\n', cSep: ',', trim:true })) : []; 141 | var afterCsv = afterCsvStr.csvToArray({ rSep:'\n', cSep: ',', trim:true }); 142 | 143 | this.rows = []; 144 | 145 | this.findMatchingRow = function(wantRow, inCsv) 146 | { 147 | for (var i=0; ia&&(a=c[n]),c[n]>=1;for(t=m;t>>=1;switch(c){case 0:var d=this.input,a=this.d,b=this.b,e=this.a,f=l,g=l,h=l,k=b.length,m=l;this.c=this.f=0;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: LEN (first byte)");g=f;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: LEN (second byte)");g|=f<<8;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: NLEN (first byte)");h=f;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: NLEN (second byte)");h|= 17 | f<<8;if(g===~h)throw Error("invalid uncompressed block header: length verify");if(a+g>d.length)throw Error("input buffer is broken");switch(this.i){case x:for(;e+g>b.length;){m=k-e;g-=m;if(r)b.set(d.subarray(a,a+m),e),e+=m,a+=m;else for(;m--;)b[e++]=d[a++];this.a=e;b=this.e();e=this.a}break;case w:for(;e+g>b.length;)b=this.e({o:2});break;default:throw Error("invalid inflate mode");}if(r)b.set(d.subarray(a,a+g),e),e+=g,a+=g;else for(;g--;)b[e++]=d[a++];this.d=a;this.a=e;this.b=b;break;case 1:this.j(z, 18 | A);break;case 2:B(this);break;default:throw Error("unknown BTYPE: "+c);}}return this.m()}; 19 | var C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],D=r?new Uint16Array(C):C,E=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],F=r?new Uint16Array(E):E,G=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],H=r?new Uint8Array(G):G,I=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],J=r?new Uint16Array(I):I,K=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13, 20 | 13],L=r?new Uint8Array(K):K,M=new (r?Uint8Array:Array)(288),N,O;N=0;for(O=M.length;N=N?8:255>=N?9:279>=N?7:8;var z=u(M),P=new (r?Uint8Array:Array)(30),Q,R;Q=0;for(R=P.length;Q>>d;c.c=b-d;c.d=f;return g} 21 | function S(c,d){for(var a=c.f,b=c.c,e=c.input,f=c.d,g=d[0],h=d[1],k,m,s;b>>16;c.f=a>>s;c.c=b-s;c.d=f;return m&65535} 22 | function B(c){function d(a,c,b){var d,f,e,g;for(g=0;gf)b>=e&&(this.a=b,a=this.e(),b=this.a),a[b++]=f;else{g=f-257;k=F[g];0=e&&(this.a=b,a=this.e(),b=this.a);for(;k--;)a[b]=a[b++-h]}for(;8<=this.c;)this.c-=8,this.d--;this.a=b}; 24 | v.prototype.s=function(c,d){var a=this.b,b=this.a;this.n=c;for(var e=a.length,f,g,h,k;256!==(f=S(this,c));)if(256>f)b>=e&&(a=this.e(),e=a.length),a[b++]=f;else{g=f-257;k=F[g];0e&&(a=this.e(),e=a.length);for(;k--;)a[b]=a[b++-h]}for(;8<=this.c;)this.c-=8,this.d--;this.a=b}; 25 | v.prototype.e=function(){var c=new (r?Uint8Array:Array)(this.a-32768),d=this.a-32768,a,b,e=this.b;if(r)c.set(e.subarray(32768,c.length));else{a=0;for(b=c.length;aa;++a)e[a]=e[d+a];this.a=32768;return e}; 26 | v.prototype.u=function(c){var d,a=this.input.length/this.d+1|0,b,e,f,g=this.input,h=this.b;c&&("number"===typeof c.o&&(a=c.o),"number"===typeof c.q&&(a+=c.q));2>a?(b=(g.length-this.d)/this.n[2],f=258*(b/2)|0,e=fd&&(this.b.length=d),c=this.b);return this.buffer=c};q("Zlib.RawInflate",v);q("Zlib.RawInflate.prototype.decompress",v.prototype.t);var T={ADAPTIVE:w,BLOCK:x},U,V,W,X;if(Object.keys)U=Object.keys(T);else for(V in U=[],W=0,T)U[W++]=V;W=0;for(X=U.length;WB){var l=b[0],d=b[1];b=b[2];if(t[d])for(var e=0,h=t[d].length;e>>16)&65535)<<16),n^=n>>>24,n=1540483477*(n&65535)+((1540483477*(n>>>16)&65535)<<16),f=1540483477*(f&65535)+((1540483477*(f>>>16)&65535)<<16)^n,k-=4,++g;switch(k){case 3:f^=(e.charCodeAt(g+2)&255)<<16;case 2:f^=(e.charCodeAt(g+1)&255)<<8;case 1:f^=e.charCodeAt(g)&255,f=1540483477*(f&65535)+((1540483477*(f>>>16)&65535)<<16)}f^=f>>>13;f=1540483477*(f&65535)+((1540483477*(f>>>16)& 10 | 65535)<<16);h[a]="2."+((f^f>>>15)>>>0);this.setTTL(a,d.TTL||0);s(a,"updated");return b},get:function(a,b){q(a);return a in c?c[a]&&"object"==typeof c[a]&&c[a]._is_xml?C.decode(c[a].xml):c[a]:"undefined"==typeof b?null:b},deleteKey:function(a){q(a);return a in c?(delete c[a],"object"==typeof c.__jstorage_meta.TTL&&a in c.__jstorage_meta.TTL&&delete c.__jstorage_meta.TTL[a],delete c.__jstorage_meta.CRC32[a],w(),v(),s(a,"deleted"),!0):!1},setTTL:function(a,b){var d=+new Date;q(a);b=Number(b)||0;return a in 11 | c?(c.__jstorage_meta.TTL||(c.__jstorage_meta.TTL={}),0Family combobox 54 | 7. Set the correct Size 55 | - Check the .fnt files in GAMEDATA/fonts to see which size each font should be 56 | - EG: "Chixa" font -> chixa_demibold_14.fnt -> size 14 57 | 8. Verify that the font looks ok in the preview 58 | 9. From the Output tab, click the "Write font" button at the bottom 59 | 10. Go back to step 5 and select the next font 60 | 11. Continue for all fonts 61 | 12. At this point, PACK should contain all the game-ready font files (.png and .fnt) 62 | 13. Re-zip everything in PACK 63 | - Zip using NO COMPRESSION (STORE only) 64 | - Select all the files and directories to zip them, don't just zip the PACK folder 65 | - When in doubt, verify the zip structure against the tool-generated zip 66 | 14. This is your new language pack with custom fonts 67 | 15. The game will first search for custom fonts in the language pack before using the built-in ones 68 | 69 | NOTE: It is possible to edit (most, not all) line-heights, but not recommended. To do so, 70 | first copy GAMEDATA/data/Fonts.xml to PACK/data/Fonts.xml. Then edit BOTH the line-heights 71 | in your custom stylesheet and in the PACK/data/Fonts.xml file with the same values. 72 | 73 | */ 74 | 75 | @font-face { font-family: 'fallback'; src: url('../fonts/fallback.ttf'); } 76 | 77 | /*---- tiny -------------------------------------------------*/ 78 | @font-face { font-family: 'tiny'; src: url('../fonts/MiniKylie-U--misaki_gothic.ttf'); } 79 | .font-tiny { font-family: 'tiny'; font-size: 8px; line-height: 8px; } 80 | 81 | /*---- small -------------------------------------------------*/ 82 | @font-face { font-family: 'small'; src: url('../fonts/53Veda-U--misaki_gothic.ttf'); } 83 | .font-small { font-family: 'small'; font-size: 8px; line-height: 8px;} 84 | 85 | @font-face { font-family: 'small_tight'; src: url('../fonts/AtariSmall-U--misaki_gothic--88Zen.ttf'); } 86 | .font-small_tight { font-family: 'small_tight'; font-size: 8px; line-height: 8px; } 87 | 88 | @font-face { font-family: 'small_harsh'; src: url('../fonts/5mikropix--misaki_gothic.ttf'); } 89 | .font-small_harsh { font-family: 'small_harsh'; font-size: 8px; line-height: 9px; } 90 | 91 | /*---- regular -------------------------------------------------*/ 92 | @font-face { font-family: 'regular'; src: url('../fonts/BMmini-U--88Zen--misaki_gothic.ttf'); } 93 | .font-regular, body { font-family: 'regular'; font-size: 8px; line-height: 8px; } 94 | 95 | @font-face { font-family: 'regular_short'; src: url('../fonts/04B03-U--misaki_gothic.ttf'); } 96 | .font-regular_short { font-family: 'regular_short'; font-size: 8px; line-height: 8px; } 97 | 98 | /*---- title -------------------------------------------------*/ 99 | @font-face { font-family: 'title_tall'; src: url('../fonts/pixelplay--shnmk14.ttf'); } 100 | .font-title_tall { font-family: 'title_tall'; font-size: 16px; line-height: 16px; } 101 | 102 | @font-face { font-family: 'title_news'; src: url('../fonts/MotorolaScreentype-U--shnmk16b.ttf'); } 103 | .font-title_news { font-family: 'title_news'; font-size: 16px; line-height: 16px; } 104 | 105 | @font-face { font-family: 'title_serif'; src: local("Times New Roman"); font-weight: bold; } 106 | .font-title_serif { font-family:'title_serif'; font-weight:bold; font-size: 10px; line-height: 10px; } 107 | 108 | @font-face { font-family: 'title_thick'; src: url('../fonts/ChixaDemiBold--shnmk12b.ttf'); } 109 | .font-title_thick { font-family: 'title_thick'; font-size: 14px; line-height: 11px; } 110 | 111 | /*---- ui -------------------------------------------------*/ 112 | @font-face { font-family: 'ui_regular'; src: url('../fonts/NotNokia-U--knj10b.ttf'); } 113 | .font-ui_regular { font-family: 'ui_regular'; font-size: 8px; line-height: 8px; } 114 | 115 | /*---- cursive -------------------------------------------------*/ 116 | @font-face { font-family: 'cursive'; src: url('../fonts/Bangalor-U--elisat10.ttf'); } 117 | .font-cursive { font-family: 'cursive'; font-size: 8px; line-height: 8px; } 118 | 119 | /*---- large -------------------------------------------------*/ 120 | @font-face { font-family: 'large'; src: url('../fonts/Resource-U--knj10.ttf'); } 121 | .font-large { font-family: 'large'; font-size: 8px; line-height: 10px; } 122 | 123 | /*---- scribble -------------------------------------------------*/ 124 | @font-face { /* Sam Derrick */ font-family: 'scribble'; src: url('../fonts/sd_auto_pilot--BetinaScriptExtraCTT--nagurip.ttf'); } 125 | .font-scribble { font-family: 'scribble'; font-size: 16px; line-height: 16px; } 126 | 127 | /*---- passport -------------------------------------------------*/ 128 | @font-face { font-family: 'passport_arstotzka'; src: url('../fonts/v5loxical.ttf'); } 129 | @font-face { font-family: 'passport_republia'; src: url('../fonts/Arial-Black.ttf'); } 130 | @font-face { font-family: 'passport_unitedfed'; src: url('../fonts/84-Orange.ttf');} 131 | @font-face { font-family: 'passport_kolechia'; src: url('../fonts/BMgermar.ttf'); } 132 | 133 | /*---- misc -------------------------------------------------*/ 134 | @font-face { font-family: 'press'; src: url('../fonts/Raleway-Heavy.otf'); } 135 | .font-press { font-family: 'press'; font-size: 22px; line-height: 22px; font-weight: normal; } 136 | 137 | @font-face { font-family: 'propaganda'; src: url('../fonts/PROPAGAN.ttf'); } 138 | .font-propaganda { font-family: 'propaganda'; font-size: 10px; line-height: 10px; } 139 | 140 | @font-face { font-family: 'kid_writing'; src: url('../fonts/RightyUsesLeftHand.ttf'); } 141 | .font-kid_writing { font-family: 'kid_writing'; font-size: 16px; line-height: 16px; font-weight: bold; } 142 | 143 | @font-face { font-family: 'news'; src: url('../fonts/PlainBlack--EncientGermanGothic.ttf'); } 144 | .font-news { font-family: 'news'; font-size: 23px; line-height: 34px; font-weight: normal; } 145 | 146 | body { 147 | font-smooth: never; 148 | -webkit-font-smoothing: none; 149 | } 150 | 151 | 152 | -------------------------------------------------------------------------------- /css/captures.css: -------------------------------------------------------------------------------- 1 | img, * { 2 | image-rendering: optimizeSpeed; /* FUCK SMOOTHING, GIVE ME SPEED */ 3 | image-rendering: -moz-crisp-edges; /* Firefox */ 4 | image-rendering: -o-crisp-edges; /* Opera */ 5 | image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */ 6 | image-rendering: optimize-contrast; /* CSS3 Proposed */ 7 | -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ 8 | image-rendering: optimize-contrast; 9 | } 10 | 11 | .solid { 12 | display: inline-block; 13 | } 14 | div { 15 | position: relative; 16 | } 17 | .abs { 18 | position: absolute; 19 | } 20 | .markimg { 21 | } 22 | .marktxt { 23 | } 24 | .markemb { 25 | /*background-image: url('../img/Emblem.png');*/ 26 | background-repeat: no-repeat; 27 | background-position: right top; 28 | } 29 | .marktxt, .markimg, .markemb { 30 | pointer-events:none; 31 | } 32 | .markimg { 33 | background-color: rgba(255,0,0,0.1); 34 | } 35 | .align-left { 36 | text-align: left; 37 | width: 100%; 38 | background-color: #f00; 39 | } 40 | .pageback { 41 | position:absolute; left:0; top:0; 42 | zoom: 0.5; 43 | width: 100%; 44 | height: 100%; 45 | } 46 | p { 47 | margin: 0; 48 | padding: 0; 49 | margin-bottom: 1em; 50 | } 51 | .under { 52 | text-decoration: underline; 53 | } 54 | .capture { 55 | margin: 20px 0 20px 0; 56 | text-align: left; 57 | overflow: hidden; 58 | } 59 | .t { 60 | cursor: pointer; 61 | } 62 | /* 63 | .t:hover { 64 | box-shadow: 0px 0px 2px #888; 65 | }*/ 66 | .bulletin { 67 | width: 150px; 68 | height: 200px; 69 | color: #565656; 70 | text-align: center; 71 | } 72 | .bulletin .marktext { 73 | color: #565656; 74 | } 75 | .bulletin .topblock { 76 | text-align: left; 77 | width: 80%; 78 | top: 20px; 79 | margin-left: 10%; 80 | line-height: 10px; 81 | } 82 | .bulletin .botblock { 83 | text-align: left; 84 | width: 80%; 85 | top: 140px; 86 | margin-left: 10%; 87 | line-height: 10px; 88 | } 89 | .bulletin .red { 90 | color: #c8241c; 91 | } 92 | .bulletin .footer { 93 | position: absolute; 94 | color: #a3a3a3; 95 | bottom:12px; width:80%; margin-left:10%; 96 | } 97 | .bulletin .solid { 98 | display: inline-block; 99 | background-color: #f0f0f0; 100 | } 101 | .lovesong { 102 | color: #394c72; 103 | width: 175px; 104 | height: 90px; 105 | text-align: center; 106 | font-family: 'scribble'; 107 | font-size: 16px; 108 | line-height: 16px; 109 | word-spacing: 5px; 110 | letter-spacing: -1px; 111 | } 112 | .lovesong .text { 113 | position: absolute; 114 | top: 55px; 115 | width: 100%; 116 | } 117 | .lovesong .drawing { 118 | position: absolute; 119 | color: #76bdea; 120 | } 121 | .lovesong .label { 122 | position: absolute; 123 | text-align:left; 124 | font-size: 12px; 125 | line-height: 12px; 126 | } 127 | .fullwidth { 128 | width: 100%; 129 | } 130 | table 131 | { 132 | position: relative; 133 | margin: 0; 134 | padding: 0; 135 | } 136 | td { 137 | padding: 0; 138 | margin: 0; 139 | vertical-align: baseline; 140 | } 141 | .passport { 142 | width: 130px; 143 | height: 162px; 144 | color: #574848; 145 | } 146 | .visa { 147 | color: #b19600; 148 | top: 60px; 149 | width: 100%; 150 | text-align: center; 151 | } 152 | .passport .name { 153 | position: absolute; 154 | } 155 | .passport table { 156 | table-layout: fixed; 157 | width: 77px; 158 | position: absolute; 159 | border-spacing: 1px; 160 | border-collapse: separate; 161 | padding: 0px; 162 | overflow: hidden; 163 | margin: -1px -1px; 164 | } 165 | .passport .k { 166 | display: block; 167 | font-family: 'small'; 168 | background-color: #a29490; 169 | color: #ede0d8; 170 | line-height: 7px; 171 | padding-left: 2px; 172 | overflow: hidden; 173 | white-space: nowrap; 174 | } 175 | .passport .v { 176 | line-height: 5px; 177 | width: 56px; 178 | } 179 | .passport table td { 180 | position: relative; 181 | padding-left: 2px; 182 | } 183 | .passport .face { 184 | position:absolute; 185 | width: 40px; 186 | height: 48px; 187 | } 188 | .passport .id { 189 | position: absolute; 190 | } 191 | 192 | .plaque { 193 | color: #a9784f; 194 | width: 190px; 195 | height: 196px; 196 | text-align: center; 197 | font-family: 'title_tall'; 198 | font-size: 16px; 199 | line-height: 16px; 200 | } 201 | .plaque div { 202 | position: absolute; 203 | width: 100%; 204 | } 205 | .plaque .title { 206 | top: 27px; 207 | } 208 | .plaque .recogouter { 209 | top: 45px; 210 | } 211 | .plaque .recoginner { 212 | position: relative; 213 | background-color:#f5f3d6; 214 | width: auto; 215 | display: inline-block; 216 | padding: 0 6px; 217 | } 218 | .plaque .for { 219 | top: 134px; 220 | } 221 | .plaque .name { 222 | font-family: 'large'; 223 | font-size: 8px; 224 | line-height: 8px; 225 | top: 158px; 226 | } 227 | .plaque .hangouter { 228 | font-family: 'ui_regular'; 229 | font-size: 8px; 230 | line-height: 10px; 231 | top: 182px; 232 | } 233 | .plaque .hanginner { 234 | position: relative; 235 | background-color:#dbb667; 236 | width: auto; 237 | display: inline-block; 238 | padding: 0 6px; 239 | } 240 | .plaque .marktxt { 241 | margin-top: -1px; 242 | } 243 | 244 | .rulebutton { 245 | background-color: #e4e6bd; 246 | color: #94967b; 247 | text-align: center; 248 | border: 1px solid #94967b; 249 | line-height: 9px; 250 | } 251 | .outer { 252 | display: table; 253 | height: 100%; 254 | width: 100%; 255 | } 256 | .inner { 257 | display: table-cell; 258 | vertical-align: middle; 259 | width: 100%; 260 | top: 1px; 261 | } 262 | .rulebutton .iss span { 263 | font-family: 'small'; 264 | color: #e4e6bd; 265 | background-color: #94967b; 266 | padding: 0 1px 0 2px; 267 | } 268 | 269 | .rules { 270 | color: #94967b; 271 | text-align: center; 272 | width: 246px; 273 | height: 160px; 274 | 275 | font-family: 'small_tight'; 276 | font-size: 8px; 277 | line-height: 8px; 278 | } 279 | .rules .left, .rules .right { 280 | position: absolute; 281 | width: 103px; 282 | height: 156px; 283 | } 284 | .rules .left { 285 | left: 12px; 286 | top: 2px; 287 | } 288 | .rules .right { 289 | left: 131px; 290 | top: 2px; 291 | } 292 | .rules .light { 293 | color: #e4e6bd; 294 | } 295 | .rules .dark { 296 | color: #574848; 297 | } 298 | .rules .doctitle { 299 | font-family: 'title_thick'; 300 | font-size: 14px; 301 | line-height: 12px; 302 | color: #574848; 303 | margin-top: 8px; 304 | background-color: #e4e6bd; 305 | } 306 | .rules .validseals { 307 | margin-top: 20px; 308 | } 309 | .rules .property { 310 | position: absolute; 311 | text-align: center; 312 | display:inline-block; 313 | -webkit-transform: rotate(-15deg); 314 | -moz-transform: rotate(-15deg); 315 | overflow: visible; 316 | width: 120px; 317 | left: 58px; 318 | margin-left:-60px; 319 | } 320 | 321 | .upgrade { 322 | background-color: #e4e6bd; 323 | color: #94967b; 324 | text-align: left; 325 | width: 93px; 326 | height: 23px; 327 | font-family: 'small_tight'; 328 | } 329 | .upgrade .title { 330 | position: absolute; 331 | left: 5px; 332 | top: 0px; 333 | } 334 | 335 | .actionbutton { 336 | color: #352d29; 337 | text-align: center; 338 | padding-top: 5px; 339 | height: 85px; 340 | font-family: 'ui_regular'; 341 | line-height: 30px; 342 | } 343 | .actionbutton div { 344 | padding-left: 8px; 345 | text-shadow: 0px 1px 0px #7c796f; 346 | } 347 | .actionbutton div:first-of-type { 348 | margin-top: -10px; 349 | } 350 | .actionbutton div:last-of-type { 351 | margin-top: 2px; 352 | } 353 | .reasonbutton { 354 | padding-top: 4px; 355 | height: 86px; 356 | color: #7c796f; 357 | } 358 | .reasonbutton div { 359 | padding-left: 0px; 360 | text-shadow: 0px 1px 0px #352d29; 361 | } 362 | .reasonbutton div:last-of-type { 363 | margin-top: 3px; 364 | } 365 | 366 | .ink { 367 | width: 70px; 368 | height: 30px; 369 | text-align: left; 370 | } 371 | .ink div { 372 | position: absolute; 373 | font-family: 'ui_regular'; 374 | font-size: 8px; 375 | line-height: 8px; 376 | left: 3px; 377 | top: 12px; 378 | } 379 | 380 | .rifle { 381 | width: 186px; 382 | height: 170px; 383 | color: #352d29; 384 | } 385 | .rifle .top, .rifle .bot { 386 | position: absolute; 387 | left: 6px; 388 | top: 5px; 389 | } 390 | .rifle .bot { 391 | top: 90px; 392 | } 393 | 394 | .rulestableft, .rulestabright { 395 | width: 8px; 396 | height: 32px; 397 | position: relative; 398 | color: #94967b; 399 | font-family: 'small_harsh'; 400 | } 401 | .rulestableft .t, .rulestabright .t { 402 | position: absolute; 403 | width: 32px; 404 | line-height: 8px; 405 | left: 0; 406 | top: 100%; 407 | transform: rotate(-90deg); 408 | -webkit-transform: rotate(-90deg); 409 | transform-origin:0 0; 410 | -webkit-transform-origin:0 0; 411 | text-align: center; 412 | } 413 | .rulestabright .t { 414 | top: 0; 415 | margin-left: 8px; 416 | transform: rotate(90deg); 417 | -webkit-transform: rotate(90deg); 418 | } -------------------------------------------------------------------------------- /ext/divcap.js: -------------------------------------------------------------------------------- 1 | function DivCap(elems, doneFunc, errorFunc) 2 | { 3 | this.elems = elems; 4 | //this.elems = elems.slice(0,4); 5 | this.zip = new JSZip(); 6 | //this.dir = this.zip.folder("images"); 7 | window.setTimeout(start.bind(this), 100); 8 | 9 | var clearTypeTestElem = $('#cleartypetest');//
CLEARTYPE TEST
'); 10 | clearTypeTestElem.show(); 11 | //this.elems[this.elems.length-1].after(clearTypeTestElem); 12 | this.elems.push(clearTypeTestElem); 13 | 14 | $("body").css("background-color", "#ff00ff"); 15 | 16 | function start() 17 | { 18 | var elem = this.elems.pop(); 19 | if (elem != null) 20 | { 21 | var self = this; 22 | $("body").scrollTop(elem.offset().top + -10); 23 | 24 | // tell extension to take a screenshot after a short delay 25 | window.setTimeout(function() { 26 | chrome.runtime.sendMessage( 27 | "bgigfngpiapeiicnamikpicikekkjcpi", 28 | {name: 'screenshot'}, 29 | handleChromeResponse.bind(self, elem) 30 | ); 31 | }, 100); 32 | } 33 | else 34 | { 35 | doneFunc(); 36 | } 37 | } 38 | 39 | function handleChromeResponse(elem, response) 40 | { 41 | var imageUri = response.screenshotUrl; 42 | var canvas = document.createElement('canvas'); 43 | var img = new Image(); 44 | var self = this; 45 | //console.log(self); 46 | 47 | img.onload = function() 48 | { 49 | canvas.width = elem.outerWidth(); 50 | canvas.height = elem.outerHeight(); 51 | var offset = elem.offset(); 52 | offset.left = Math.round(offset.left - $(window).scrollLeft()); 53 | offset.top = Math.round(offset.top - $(window).scrollTop()); 54 | var context = canvas.getContext("2d"); 55 | 56 | context.drawImage(img, -offset.left, -offset.top, img.width, img.height); 57 | 58 | if (elem.attr("id") == "cleartypetest") 59 | { 60 | // verify that there are only 2 colors in the image, otherwise cleartype is on and the font 61 | // is anti-aliased; which will break everything 62 | var numColors = self.getNumColors(context); 63 | //console.log(numColors); 64 | if (numColors != 2) 65 | { 66 | self.failedDueToClearTypeEnabled = true; 67 | errorFunc(); 68 | return; 69 | } 70 | } 71 | else 72 | { 73 | elem.find(".quantize").each(function() { 74 | // quantize 75 | var pal = $.trim(($(this)).data("pal")).split(" "); 76 | for (var p=0; p>16) & 0xff, 81 | (color>>8) & 0xff, 82 | (color) & 0xff 83 | ]; 84 | } 85 | var pos = $(this).position(); 86 | var rect = { x:pos.left, y:pos.top, width:$(this).width(), height:$(this).height() }; 87 | self.quantize(context, rect, pal); 88 | }); 89 | 90 | var dir = elem.closest(".dir").data("dir"); 91 | var filename = elem.attr("id") + ".png"; 92 | // if (dir.indexOf("image:") == 0) 93 | // { 94 | // filename = dir.substr("image:".length); 95 | // dir = ""; 96 | // //console.log(filename); 97 | // } 98 | console.log(dir + "/" + filename); 99 | self.fixAlpha(context); 100 | self.addImageToZip(dir, filename, canvas); 101 | } 102 | 103 | window.setTimeout(start.bind(self), 0); 104 | } 105 | img.src = imageUri; 106 | } 107 | 108 | this.fixAlpha = function(context) 109 | { 110 | var imgd = context.getImageData(0, 0, context.canvas.width, context.canvas.height); 111 | var pix = imgd.data; 112 | for (var i = 0, n = pix.length; i < n; i += 4) { 113 | var r = pix[i+0]; 114 | var g = pix[i+1]; 115 | var b = pix[i+2]; 116 | if (r == 255 && g == 0 && b == 255) 117 | { 118 | // fully transparent 119 | pix[i+3] = 0; 120 | } 121 | else if (r == 127 && g == 0 && b == 127) 122 | { 123 | // 50% black shadow 124 | pix[i+0] = 0; 125 | pix[i+1] = 0; 126 | pix[i+2] = 0; 127 | pix[i+3] = 127; 128 | } 129 | } 130 | context.putImageData(imgd, 0, 0); 131 | } 132 | 133 | this.getNumColors = function(context) 134 | { 135 | var imgd = context.getImageData(0, 0, context.canvas.width, context.canvas.height); 136 | var pix = imgd.data; 137 | var colors = {}; 138 | for (var i = 0, n = pix.length; i < n; i += 4) { 139 | var r = pix[i+0]; 140 | var g = pix[i+1]; 141 | var b = pix[i+2]; 142 | var a = pix[i+3]; 143 | var p = (r<<24) | (g<<16) | (b<<8) | a; 144 | colors[p] = true; 145 | } 146 | var count = 0; 147 | for (var k in colors) { 148 | if (colors.hasOwnProperty(k)) ++count; 149 | } 150 | return count; 151 | } 152 | 153 | this.quantize = function(context, rect, pal) 154 | { 155 | var imgd = context.getImageData(rect.x, rect.y, rect.width, rect.height); 156 | var pix = imgd.data; 157 | 158 | var palLab = []; 159 | for (var i=0; i 0.04045 ) var_R = Math.pow( ( var_R + 0.055 ) / 1.055, 2.4); 244 | else var_R = var_R / 12.92 245 | if ( var_G > 0.04045 ) var_G = Math.pow( ( var_G + 0.055 ) / 1.055, 2.4); 246 | else var_G = var_G / 12.92 247 | if ( var_B > 0.04045 ) var_B = Math.pow( ( var_B + 0.055 ) / 1.055, 2.4); 248 | else var_B = var_B / 12.92 249 | 250 | var_R = var_R * 100 251 | var_G = var_G * 100 252 | var_B = var_B * 100 253 | 254 | //Observer. = 2°, Illuminant = D65 255 | X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805 256 | Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722 257 | Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505 258 | return [X, Y, Z] 259 | } 260 | 261 | function XYZtoLAB(x, y, z) 262 | { 263 | var ref_X = 95.047; 264 | var ref_Y = 100.000; 265 | var ref_Z = 108.883; 266 | 267 | var_X = x / ref_X //ref_X = 95.047 Observer= 2°, Illuminant= D65 268 | var_Y = y / ref_Y //ref_Y = 100.000 269 | var_Z = z / ref_Z //ref_Z = 108.883 270 | 271 | if ( var_X > 0.008856 ) var_X = Math.pow(var_X, ( 1/3 )); 272 | else var_X = ( 7.787 * var_X ) + ( 16 / 116 ) 273 | if ( var_Y > 0.008856 ) var_Y = Math.pow(var_Y, ( 1/3 )); 274 | else var_Y = ( 7.787 * var_Y ) + ( 16 / 116 ) 275 | if ( var_Z > 0.008856 ) var_Z = Math.pow(var_Z, ( 1/3 )); 276 | else var_Z = ( 7.787 * var_Z ) + ( 16 / 116 ) 277 | 278 | CIE_L = ( 116 * var_Y ) - 16 279 | CIE_a = 500 * ( var_X - var_Y ) 280 | CIE_b = 200 * ( var_Y - var_Z ) 281 | 282 | return [CIE_L, CIE_a, CIE_b] 283 | } 284 | -------------------------------------------------------------------------------- /ext/jszip-deflate.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | (function () { 4 | if(!JSZip) { 5 | throw "JSZip not defined"; 6 | } 7 | var context = {}; 8 | (function () { 9 | 10 | // https://github.com/imaya/zlib.js 11 | // tag 0.1.6 12 | // file bin/deflate.min.js 13 | 14 | /** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';var n=void 0,u=!0,aa=this;function ba(e,d){var c=e.split("."),f=aa;!(c[0]in f)&&f.execScript&&f.execScript("var "+c[0]);for(var a;c.length&&(a=c.shift());)!c.length&&d!==n?f[a]=d:f=f[a]?f[a]:f[a]={}};var C="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function K(e,d){this.index="number"===typeof d?d:0;this.d=0;this.buffer=e instanceof(C?Uint8Array:Array)?e:new (C?Uint8Array:Array)(32768);if(2*this.buffer.length<=this.index)throw Error("invalid index");this.buffer.length<=this.index&&ca(this)}function ca(e){var d=e.buffer,c,f=d.length,a=new (C?Uint8Array:Array)(f<<1);if(C)a.set(d);else for(c=0;c>>8&255]<<16|L[e>>>16&255]<<8|L[e>>>24&255])>>32-d:L[e]>>8-d);if(8>d+b)k=k<>d-m-1&1,8===++b&&(b=0,f[a++]=L[k],k=0,a===f.length&&(f=ca(this)));f[a]=k;this.buffer=f;this.d=b;this.index=a};K.prototype.finish=function(){var e=this.buffer,d=this.index,c;0M;++M){for(var R=M,S=R,ha=7,R=R>>>1;R;R>>>=1)S<<=1,S|=R&1,--ha;ga[M]=(S<>>0}var L=ga;function ja(e){this.buffer=new (C?Uint16Array:Array)(2*e);this.length=0}ja.prototype.getParent=function(e){return 2*((e-2)/4|0)};ja.prototype.push=function(e,d){var c,f,a=this.buffer,b;c=this.length;a[this.length++]=d;for(a[this.length++]=e;0a[f])b=a[c],a[c]=a[f],a[f]=b,b=a[c+1],a[c+1]=a[f+1],a[f+1]=b,c=f;else break;return this.length}; 17 | ja.prototype.pop=function(){var e,d,c=this.buffer,f,a,b;d=c[0];e=c[1];this.length-=2;c[0]=c[this.length];c[1]=c[this.length+1];for(b=0;;){a=2*b+2;if(a>=this.length)break;a+2c[a]&&(a+=2);if(c[a]>c[b])f=c[b],c[b]=c[a],c[a]=f,f=c[b+1],c[b+1]=c[a+1],c[a+1]=f;else break;b=a}return{index:e,value:d,length:this.length}};function ka(e,d){this.e=ma;this.f=0;this.input=C&&e instanceof Array?new Uint8Array(e):e;this.c=0;d&&(d.lazy&&(this.f=d.lazy),"number"===typeof d.compressionType&&(this.e=d.compressionType),d.outputBuffer&&(this.b=C&&d.outputBuffer instanceof Array?new Uint8Array(d.outputBuffer):d.outputBuffer),"number"===typeof d.outputIndex&&(this.c=d.outputIndex));this.b||(this.b=new (C?Uint8Array:Array)(32768))}var ma=2,T=[],U; 18 | for(U=0;288>U;U++)switch(u){case 143>=U:T.push([U+48,8]);break;case 255>=U:T.push([U-144+400,9]);break;case 279>=U:T.push([U-256+0,7]);break;case 287>=U:T.push([U-280+192,8]);break;default:throw"invalid literal: "+U;} 19 | ka.prototype.h=function(){var e,d,c,f,a=this.input;switch(this.e){case 0:c=0;for(f=a.length;c>>8&255;l[h++]=p&255;l[h++]=p>>>8&255;if(C)l.set(b,h),h+=b.length,l=l.subarray(0,h);else{v=0;for(x=b.length;vs)for(;0s?s:138,A>s-3&&A=A?(E[D++]=17,E[D++]=A-3,H[17]++):(E[D++]=18,E[D++]=A-11,H[18]++),s-=A;else if(E[D++]=F[r],H[F[r]]++,s--,3>s)for(;0s?s:6,A>s-3&&Ay;y++)ia[y]=ea[Ia[y]];for(P=19;4=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272, 26 | a-31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:throw"invalid length: "+a;}}var d=[],c,f;for(c=3;258>=c;c++)f=e(c),d[c]=f[2]<<24| 27 | f[1]<<16|f[0];return d}(),Ga=C?new Uint32Array(Fa):Fa; 28 | function na(e,d){function c(a,c){var b=a.g,d=[],f=0,e;e=Ga[a.length];d[f++]=e&65535;d[f++]=e>>16&255;d[f++]=e>>24;var g;switch(u){case 1===b:g=[0,b-1,0];break;case 2===b:g=[1,b-2,0];break;case 3===b:g=[2,b-3,0];break;case 4===b:g=[3,b-4,0];break;case 6>=b:g=[4,b-5,1];break;case 8>=b:g=[5,b-7,1];break;case 12>=b:g=[6,b-9,2];break;case 16>=b:g=[7,b-13,2];break;case 24>=b:g=[8,b-17,3];break;case 32>=b:g=[9,b-25,3];break;case 48>=b:g=[10,b-33,4];break;case 64>=b:g=[11,b-49,4];break;case 96>=b:g=[12,b- 29 | 65,5];break;case 128>=b:g=[13,b-97,5];break;case 192>=b:g=[14,b-129,6];break;case 256>=b:g=[15,b-193,6];break;case 384>=b:g=[16,b-257,7];break;case 512>=b:g=[17,b-385,7];break;case 768>=b:g=[18,b-513,8];break;case 1024>=b:g=[19,b-769,8];break;case 1536>=b:g=[20,b-1025,9];break;case 2048>=b:g=[21,b-1537,9];break;case 3072>=b:g=[22,b-2049,10];break;case 4096>=b:g=[23,b-3073,10];break;case 6144>=b:g=[24,b-4097,11];break;case 8192>=b:g=[25,b-6145,11];break;case 12288>=b:g=[26,b-8193,12];break;case 16384>= 30 | b:g=[27,b-12289,12];break;case 24576>=b:g=[28,b-16385,13];break;case 32768>=b:g=[29,b-24577,13];break;default:throw"invalid distance";}e=g;d[f++]=e[0];d[f++]=e[1];d[f++]=e[2];var k,m;k=0;for(m=d.length;k=b;)t[b++]=0;for(b=0;29>=b;)w[b++]=0}t[256]=1;f=0;for(a=d.length;f=a){x&&c(x,-1);b=0;for(k=a-f;bk&&d+kb&&(a=f,b=k);if(258===k)break}return new qa(b,d-a)} 33 | function oa(e,d){var c=e.length,f=new ja(572),a=new (C?Uint8Array:Array)(c),b,k,m,g,p;if(!C)for(g=0;g2*a[h-1]+b[h]&&(a[h]=2*a[h-1]+b[h]),m[h]=Array(a[h]),g[h]=Array(a[h]);for(l=0;le[l]?(m[h][q]=t,g[h][q]=d,w+=2):(m[h][q]=e[l],g[h][q]=l,++l);p[h]=0;1===b[h]&&f(h)}return k} 36 | function pa(e){var d=new (C?Uint16Array:Array)(e.length),c=[],f=[],a=0,b,k,m,g;b=0;for(k=e.length;b>>=1}return d};ba("Zlib.RawDeflate",ka);ba("Zlib.RawDeflate.prototype.compress",ka.prototype.h);var Ka={NONE:0,FIXED:1,DYNAMIC:ma},V,La,$,Ma;if(Object.keys)V=Object.keys(Ka);else for(La in V=[],$=0,Ka)V[$++]=La;$=0;for(Ma=V.length;$2;e==null&&(e=[]);if(d&&e.reduce===d)return r&&(t=T.bind(t,r)),i?e.reduce(t,n):e.reduce(t);N(e,function(e,s,o){i?n=t.call(r,n,e,s,o):(n=e,i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.reduceRight=T.foldr=function(e,t,n,r){var i=arguments.length>2;e==null&&(e=[]);if(v&&e.reduceRight===v)return r&&(t=T.bind(t,r)),arguments.length>2?e.reduceRight(t,n):e.reduceRight(t);var s=e.length;if(s!==+s){var o=T.keys(e);s=o.length}N(e,function(u,a,f){a=o?o[--s]:--s,i?n=t.call(r,n,e[a],a,f):(n=e[a],i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.find=T.detect=function(e,t,n){var r;return C(e,function(e,i,s){if(t.call(n,e,i,s))return r=e,!0}),r},T.filter=T.select=function(e,t,n){var r=[];return e==null?r:m&&e.filter===m?e.filter(t,n):(N(e,function(e,i,s){t.call(n,e,i,s)&&(r[r.length]=e)}),r)},T.reject=function(e,t,n){var r=[];return e==null?r:(N(e,function(e,i,s){t.call(n,e,i,s)||(r[r.length]=e)}),r)},T.every=T.all=function(e,t,r){t||(t=T.identity);var i=!0;return e==null?i:g&&e.every===g?e.every(t,r):(N(e,function(e,s,o){if(!(i=i&&t.call(r,e,s,o)))return n}),!!i)};var C=T.some=T.any=function(e,t,r){t||(t=T.identity);var i=!1;return e==null?i:y&&e.some===y?e.some(t,r):(N(e,function(e,s,o){if(i||(i=t.call(r,e,s,o)))return n}),!!i)};T.contains=T.include=function(e,t){var n=!1;return e==null?n:b&&e.indexOf===b?e.indexOf(t)!=-1:(n=C(e,function(e){return e===t}),n)},T.invoke=function(e,t){var n=u.call(arguments,2);return T.map(e,function(e){return(T.isFunction(t)?t:e[t]).apply(e,n)})},T.pluck=function(e,t){return T.map(e,function(e){return e[t]})},T.where=function(e,t){return T.isEmpty(t)?[]:T.filter(e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},T.max=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);if(!t&&T.isEmpty(e))return-Infinity;var r={computed:-Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o>=r.computed&&(r={value:e,computed:o})}),r.value},T.min=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);if(!t&&T.isEmpty(e))return Infinity;var r={computed:Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;or||n===void 0)return 1;if(n>>1;n.call(r,e[u])=0})})},T.difference=function(e){var t=a.apply(r,u.call(arguments,1));return T.filter(e,function(e){return!T.contains(t,e)})},T.zip=function(){var e=u.call(arguments),t=T.max(T.pluck(e,"length")),n=new Array(t);for(var r=0;r=0;n--)t=[e[n].apply(this,t)];return t[0]}},T.after=function(e,t){return e<=0?t():function(){if(--e<1)return t.apply(this,arguments)}},T.keys=S||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)T.has(e,n)&&(t[t.length]=n);return t},T.values=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push(e[n]);return t},T.pairs=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push([n,e[n]]);return t},T.invert=function(e){var t={};for(var n in e)T.has(e,n)&&(t[e[n]]=n);return t},T.functions=T.methods=function(e){var t=[];for(var n in e)T.isFunction(e[n])&&t.push(n);return t.sort()},T.extend=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]=t[n]}),e},T.pick=function(e){var t={},n=a.apply(r,u.call(arguments,1));return N(n,function(n){n in e&&(t[n]=e[n])}),t},T.omit=function(e){var t={},n=a.apply(r,u.call(arguments,1));for(var i in e)T.contains(n,i)||(t[i]=e[i]);return t},T.defaults=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]==null&&(e[n]=t[n])}),e},T.clone=function(e){return T.isObject(e)?T.isArray(e)?e.slice():T.extend({},e):e},T.tap=function(e,t){return t(e),e};var M=function(e,t,n,r){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return e===t;e instanceof T&&(e=e._wrapped),t instanceof T&&(t=t._wrapped);var i=l.call(e);if(i!=l.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if(typeof e!="object"||typeof t!="object")return!1;var s=n.length;while(s--)if(n[s]==e)return r[s]==t;n.push(e),r.push(t);var o=0,u=!0;if(i=="[object Array]"){o=e.length,u=o==t.length;if(u)while(o--)if(!(u=M(e[o],t[o],n,r)))break}else{var a=e.constructor,f=t.constructor;if(a!==f&&!(T.isFunction(a)&&a instanceof a&&T.isFunction(f)&&f instanceof f))return!1;for(var c in e)if(T.has(e,c)){o++;if(!(u=T.has(t,c)&&M(e[c],t[c],n,r)))break}if(u){for(c in t)if(T.has(t,c)&&!(o--))break;u=!o}}return n.pop(),r.pop(),u};T.isEqual=function(e,t){return M(e,t,[],[])},T.isEmpty=function(e){if(e==null)return!0;if(T.isArray(e)||T.isString(e))return e.length===0;for(var t in e)if(T.has(e,t))return!1;return!0},T.isElement=function(e){return!!e&&e.nodeType===1},T.isArray=E||function(e){return l.call(e)=="[object Array]"},T.isObject=function(e){return e===Object(e)},N(["Arguments","Function","String","Number","Date","RegExp"],function(e){T["is"+e]=function(t){return l.call(t)=="[object "+e+"]"}}),T.isArguments(arguments)||(T.isArguments=function(e){return!!e&&!!T.has(e,"callee")}),typeof /./!="function"&&(T.isFunction=function(e){return typeof e=="function"}),T.isFinite=function(e){return T.isNumber(e)&&isFinite(e)},T.isNaN=function(e){return T.isNumber(e)&&e!=+e},T.isBoolean=function(e){return e===!0||e===!1||l.call(e)=="[object Boolean]"},T.isNull=function(e){return e===null},T.isUndefined=function(e){return e===void 0},T.has=function(e,t){return c.call(e,t)},T.noConflict=function(){return e._=t,this},T.identity=function(e){return e},T.times=function(e,t,n){for(var r=0;r":">",'"':""","'":"'","/":"/"}};_.unescape=T.invert(_.escape);var D={escape:new RegExp("["+T.keys(_.escape).join("")+"]","g"),unescape:new RegExp("("+T.keys(_.unescape).join("|")+")","g")};T.each(["escape","unescape"],function(e){T[e]=function(t){return t==null?"":(""+t).replace(D[e],function(t){return _[e][t]})}}),T.result=function(e,t){if(e==null)return null;var n=e[t];return T.isFunction(n)?n.call(e):n},T.mixin=function(e){N(T.functions(e),function(t){var n=T[t]=e[t];T.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),F.call(this,n.apply(T,e))}})};var P=0;T.uniqueId=function(e){var t=P++;return e?e+t:t},T.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},j=/\\|'|\r|\n|\t|\u2028|\u2029/g;T.template=function(e,t,n){n=T.defaults({},n,T.templateSettings);var r=new RegExp([(n.escape||H).source,(n.interpolate||H).source,(n.evaluate||H).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){s+=e.slice(i,u).replace(j,function(e){return"\\"+B[e]}),s+=n?"'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?"'+\n((__t=("+r+"))==null?'':__t)+\n'":o?"';\n"+o+"\n__p+='":"",i=u+t.length}),s+="';\n",n.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(n.variable||"obj","_",s)}catch(u){throw u.source=s,u}if(t)return o(t,T);var a=function(e){return o.call(this,e,T)};return a.source="function("+(n.variable||"obj")+"){\n"+s+"}",a},T.chain=function(e){return T(e).chain()};var F=function(e){return this._chain?T(e).chain():e};T.mixin(T),N(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];T.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e=="shift"||e=="splice")&&n.length===0&&delete n[0],F.call(this,n)}}),N(["concat","join","slice"],function(e){var t=r[e];T.prototype[e]=function(){return F.call(this,t.apply(this._wrapped,arguments))}}),T.extend(T.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this); -------------------------------------------------------------------------------- /ext/github.js: -------------------------------------------------------------------------------- 1 | // Github.js 0.9.0 2 | // (c) 2013 Michael Aufreiter, Development Seed 3 | // Github.js is freely distributable under the MIT license. 4 | // For all details and documentation: 5 | // http://substance.io/michael/github 6 | 7 | (function() { 8 | 9 | // Initial Setup 10 | // ------------- 11 | 12 | var XMLHttpRequest, Base64, _; 13 | if (typeof exports !== 'undefined') { 14 | XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest; 15 | _ = require('underscore'); 16 | Base64 = require('./lib/base64.js'); 17 | }else{ 18 | _ = window._; 19 | Base64 = window.Base64; 20 | } 21 | //prefer native XMLHttpRequest always 22 | if (typeof window !== 'undefined' && typeof window.XMLHttpRequest !== 'undefined'){ 23 | XMLHttpRequest = window.XMLHttpRequest; 24 | } 25 | 26 | 27 | var API_URL = 'https://api.github.com'; 28 | 29 | var Github = function(options) { 30 | 31 | // HTTP Request Abstraction 32 | // ======= 33 | // 34 | // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec. 35 | 36 | function _request(method, path, data, cb, raw, sync) { 37 | function getURL() { 38 | var url = path.indexOf('//') >= 0 ? path : API_URL + path; 39 | return url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(); 40 | } 41 | 42 | var xhr = new XMLHttpRequest(); 43 | if (!raw) {xhr.dataType = "json";} 44 | 45 | xhr.open(method, getURL(), !sync); 46 | if (!sync) { 47 | xhr.onreadystatechange = function () { 48 | if (this.readyState == 4) { 49 | if (this.status >= 200 && this.status < 300 || this.status === 304) { 50 | cb(null, raw ? this.responseText : this.responseText ? JSON.parse(this.responseText) : true, this); 51 | } else { 52 | cb({path: path, request: this, error: this.status}); 53 | } 54 | } 55 | } 56 | }; 57 | xhr.setRequestHeader('Accept','application/vnd.github.raw+json'); 58 | xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8'); 59 | if ((options.token) || (options.username && options.password)) { 60 | xhr.setRequestHeader('Authorization', options.token 61 | ? 'token '+ options.token 62 | : 'Basic ' + Base64.encode(options.username + ':' + options.password) 63 | ); 64 | } 65 | data ? xhr.send(JSON.stringify(data)) : xhr.send(); 66 | if (sync) return xhr.response; 67 | } 68 | 69 | function _requestAllPages(path, cb) { 70 | var results = []; 71 | (function iterate() { 72 | _request("GET", path, null, function(err, res, xhr) { 73 | if (err) { 74 | return cb(err); 75 | } 76 | 77 | results.push.apply(results, res); 78 | 79 | var links = (xhr.getResponseHeader('link') || '').split(/\s*,\s*/g), 80 | next = _.find(links, function(link) { return /rel="next"/.test(link); }); 81 | 82 | if (next) { 83 | next = (/<(.*)>/.exec(next) || [])[1]; 84 | } 85 | 86 | if (!next) { 87 | cb(err, results); 88 | } else { 89 | path = next; 90 | iterate(); 91 | } 92 | }); 93 | })(); 94 | } 95 | 96 | 97 | 98 | // User API 99 | // ======= 100 | 101 | Github.User = function() { 102 | this.repos = function(cb) { 103 | // Github does not always honor the 1000 limit so we want to iterate over the data set. 104 | _requestAllPages("/user/repos?type=all&per_page=1000&sort=updated", function(err, res) { 105 | cb(err, res); 106 | }); 107 | }; 108 | 109 | // List user organizations 110 | // ------- 111 | 112 | this.orgs = function(cb) { 113 | _request("GET", "/user/orgs", null, function(err, res) { 114 | cb(err, res); 115 | }); 116 | }; 117 | 118 | // List authenticated user's gists 119 | // ------- 120 | 121 | this.gists = function(cb) { 122 | _request("GET", "/gists", null, function(err, res) { 123 | cb(err,res); 124 | }); 125 | }; 126 | 127 | // List authenticated user's unread notifications 128 | // ------- 129 | 130 | this.notifications = function(cb) { 131 | _request("GET", "/notifications", null, function(err, res) { 132 | cb(err,res); 133 | }); 134 | }; 135 | 136 | // Show user information 137 | // ------- 138 | 139 | this.show = function(username, cb) { 140 | var command = username ? "/users/"+username : "/user"; 141 | 142 | _request("GET", command, null, function(err, res) { 143 | cb(err, res); 144 | }); 145 | }; 146 | 147 | // List user repositories 148 | // ------- 149 | 150 | this.userRepos = function(username, cb) { 151 | // Github does not always honor the 1000 limit so we want to iterate over the data set. 152 | _requestAllPages("/users/"+username+"/repos?type=all&per_page=1000&sort=updated", function(err, res) { 153 | cb(err, res); 154 | }); 155 | }; 156 | 157 | // List a user's gists 158 | // ------- 159 | 160 | this.userGists = function(username, cb) { 161 | _request("GET", "/users/"+username+"/gists", null, function(err, res) { 162 | cb(err,res); 163 | }); 164 | }; 165 | 166 | // List organization repositories 167 | // ------- 168 | 169 | this.orgRepos = function(orgname, cb) { 170 | // Github does not always honor the 1000 limit so we want to iterate over the data set. 171 | _requestAllPages("/orgs/"+orgname+"/repos?type=all&&page_num=1000&sort=updated&direction=desc", function(err, res) { 172 | cb(err, res); 173 | }); 174 | }; 175 | 176 | // Follow user 177 | // ------- 178 | 179 | this.follow = function(username, cb) { 180 | _request("PUT", "/user/following/"+username, null, function(err, res) { 181 | cb(err, res); 182 | }); 183 | }; 184 | 185 | // Unfollow user 186 | // ------- 187 | 188 | this.unfollow = function(username, cb) { 189 | _request("DELETE", "/user/following/"+username, null, function(err, res) { 190 | cb(err, res); 191 | }); 192 | }; 193 | }; 194 | 195 | 196 | // Repository API 197 | // ======= 198 | 199 | Github.Repository = function(options) { 200 | var repo = options.name; 201 | var user = options.user; 202 | 203 | var that = this; 204 | var repoPath = "/repos/" + user + "/" + repo; 205 | 206 | var currentTree = { 207 | "branch": null, 208 | "sha": null 209 | }; 210 | 211 | // Uses the cache if branch has not been changed 212 | // ------- 213 | 214 | function updateTree(branch, cb) { 215 | if (branch === currentTree.branch && currentTree.sha) return cb(null, currentTree.sha); 216 | that.getRef("heads/"+branch, function(err, sha) { 217 | currentTree.branch = branch; 218 | currentTree.sha = sha; 219 | cb(err, sha); 220 | }); 221 | } 222 | 223 | // Get a particular reference 224 | // ------- 225 | 226 | this.getRef = function(ref, cb) { 227 | _request("GET", repoPath + "/git/refs/" + ref, null, function(err, res) { 228 | if (err) return cb(err); 229 | cb(null, res.object.sha); 230 | }); 231 | }; 232 | 233 | // Create a new reference 234 | // -------- 235 | // 236 | // { 237 | // "ref": "refs/heads/my-new-branch-name", 238 | // "sha": "827efc6d56897b048c772eb4087f854f46256132" 239 | // } 240 | 241 | this.createRef = function(options, cb) { 242 | _request("POST", repoPath + "/git/refs", options, cb); 243 | }; 244 | 245 | // Delete a reference 246 | // -------- 247 | // 248 | // repo.deleteRef('heads/gh-pages') 249 | // repo.deleteRef('tags/v1.0') 250 | 251 | this.deleteRef = function(ref, cb) { 252 | _request("DELETE", repoPath + "/git/refs/"+ref, options, cb); 253 | }; 254 | 255 | // Create a repo 256 | // ------- 257 | 258 | this.createRepo = function(options, cb) { 259 | _request("POST", "/user/repos", options, cb); 260 | }; 261 | 262 | // Delete a repo 263 | // -------- 264 | 265 | this.deleteRepo = function(cb) { 266 | _request("DELETE", repoPath, options, cb); 267 | }; 268 | 269 | // List all tags of a repository 270 | // ------- 271 | 272 | this.listTags = function(cb) { 273 | _request("GET", repoPath + "/tags", null, function(err, tags) { 274 | if (err) return cb(err); 275 | cb(null, tags); 276 | }); 277 | }; 278 | 279 | // List all pull requests of a respository 280 | // ------- 281 | 282 | this.listPulls = function(state, cb) { 283 | _request("GET", repoPath + "/pulls" + (state ? '?state=' + state : ''), null, function(err, pulls) { 284 | if (err) return cb(err); 285 | cb(null, pulls); 286 | }); 287 | }; 288 | 289 | // Gets details for a specific pull request 290 | // ------- 291 | 292 | this.getPull = function(number, cb) { 293 | _request("GET", repoPath + "/pulls/" + number, null, function(err, pull) { 294 | if (err) return cb(err); 295 | cb(null, pull); 296 | }); 297 | }; 298 | 299 | // Retrieve the changes made between base and head 300 | // ------- 301 | 302 | this.compare = function(base, head, cb) { 303 | _request("GET", repoPath + "/compare/" + base + "..." + head, null, function(err, diff) { 304 | if (err) return cb(err); 305 | cb(null, diff); 306 | }); 307 | }; 308 | 309 | // List all branches of a repository 310 | // ------- 311 | 312 | this.listBranches = function(cb) { 313 | _request("GET", repoPath + "/git/refs/heads", null, function(err, heads) { 314 | if (err) return cb(err); 315 | cb(null, _.map(heads, function(head) { return _.last(head.ref.split('/')); })); 316 | }); 317 | }; 318 | 319 | // Retrieve the contents of a blob 320 | // ------- 321 | 322 | this.getBlob = function(sha, cb) { 323 | _request("GET", repoPath + "/git/blobs/" + sha, null, cb, 'raw'); 324 | }; 325 | 326 | // For a given file path, get the corresponding sha (blob for files, tree for dirs) 327 | // ------- 328 | 329 | this.getSha = function(branch, path, cb) { 330 | // Just use head if path is empty 331 | if (path === "") return that.getRef("heads/"+branch, cb); 332 | that.getTree(branch+"?recursive=true", function(err, tree) { 333 | if (err) return cb(err); 334 | var file = _.select(tree, function(file) { 335 | return file.path === path; 336 | })[0]; 337 | cb(null, file ? file.sha : null); 338 | }); 339 | }; 340 | 341 | // Retrieve the tree a commit points to 342 | // ------- 343 | 344 | this.getTree = function(tree, cb) { 345 | _request("GET", repoPath + "/git/trees/"+tree, null, function(err, res) { 346 | if (err) return cb(err); 347 | cb(null, res.tree); 348 | }); 349 | }; 350 | 351 | // Post a new blob object, getting a blob SHA back 352 | // ------- 353 | 354 | this.postBlob = function(content, cb) { 355 | if (typeof(content) === "string") { 356 | content = { 357 | "content": content, 358 | "encoding": "utf-8" 359 | }; 360 | } 361 | 362 | _request("POST", repoPath + "/git/blobs", content, function(err, res) { 363 | if (err) return cb(err); 364 | cb(null, res.sha); 365 | }); 366 | }; 367 | 368 | // Update an existing tree adding a new blob object getting a tree SHA back 369 | // ------- 370 | 371 | this.updateTree = function(baseTree, path, blob, cb) { 372 | var data = { 373 | "base_tree": baseTree, 374 | "tree": [ 375 | { 376 | "path": path, 377 | "mode": "100644", 378 | "type": "blob", 379 | "sha": blob 380 | } 381 | ] 382 | }; 383 | _request("POST", repoPath + "/git/trees", data, function(err, res) { 384 | if (err) return cb(err); 385 | cb(null, res.sha); 386 | }); 387 | }; 388 | 389 | // Post a new tree object having a file path pointer replaced 390 | // with a new blob SHA getting a tree SHA back 391 | // ------- 392 | 393 | this.postTree = function(tree, cb) { 394 | _request("POST", repoPath + "/git/trees", { "tree": tree }, function(err, res) { 395 | if (err) return cb(err); 396 | cb(null, res.sha); 397 | }); 398 | }; 399 | 400 | // Create a new commit object with the current commit SHA as the parent 401 | // and the new tree SHA, getting a commit SHA back 402 | // ------- 403 | 404 | this.commit = function(parent, tree, message, cb) { 405 | var data = { 406 | "message": message, 407 | "author": { 408 | "name": options.username 409 | }, 410 | "parents": [ 411 | parent 412 | ], 413 | "tree": tree 414 | }; 415 | 416 | _request("POST", repoPath + "/git/commits", data, function(err, res) { 417 | currentTree.sha = res.sha; // update latest commit 418 | if (err) return cb(err); 419 | cb(null, res.sha); 420 | }); 421 | }; 422 | 423 | // Update the reference of your head to point to the new commit SHA 424 | // ------- 425 | 426 | this.updateHead = function(head, commit, cb) { 427 | _request("PATCH", repoPath + "/git/refs/heads/" + head, { "sha": commit }, function(err, res) { 428 | cb(err); 429 | }); 430 | }; 431 | 432 | // Show repository information 433 | // ------- 434 | 435 | this.show = function(cb) { 436 | _request("GET", repoPath, null, cb); 437 | }; 438 | 439 | // Get contents 440 | // -------- 441 | 442 | this.contents = function(branch, path, cb, sync) { 443 | return _request("GET", repoPath + "/contents?ref=" + branch + (path ? "&path=" + path : ""), null, cb, 'raw', sync); 444 | }; 445 | 446 | // Fork repository 447 | // ------- 448 | 449 | this.fork = function(cb) { 450 | _request("POST", repoPath + "/forks", null, cb); 451 | }; 452 | 453 | // Branch repository 454 | // -------- 455 | 456 | this.branch = function(oldBranch,newBranch,cb) { 457 | if(arguments.length === 2 && typeof arguments[1] === "function") { 458 | cb = newBranch; 459 | newBranch = oldBranch; 460 | oldBranch = "master"; 461 | } 462 | this.getRef("heads/" + oldBranch, function(err,ref) { 463 | if(err && cb) return cb(err); 464 | that.createRef({ 465 | ref: "refs/heads/" + newBranch, 466 | sha: ref 467 | },cb); 468 | }); 469 | } 470 | 471 | // Create pull request 472 | // -------- 473 | 474 | this.createPullRequest = function(options, cb) { 475 | _request("POST", repoPath + "/pulls", options, cb); 476 | }; 477 | 478 | // List hooks 479 | // -------- 480 | 481 | this.listHooks = function(cb) { 482 | _request("GET", repoPath + "/hooks", null, cb); 483 | }; 484 | 485 | // Get a hook 486 | // -------- 487 | 488 | this.getHook = function(id, cb) { 489 | _request("GET", repoPath + "/hooks/" + id, null, cb); 490 | }; 491 | 492 | // Create a hook 493 | // -------- 494 | 495 | this.createHook = function(options, cb) { 496 | _request("POST", repoPath + "/hooks", options, cb); 497 | }; 498 | 499 | // Edit a hook 500 | // -------- 501 | 502 | this.editHook = function(id, options, cb) { 503 | _request("PATCH", repoPath + "/hooks/" + id, options, cb); 504 | }; 505 | 506 | // Delete a hook 507 | // -------- 508 | 509 | this.deleteHook = function(id, cb) { 510 | _request("DELETE", repoPath + "/hooks/" + id, null, cb); 511 | }; 512 | 513 | // Read file at given path 514 | // ------- 515 | 516 | this.read = function(branch, path, cb) { 517 | that.getSha(branch, path, function(err, sha) { 518 | if (!sha) return cb("not found", null); 519 | that.getBlob(sha, function(err, content) { 520 | cb(err, content, sha); 521 | }); 522 | }); 523 | }; 524 | 525 | // Remove a file from the tree 526 | // ------- 527 | 528 | this.remove = function(branch, path, cb) { 529 | updateTree(branch, function(err, latestCommit) { 530 | that.getTree(latestCommit+"?recursive=true", function(err, tree) { 531 | // Update Tree 532 | var newTree = _.reject(tree, function(ref) { return ref.path === path; }); 533 | _.each(newTree, function(ref) { 534 | if (ref.type === "tree") delete ref.sha; 535 | }); 536 | 537 | that.postTree(newTree, function(err, rootTree) { 538 | that.commit(latestCommit, rootTree, 'Deleted '+path , function(err, commit) { 539 | that.updateHead(branch, commit, function(err) { 540 | cb(err); 541 | }); 542 | }); 543 | }); 544 | }); 545 | }); 546 | }; 547 | 548 | // Move a file to a new location 549 | // ------- 550 | 551 | this.move = function(branch, path, newPath, cb) { 552 | updateTree(branch, function(err, latestCommit) { 553 | that.getTree(latestCommit+"?recursive=true", function(err, tree) { 554 | // Update Tree 555 | _.each(tree, function(ref) { 556 | if (ref.path === path) ref.path = newPath; 557 | if (ref.type === "tree") delete ref.sha; 558 | }); 559 | 560 | that.postTree(tree, function(err, rootTree) { 561 | that.commit(latestCommit, rootTree, 'Deleted '+path , function(err, commit) { 562 | that.updateHead(branch, commit, function(err) { 563 | cb(err); 564 | }); 565 | }); 566 | }); 567 | }); 568 | }); 569 | }; 570 | 571 | // Write file contents to a given branch and path 572 | // ------- 573 | 574 | this.write = function(branch, path, content, message, cb) { 575 | updateTree(branch, function(err, latestCommit) { 576 | if (err) return cb(err); 577 | that.postBlob(content, function(err, blob) { 578 | if (err) return cb(err); 579 | that.updateTree(latestCommit, path, blob, function(err, tree) { 580 | if (err) return cb(err); 581 | that.commit(latestCommit, tree, message, function(err, commit) { 582 | if (err) return cb(err); 583 | that.updateHead(branch, commit, cb); 584 | }); 585 | }); 586 | }); 587 | }); 588 | }; 589 | 590 | // List commits on a repository. Takes an object of optional paramaters: 591 | // sha: SHA or branch to start listing commits from 592 | // path: Only commits containing this file path will be returned 593 | // since: ISO 8601 date - only commits after this date will be returned 594 | // until: ISO 8601 date - only commits before this date will be returned 595 | // ------- 596 | 597 | this.getCommits = function(options, cb) { 598 | options = options || {}; 599 | var url = repoPath + "/commits"; 600 | var params = []; 601 | if (options.sha) { 602 | params.push("sha=" + encodeURIComponent(options.sha)); 603 | } 604 | if (options.path) { 605 | params.push("path=" + encodeURIComponent(options.path)); 606 | } 607 | if (options.since) { 608 | var since = options.since; 609 | if (since.constructor === Date) { 610 | since = since.toISOString(); 611 | } 612 | params.push("since=" + encodeURIComponent(since)); 613 | } 614 | if (options.until) { 615 | var until = options.until; 616 | if (until.constructor === Date) { 617 | until = until.toISOString(); 618 | } 619 | params.push("until=" + encodeURIComponent(until)); 620 | } 621 | if (params.length > 0) { 622 | url += "?" + params.join("&"); 623 | } 624 | _request("GET", url, null, cb); 625 | }; 626 | }; 627 | 628 | // Gists API 629 | // ======= 630 | 631 | Github.Gist = function(options) { 632 | var id = options.id; 633 | var gistPath = "/gists/"+id; 634 | 635 | // Read the gist 636 | // -------- 637 | 638 | this.read = function(cb) { 639 | _request("GET", gistPath, null, function(err, gist) { 640 | cb(err, gist); 641 | }); 642 | }; 643 | 644 | // Create the gist 645 | // -------- 646 | // { 647 | // "description": "the description for this gist", 648 | // "public": true, 649 | // "files": { 650 | // "file1.txt": { 651 | // "content": "String file contents" 652 | // } 653 | // } 654 | // } 655 | 656 | this.create = function(options, cb){ 657 | _request("POST","/gists", options, cb); 658 | }; 659 | 660 | // Delete the gist 661 | // -------- 662 | 663 | this.delete = function(cb) { 664 | _request("DELETE", gistPath, null, function(err,res) { 665 | cb(err,res); 666 | }); 667 | }; 668 | 669 | // Fork a gist 670 | // -------- 671 | 672 | this.fork = function(cb) { 673 | _request("POST", gistPath+"/fork", null, function(err,res) { 674 | cb(err,res); 675 | }); 676 | }; 677 | 678 | // Update a gist with the new stuff 679 | // -------- 680 | 681 | this.update = function(options, cb) { 682 | _request("PATCH", gistPath, options, function(err,res) { 683 | cb(err,res); 684 | }); 685 | }; 686 | 687 | // Star a gist 688 | // -------- 689 | 690 | this.star = function(cb) { 691 | _request("PUT", gistPath+"/star", null, function(err,res) { 692 | cb(err,res); 693 | }); 694 | }; 695 | 696 | // Untar a gist 697 | // -------- 698 | 699 | this.unstar = function(cb) { 700 | _request("DELETE", gistPath+"/star", null, function(err,res) { 701 | cb(err,res); 702 | }); 703 | }; 704 | 705 | // Check if a gist is starred 706 | // -------- 707 | 708 | this.isStarred = function(cb) { 709 | _request("GET", gistPath+"/star", null, function(err,res) { 710 | cb(err,res); 711 | }); 712 | }; 713 | }; 714 | 715 | // Issues API 716 | // ========== 717 | 718 | Github.Issue = function(options) { 719 | var path = "/repos/" + options.user + "/" + options.repo + "/issues"; 720 | 721 | this.list = function(options, cb) { 722 | _request("GET", path, options, function(err, res) { 723 | cb(err,res) 724 | }); 725 | }; 726 | }; 727 | 728 | // Top Level API 729 | // ------- 730 | 731 | this.getIssues = function(user, repo) { 732 | return new Github.Issue({user: user, repo: repo}); 733 | }; 734 | 735 | this.getRepo = function(user, repo) { 736 | return new Github.Repository({user: user, name: repo}); 737 | }; 738 | 739 | this.getUser = function() { 740 | return new Github.User(); 741 | }; 742 | 743 | this.getGist = function(id) { 744 | return new Github.Gist({id: id}); 745 | }; 746 | }; 747 | 748 | 749 | if (typeof exports !== 'undefined') { 750 | // Github = exports; 751 | module.exports = Github; 752 | } else { 753 | window.Github = Github; 754 | } 755 | }).call(this); 756 | --------------------------------------------------------------------------------