|}Q>N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~              !"#$%&'()*+, - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M  Safe-Inferred NOPQRSTUVWXYZOUVWXYZ NOPQRSTUVWXYZNone +3"  !"#$%&'([\)]  !"#$%&'() ('&%$#"!  ) ('&%$#"!  [\)](c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone5Load an image file.6Save * into a file.^_' stitches the right operand to the left*+`ab,-./0123456^ *+,-./0123456 *,+-./3420156 *,+`ab-./0123456^(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone7 Font object9 Create a 7 from the given file.:Get the font's metrics.;Get the font's metrics.<Get the font's bounding box. 7c89:;<de=789:;<=798<:;= 7c89:;<de=(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None>The type of the given f must be FilePath -> IO FilePath] FIXME: This may cause name duplication if there are multiple non-alphanumeric file names. gLoad and define all pictures in the specified directory. On base >= 4.6, file paths to actually load will be respect to the directory of the executable. Otherwise it will be based on the current directory. >gh>>>gh(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone+-./?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ijk*+,?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ڟJ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKDIHGFE?@ABC*,+?@ABCDIHGFEJy~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKijk(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone (c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone  &3HJKMT    (c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone&3(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone -234=BHKM-      !"#$%lm&'()*FOV Near plane Far plane The scene+nopqrs0       !"#$%&'()*+0 !"   #$%'& )*+ (        !"#$%lm&'()*+nopqrs (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None !"&(23468:=BHJKMT>tuvwxyz{|}~,-./0123456789:;<=>?@ABCDEF,-./0123456789:;<=>?@ABCDEF,5.678-9:>=;<?A@/01234FBDCE.t uvwxyz{|}~,-./0123456789:;<=>?@ABCDEF None&3GHIJKGHIJKGHIJKGHIJK NoneHMLM _      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR*+,789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFLMLMLMS !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                     !X"#$%&'()*+,-  . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M NOPQRSTUVWXYZ[\]^_`abcdeGfghijklmnopqrstuvw x x y z { | } ~                            ````````````````````````````````````````a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a`a```````````````````````````````      !"#$%&$%'$%($%($)*$)+$),$)-$).$)/$)0$)1$)2$)3$45$46$78$79$7:$7;$7<$7=$7>$7?$7@$AB$AC$AD$AE$AF$AG$AH$AI$AJ$AK$AL$AM$AN$AO$AP$AQ$AR$AS$AT$AU$AV$AW$AX$AY$AZ$A[$A\$A]$A^$A_$A`$Aa$Ab$Ac$de$df$dg$hi$hj$hk$hl$hm$hn$ho$hp$hq$hr$hs$ht$hu$hv$hw$hx$hx$hy$hz$h{$h|$h}$h~$h$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$      !"!#!$!$%&%'%(%)%*%+%,%-%.%/0102030405060708089:9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9RSTSUSVSWSXSXYZY[Y\Y]Y^Y_Y`YaYbYcd call-0.1.3 Call.SightCall.Internal.PortAudioCall.Data.BitmapCall.Data.FontCall.TH Call.TypesCall.Data.WaveCall.Internal.GLFWCall.Util.DeckCall.Util.Sampler Call.SystemCall.Util.TextCall Paths_callOpenGL-2.9.2.0*Graphics.Rendering.OpenGL.GL.PrimitiveModePointsLinesLineLoop LineStrip Triangles TriangleStrip TriangleFanQuads QuadStripPolygon PrimitiveModeError BadBufferPtrIncompatibleStreamHostApiCanNotWriteToAnInputOnlyStream CanNotReadFromAnOutputOnlyStreamCanNotWriteToACallbackStreamCanNotReadFromACallbackStreamInvalidHostApiHostApiNotFoundOutputUnderflowedInputOverflowedStreamIsNotStoppedStreamIsStopped%IncompatibleHostApiSpecificStreamInfoDeviceUnavailable InternalErrorTimedOut BadStreamPtr NullCallbackBufferTooSmall BufferTooBigInsufficientMemoryBadIODeviceCombinationSampleFormatNotSupported InvalidFlag InvalidDeviceInvalidSampleRateInvalidChannelCountUnanticipatedHostErrorNotInitializedwithBitmapBlankimageoffsethashclipbboxsize liftImage liftImage'readFile writeFileFont defaultFontreadFont metricsAscentmetricsDescentfontBoundingBox renderCharloadBitmapsWithVertexvPosvUVvNormal BlendModeScreenMultiplyAddInverseNormalKeyKeyMenu KeyRightSuper KeyRightAltKeyRightControl KeyRightShift KeyLeftSuper KeyLeftAltKeyLeftControl KeyLeftShift KeyPadEqual KeyPadEnter KeyPadAddKeyPadSubtractKeyPadMultiply KeyPadDivide KeyPadDecimalKeyPad9KeyPad8KeyPad7KeyPad6KeyPad5KeyPad4KeyPad3KeyPad2KeyPad1KeyPad0KeyF25KeyF24KeyF23KeyF22KeyF21KeyF20KeyF19KeyF18KeyF17KeyF16KeyF15KeyF14KeyF13KeyF12KeyF11KeyF10KeyF9KeyF8KeyF7KeyF6KeyF5KeyF4KeyF3KeyF2KeyF1KeyPauseKeyPrintScreen KeyNumLock KeyScrollLock KeyCapsLockKeyEndKeyHome KeyPageDown KeyPageUpKeyUpKeyDownKeyLeftKeyRight KeyDelete KeyInsert KeyBackspaceKeyTabKeyEnter KeyEscape KeyWorld2 KeyWorld1KeyGraveAccentKeyRightBracket KeyBackslashKeyLeftBracketKeyZKeyYKeyXKeyWKeyVKeyUKeyTKeySKeyRKeyQKeyPKeyOKeyNKeyMKeyLKeyKKeyJKeyIKeyHKeyGKeyFKeyEKeyDKeyCKeyBKeyAKeyEqual KeySemicolonKey9Key8Key7Key6Key5Key4Key3Key2Key1Key0KeySlash KeyPeriodKeyMinusKeyComma KeyApostropheKeySpace KeyUnknown GamepadEvent PadConnection PadButtonGamepad MouseEventScrollCursorButtonChatterDownUp WindowMode FullScreen ResizableWindowedVec3Vec2StereoTime charToKey positionUV positionOnlySample sampleLength sampleSourceSourcereadWAVETextureSystem refRegion theWindow theProgramgfgsizeiinstallTexturereleaseTexture beginFrameendFrame beginGLFW compileShader initializeGLendGLFWscreenshotFlipped screenshotblendMode2BlendingFactors blendModeDeck_src_pos_playingemptysourceposplayingplayback playbackOfSamplerplaySightunSightPicture unPictureVFXEmbedIODiffuseSphericalMultiply SphericalAddSceneunSceneFigure primitivecolorlinepolygonpolygonOutlinecircle circleOutlineAffineVecrotateOnscale translateopacitybitmaptowardverticestransformSceneapplyVFX viewPicture viewScenefromPerspectivesetFPS forkSystem linkGraphic linkPicture linkAudio linkKeyboard linkMouse linkGamepad runSystemstandwaitgetTimekeyPress mousePosition hideCursor disableCursor enableCursor mouseButton getGamepads gamepadAxesgamepadButtons clearColorsetBoundingBoxgetBoundingBoxtakeScreenshotsetTitlerenderer typewriterputStrclearsimplerunSystemDefault readBitmapcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName fromErrorCodecallback$fExceptionError$fMonoidBitmapbase Data.Monoidmappend_image_offset_hash runFreeTypefreeTypetemplate-haskellLanguage.Haskell.TH.LibExpQ getFileList pathToNamealign1align2$fStorableVertex unit_circlev2ToV3 $fMonoidSight$fFigurePicture$fAffinePicture $fMonoidScene $fFigureScene $fAffineScene Foundation sampleRate coreGraphic coreAudio coreKeyboard coreMouse coreJoypadtheTime theSystem targetFPStexturestheEndtheGamepadButtonsInstSunSystemmkSystem pollGamepad runGraphic audioProcess keyCallbackmouseButtonCallbackcursorPosCallbackscrollCallback fetchTexture drawScene drawSight$fMonadIOSystem $fTowerSystemTFCo:R:InstSystemfg$fObjectiveBaseSystem$fMonoidSystem$fFigureSystem$fAffineSystemnew'GHC.Basefail>>=>>fmapreturn Control.MonadguardliftMjoinControl.Applicative<*>pure AlternativeMonadFunctor MonadPlus ApplicativeoptionalliftA3liftA2liftA<**><**>manysome<|>getConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipList Data.Functor<$><>mconcatmemptyMonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMvoidforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzero<$ colors-0.3 Data.ColormultRGBAblendColorRGBAData.Color.NamesmagentacyanyellowbluegreenredblackgraywhiteData.Color.Class_8Bit_Blue_Green_RedfromRGBHasRGB _Brightness _Saturation_HuefromHSBHasHSB_AlphaHasAlphacontrol-bool-0.2.1 Control.Boolaguard'aguardguardM'guard' ifThenElseMunlessMwhenM<|=><||><&=><&&>notMnotF ifThenElsebool linear-1.15.5Linear.Covector$* runCovectorCovectorLinear.Algebra counitalRep comultRep unitalRepmultRepunitalmultAlgebracounitalcomult Coalgebra Linear.Binary getLinear putLinearLinear.Projection inverseOrthoorthoinverseInfinitePerspectiveinfinitePerspectiveinverseFrustumfrustuminversePerspective perspectivelookAt Linear.Matrixinv44 transposeinv33inv22det44det33det22 translationeye4eye3eye2 m33_to_m44 m43_to_m44mkTransformationmkTransformationMatfromQuaternionadjoint!!**!!*!!*!-!!+!!*!columnM22M23M24M32M33M34M42M43M44 Linear.TracediagonaltraceTraceLinear.Quaternion axisAnglerotateslerpatanhqacoshqasinhqatanqacosqasinqpowabsiekejeiee Quaternion_i_e Complicated_ijk_k_j HamiltonianLinear.Conjugate conjugate ConjugateTrivialConjugate Linear.V4normalizePointpointvectorew_wzyx_wzxy_wyzx_wyxz_wxzy_wxyz_zwyx_zwxy_zywx_zyxw_zxwy_zxyw_ywzx_ywxz_yzwx_yzxw_yxwz_yxzw_xwzy_xwyz_xzwy_xzyw_xywz_wzy_wzx_wyz_wyx_wxz_wxy_zwy_zwx_zyw_zxw_ywz_ywx_yzw_yxw_xwz_xwy_xzw_xyw_wz_wy_wx_zw_yw_xwV4_xyzw_wR4 Linear.V3triplecrossez_zyx_zxy_yzx_yxz_xzy_zy_zx_yz_xzV3_xyz_zR3 Linear.V2angleperpey_yxV2_xy_yR2 Linear.V1exV1_xR1 Linear.V0V0 Linear.Metricproject normalizesignormnormdistanceqd quadrancedotMetricLinear.EpsilonnearZeroEpsilon Linear.Vectorouterunit kroneckerbasisForbasis^/^**^sumVnegatedelEliftI2liftU2lerp^-^^+^zeroAdditivetransformers-0.4.2.0Control.Monad.IO.ClassMonadIOliftIOobjective-0.6.5.1Control.Monad.Objective.Class invocation.!.&.^.-.-> newSettleInst'invokenewInstOfInst ObjectiveBaseMonadObjectiveControl.Object.Extra invokeState*-foldPPmoorevariableannounceMaybeT announceMaybeannouncetransitanimate flyweight' flyweightoneshotVariableControl.Object.Process_Process unProcessProcessControl.Object.Stream@$$$$@filterRfilterLmapRmapL fromFoldable!$$!$?$$$Control.Object.Mortal reincarnationimmortalmortal_ runMortal' runMortalmortalunMortalMortalControl.Object.Object adaptObject transObject iterativeT iterative sequentialT sequential iterTObject iterObject@!!@!sharing@||@@**@^>>@@>>^@<<@@>>@statefulunfoldOMunfoldOliftOecho@- runObjectObjectData.Functor.RequestacceptMacceptrequest mapRequestRequestData.Functor.PushPull filterPushbipullbipushmapPushpullpushPushPullPushPull PushPull'