k W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~g(c) 2012 Bryan O'Sullivan (c) 2011 MailRank, Inc. (c) 2014 Brent YorgeyBSD3 Brent Yorgey <byorgey@gmail.com>NoneEncode a JSON  to a >, which can be embedded efficiently in a text-based protocol.6None$-You will not like the { or  you get from the  instance.You will not like the {, , , or  you get from the  instance. You may like .You will not like the { or w you get from the  instance.You will not like the {, , or  you get from the  instance. You may like .You will not like the  or  you get from the  instance. You may like .You will not like the { you get from the  instance.You will not like the { you get from the < instance, and you almost certainly will also not like the s, q, or o< you get. The only behaviors that will be respected in the m are B, C, and D<; all the remaining behaviors will be set according to the q.You will not like the { you get from the  instance. The  you get will have  _Points = []6 unless you explicitly ask for the points by setting u.7URL of graph image TODO: can this be computed from gID?7URL of graph thumb TODO: can this be computed from gID?assuming no more data reportedhow many seconds before  to FREAK OUTis graph still rendering?0empty unless you explicitly ask for it not to be%which side of the road is good?&which way is the road going? TODO: can this be inferred from gRate? (what happens when a downward-sloping graph gets dialed to an upward slope?)(qdate, value, and rate??? TODO: can this be inferred from gTarget (or vice versa)? if not, what's the difference??-the current pledge (TODO: can this be inferred from gPledge or vice versa?) and the date of a scheduled future stepdown, if any/.what to do with multiple points on a given day95interpret rate as multiplicative rather than additive:$plot values as the sum of the points;7treat zero as an odomoter reset rather than a literal 0<5initial data point goes at the road edge (not center)=4use points (not just rate) when computing road width>-use steppy-like line when rendering the graph?6show the optimistic rosy dots when rendering the graph@graph the moving averageA$render the turquoise confidence areaB%garbage collect this goal after a bitConly the owner can see the goalD!only the owner can see the points# means "whoever owns the API token" means "all goals"; the ] and ^ \=s are the goals above and below the fold in the web interface8how much information do you want about the user's goals? means return all data points;  n will return only the nA most recently added (not most recently timestamped!) data pointsW=minimal detail: just the "slug" (the part that goes in a URL)X.details about all the currently existing goalsY>maximal detail: report even about goals that have been deletedZ]a Unix timestamp; show all the changes since that timestamp (new points, deleted goals, etc.)[when X, return only each goal's latest data point and a subset of the attributes for each goal_the T value is the upper bound of all updates -- even nested ones to goals, points, etc.gjust the short names (use W)h4information about all currently existing goals (use X)i?created or updated goals first, then IDs of deleted goals (use i)&Set the timestamp to the current time.S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGLHJIKMONPRTQSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       ! !"#$%&'()*+,-./01 2345676758 9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs4None<=DIR`Run a beeminder computation with the given authentication token, possibly returning a result.t4Turn a raw operation taking a token and returning a u- into a nicely encapsulated action in the  monad.vwxyz{|t  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGLHJIKMONPRTQSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fghi_`abcde !"#$%&'()*+,-./0\]^VWXYZ[PQRSTUEFGHIJKLMNO89:;<=>?@ABCD1234567675 ~|}z{xyvwturspqnolmjkvwxyz{|t}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrs(beeminder-api-1.0-1cXPZeZ9lNqDESjMo7OhR9Network.BeeminderData.Aeson.Encode.ShimNetwork.Beeminder.InternalPoint pTimestamppValuepComment pRequestIDpID pUpdatedAtGoalTypeHustlerBikerFatLoserGainerInboxerDrinkerGoalgIDgGoal gUpdatedAtgBurnergTitlegTarget gRatePeriodgGraphgThumb gLoseDategPanicgQueuedgPoints gPointCountgPledge gStartDate gStartValue gCurrentDate gCurrentValue gReportedDategYawgSlopegLane gMathIsHardgSummarygWongFrozengLost gContractgRoad gAggregate gBehaviorTarget MissingDate MissingValue MissingRatetValuetRatetDateBehavior Exponential CumulativeOdometerEdgyNoisyStepLineRosy MovingAverageAura EphemeralSecret SecretPoints AggregateLastFirstAllMinMaxMeanSum DirectionUpDown TimeFrameYearMonthWeekDayHourLevelOfGoalDetail JustTheSlugsEverythingCurrent DiffSincesinceskinnyBurnerFrontBackUseruName uTimezoneuGoalsuID uUpdatedAt UserGoalsSlugsHashesDiffHasPanic_Panic HasBehavior _Behavior HasTarget_TargetHasType_TypeHasTitle_Title HasGetPoints _GetPointsHasPointRequests_PointRequestsHasPointRequest _PointRequestHasGoal_Goal HasRequestID _RequestID HasComment_CommentHasValue_Value HasTimestamp _Timestamp HasPointCount _PointCountHasLevelOfDetail_LevelOfDetailHasGoalsFilter _GoalsFilterHasGoals_Goals HasUsername _Username HasTimezone _TimezoneHasName_Name HasUpdatedAt _UpdatedAtHasID_IDTokengTypenow Beeminder runBeeminderusergoalallGoals createGoalpoints createPointcreatePointNotify createPointscreatePointsNotify updatePoint deletePoint$fMonadBaseControlIOBeeminder$fFunctorBeeminder$fApplicativeBeeminder$fMonadBeeminder$fMonadIOBeeminder$fMonadReaderBeeminder$fMonadThrowBeeminder$fMonadResourceBeeminder$fMonadBaseBeeminderencodeToTextBuilder$aeson-1.0.2.1-79dr62CFBLnEPvpa97PCMbData.Aeson.Types.InternalValue#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.Internal.BuilderBuilderstringfromScientific<> Data.AesonencodeDeletePointParameters/data-default-class-0.0.1-5LOJgDPZMXzKvCsArIuhRrData.Default.ClassDefaultUpdatePointParametersCreatePointsParametersCreatePointParameters PointRequestPointsParametersCreateGoalParametersGoalParameters upUsernamebaseGHC.BaseNothing upGoalsFilterupLevelOfDetail upPointCountJustghc-prim GHC.TypesTrue dppUsernamedppGoaldppID uppUsernameuppGoaluppID uppTimestampuppValue uppComment cpspUsernamecpspGoalcpspPointRequests cppUsernamecppGoalcppPointRequest prTimestampprValue prComment prRequestID ppUsernameppGoal cgpUsernamecgpGoalcgpTitlecgpType cgpTargetcgpValue cgpBehaviorcgpPanicAllGoalsParameters agpUsernameagpGoalsFilter gpUsernamegpGoal gpGetPointsContractFreePledgeStepdowncPledgecAtUserParametersIDidIDrenderSimpleQueryTexturlEncodedBodyTextbaseReq&maybeMetextShow lowerShowshowStringChoices stringChoicesparseBehaviorSettoDoubletoIntegerMaybetoTarget defaultPanictsvcArgscreatePointInternalcreatePointsInternal$fFiniteGoalType$fFiniteBehavior$fFiniteDirection$fFiniteAggregate$fFiniteTimeFrame$fFiniteBurner$fUniverseGoalType$fUniverseBehavior$fUniverseDirection$fUniverseAggregate$fUniverseTimeFrame$fUniverseBurner$fHasIDDeletePointParameters$fHasGoalDeletePointParameters"$fHasUsernameDeletePointParameters$fDefaultDeletePointParameters!$fHasCommentUpdatePointParameters$fHasValueUpdatePointParameters#$fHasTimestampUpdatePointParameters$fHasIDUpdatePointParameters$fHasGoalUpdatePointParameters"$fHasUsernameUpdatePointParameters$fDefaultUpdatePointParameters($fHasPointRequestsCreatePointsParameters$fHasGoalCreatePointsParameters#$fHasUsernameCreatePointsParameters$fDefaultCreatePointsParameters#$fHasRequestIDCreatePointParameters!$fHasCommentCreatePointParameters$fHasValueCreatePointParameters#$fHasTimestampCreatePointParameters&$fHasPointRequestCreatePointParameters$fHasGoalCreatePointParameters"$fHasUsernameCreatePointParameters$fDefaultCreatePointParameters$fToJSONPointRequest$fHasRequestIDPointRequest$fHasCommentPointRequest$fHasValuePointRequest$fHasTimestampPointRequest$fDefaultPointRequest$fHasGoalPointsParameters$fHasUsernamePointsParameters$fDefaultPointsParameters$fFromJSONPoint$fHasUpdatedAtPoint $fHasIDPoint$fHasRequestIDPoint$fHasCommentPoint$fHasValuePoint$fHasTimestampPoint$fHasPanicCreateGoalParameters!$fHasBehaviorCreateGoalParameters$fHasValueCreateGoalParameters$fHasTargetCreateGoalParameters$fHasTypeCreateGoalParameters$fHasTitleCreateGoalParameters$fHasGoalCreateGoalParameters!$fHasUsernameCreateGoalParameters$fDefaultCreateGoalParameters"$fHasGoalsFilterAllGoalsParameters$fHasUsernameAllGoalsParameters$fDefaultAllGoalsParameters$fHasGetPointsGoalParameters$fHasGoalGoalParameters$fHasUsernameGoalParameters$fDefaultGoalParameters$fDefaultGoalType$fFromJSONGoal$fFromJSONContract$fFromJSONTarget$fFromJSONDirection$fFromJSONAggregate$fFromJSONTimeFrame$fHasPointCountUserParameters $fHasLevelOfDetailUserParameters$fHasGoalsFilterUserParameters$fHasUsernameUserParameters$fDefaultUserParameters$fDefaultLevelOfGoalDetail$fFromJSONBurner$fFromJSONUser$fFromJSONUserGoals $fFromJSONID $fHasIDID$fHasUpdatedAtUser $fHasIDUser$fHasGoalsUser$fHasTimezoneUser $fHasNameUser $fDefaultText externalize+http-client-0.4.31.2-EuAkBKB775H42PO15ULPeuNetwork.HTTP.Client.TypesRequest unBeeminder Beeminder_BeeminderEnvironmenttokenmanager