From ce13a5e06911e7a7f966dbd66c3353365196f50c Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Mon, 18 Dec 2023 09:34:01 +0100 Subject: [PATCH 1/5] Add timezone parameter to functions, examples, formatting --- site/content/3.12/aql/functions/date.md | 695 ++++++++++++++++-------- 1 file changed, 473 insertions(+), 222 deletions(-) diff --git a/site/content/3.12/aql/functions/date.md b/site/content/3.12/aql/functions/date.md index 6415589d7..90d2e8989 100644 --- a/site/content/3.12/aql/functions/date.md +++ b/site/content/3.12/aql/functions/date.md @@ -60,7 +60,7 @@ All functions that require dates as arguments accept the following input values: Valid range: `"0000-01-01T00:00:00.000Z"` .. `"9999-12-31T23:59:59.999Z"` (inclusive) Any date/time values outside the valid range that are passed into an AQL date -function will make the function return `null` and trigger a warning for the query, +function makes the function return `null` and trigger a warning for the query, which can optionally be escalated to an error and abort the query. This also applies to operations which produce an invalid value. @@ -70,8 +70,8 @@ DATE_HOUR("1970-01-01T02:00:00") // 2 ``` You are free to store age determinations of specimens, incomplete or fuzzy dates and -the like in different, more appropriate ways of course. AQL's date functions will -most certainly not be of any help for such dates, but you can still use language +the like in different, more appropriate ways of course. AQL's date functions are +most certainly not of any help for such dates, but you can still use language constructs like [SORT](../high-level-operations/sort.md) (which also supports sorting of arrays) and [indexes](../../index-and-search/indexing/_index.md). @@ -93,7 +93,7 @@ to a variable to use the exact same timestamp multiple times. ## Conversion -*DATE_TIMESTAMP()* and *DATE_ISO8601()* can be used to convert ISO 8601 date time +`DATE_TIMESTAMP()` and `DATE_ISO8601()` can be used to convert ISO 8601 date time strings to numeric timestamps and numeric timestamps to ISO 8601 date time strings. Both also support individual date components as separate function arguments, @@ -107,12 +107,12 @@ in the following order: - second - millisecond -All components following *day* are optional and can be omitted. Note that no +All components following the *day* are optional and can be omitted. Note that no time offset can be specified when using separate date components, and UTC / -Zulu time will be used. +Zulu time is used. -The following calls to *DATE_TIMESTAMP()* are equivalent and will all return -*1399472349522*: +The following calls to `DATE_TIMESTAMP()` are equivalent and all return +`1399472349522`: ```aql DATE_TIMESTAMP("2014-05-07T14:19:09.522") @@ -123,7 +123,7 @@ DATE_TIMESTAMP(2014, 5, 7, 14, 19, 9, 522) DATE_TIMESTAMP(1399472349522) ``` -The same is true for calls to *DATE_ISO8601()* that also accepts variable input +The same is true for calls to `DATE_ISO8601()` that also accepts variable input formats: ```aql @@ -133,14 +133,14 @@ DATE_ISO8601(2014, 5, 7, 14, 19, 9, 522) DATE_ISO8601(1399472349522) ``` -The above functions are all equivalent and will return *"2014-05-07T14:19:09.522Z"*. +The above functions are all equivalent and return `"2014-05-07T14:19:09.522Z"`. ### DATE_ISO8601() `DATE_ISO8601(date) → dateString` -Return an ISO 8601 date time string from *date*. -The date time string will always use UTC / Zulu time, indicated by the *Z* at its end. +Return an ISO 8601 date time string from `date`. +The date time string always uses UTC / Zulu time, indicated by the `Z` at its end. - **date** (number\|string): numeric timestamp or ISO 8601 date time string - returns **dateString**: date and time expressed according to ISO 8601, in Zulu time @@ -149,10 +149,10 @@ The date time string will always use UTC / Zulu time, indicated by the *Z* at it `DATE_ISO8601(year, month, day, hour, minute, second, millisecond) → dateString` -Return a ISO 8601 date time string from *date*, but allows to specify the individual -date components separately. All parameters after *day* are optional. +Return a ISO 8601 date time string from `date`, but allows to specify the individual +date components separately. All parameters after `day` are optional. -- **year** (number): typically in the range 0..9999, e.g. *2017* +- **year** (number): typically in the range 0..9999, e.g. `2017` - **month** (number): 1..12 for January through December - **day** (number): 1..31 (upper bound depends on number of days in month) - **hour** (number, *optional*): 0..23 @@ -165,7 +165,7 @@ date components separately. All parameters after *day* are optional. `DATE_TIMESTAMP(date) → timestamp` -Create a timestamp value from *date*. The return value has millisecond precision. +Create a timestamp value from `date`. The return value has millisecond precision. To convert the return value to seconds, divide it by 1000. - **date** (number\|string): numeric timestamp or ISO 8601 date time string @@ -176,9 +176,9 @@ To convert the return value to seconds, divide it by 1000. `DATE_TIMESTAMP(year, month, day, hour, minute, second, millisecond) → timestamp` Create a timestamp value, but allows to specify the individual date components -separately. All parameters after *day* are optional. +separately. All parameters after `day` are optional. -- **year** (number): typically in the range 0..9999, e.g. *2017* +- **year** (number): typically in the range 0..9999, e.g. `2017` - **month** (number): 1..12 for January through December - **day** (number): 1..31 (upper bound depends on number of days in month) - **hour** (number, *optional*): 0..23 @@ -187,7 +187,7 @@ separately. All parameters after *day* are optional. - **milliseconds** (number, *optional*): 0..999 - returns **timestamp** (number): numeric timestamp -Negative values are not allowed, result in *null* and cause a warning. +Negative values are not allowed, result in `null` and cause a warning. Values greater than the upper range bound overflow to the larger components (e.g. an hour of 26 is automatically turned into an additional day and two hours): @@ -204,29 +204,34 @@ DATE_TIMESTAMP(1970, 1, 1, 26) // returns 93600000, which is January 2nd, 1970, Check if an arbitrary string is suitable for interpretation as date time string. - **value** (string): an arbitrary string -- returns **bool** (bool): *true* if *value* is a string that can be used - in a date function. This includes partial dates such as *2015* or *2015-10* and - strings containing invalid dates such as *2015-02-31*. The function will return - *false* for all non-string values, even if some of them may be usable in date +- returns **bool** (bool): `true` if `value` is a string that can be used + in a date function. This includes partial dates such as `2015` or `2015-10` and + strings containing invalid dates such as `2015-02-31`. The function returns + `false` for all non-string values, even if some of them may be usable in date functions. ## Processing ### DATE_DAYOFWEEK() -`DATE_DAYOFWEEK(date) → weekdayNumber` +`DATE_DAYOFWEEK(date, timezone) → weekdayNumber` -Return the weekday number of *date*. +Return the weekday number of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **weekdayNumber** (number): 0..6 as follows: - - 0 – Sunday - - 1 – Monday - - 2 – Tuesday - - 3 – Wednesday - - 4 – Thursday - - 5 – Friday - - 6 – Saturday + - `0` – Sunday + - `1` – Monday + - `2` – Tuesday + - `3` – Wednesday + - `4` – Thursday + - `5` – Friday + - `6` – Saturday **Examples** @@ -246,14 +251,27 @@ description: '' RETURN DATE_DAYOFWEEK(0) ``` +```aql +--- +name: datedyofwk3 +description: '' +--- +RETURN DATE_DAYOFWEEK("2023-03-25T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_YEAR() -`DATE_YEAR(date) → year` +`DATE_YEAR(date, timezone) → year` -Return the year of *date*. +Return the year of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **year** (number): the year part of *date* as a number +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **year** (number): the year part of `date` as a number **Examples** @@ -273,14 +291,27 @@ description: '' RETURN DATE_YEAR(0) ``` +```aql +--- +name: dateyr3 +description: '' +--- +RETURN DATE_YEAR("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_MONTH() -`DATE_MONTH(date) → month` +`DATE_MONTH(date, timezone) → month` -Return the month of *date*. +Return the month of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **month** (number): the month part of *date* as a number +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **month** (number): the month part of `date` as a number **Examples** @@ -300,14 +331,27 @@ description: '' RETURN DATE_MONTH(0) ``` +```aql +--- +name: datemn3 +description: '' +--- + RETURN DATE_MONTH("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_DAY() -`DATE_DAY(date) → day` +`DATE_DAY(date, timezone) → day` -Return the day of *date*. +Return the day of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **day** (number): the day part of *date* as a number +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **day** (number): the day part of `date` as a number **Examples** @@ -327,14 +371,27 @@ description: '' RETURN DATE_DAY(0) ``` +```aql +--- +name: datedy3 +description: '' +--- +RETURN DATE_DAY("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_HOUR() -Return the hour of *date*. +Return the hour of `date`. -`DATE_HOUR(date) → hour` +`DATE_HOUR(date, timezone) → hour` - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **hour** (number): the hour part of *date* as a number +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **hour** (number): the hour part of `date` as a number **Examples** @@ -346,14 +403,27 @@ description: '' RETURN DATE_HOUR("2020-08-29T16:30:05.123") ``` +```aql +--- +name: datehr2 +description: '' +--- +RETURN DATE_HOUR("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_MINUTE() -`DATE_MINUTE(date) → minute` +`DATE_MINUTE(date, timezone) → minute` -Return the minute of *date*. +Return the minute of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **minute** (number): the minute part of *date* as a number +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **minute** (number): the minute part of `date` as a number **Examples** @@ -365,14 +435,22 @@ description: '' RETURN DATE_MINUTE("2020-08-29T16:30:05.123") ``` +```aql +--- +name: datemin2 +description: '' +--- +RETURN DATE_MINUTE("2023-12-31T23:00:00.000Z", "Asia/Kathmandu") +``` + ### DATE_SECOND() `DATE_SECOND(date) → second` -Return the second of *date*. +Return the second of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **second** (number): the seconds part of *date* as a number +- returns **second** (number): the seconds part of `date` as a number **Examples** @@ -389,7 +467,7 @@ RETURN DATE_SECOND("2020-08-29T16:30:05.123") `DATE_MILLISECOND(date) → millisecond` - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **millisecond** (number): the milliseconds part of *date* as a number +- returns **millisecond** (number): the milliseconds part of `date` as a number **Examples** @@ -403,12 +481,17 @@ RETURN DATE_MILLISECOND("2020-08-29T16:30:05.123") ### DATE_DAYOFYEAR() -`DATE_DAYOFYEAR(date) → dayOfYear` +`DATE_DAYOFYEAR(date, timezone) → dayOfYear` -Return the day of year of *date*. +Return the day of year of `date`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **dayOfYear** (number): the day of year number of *date*. +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **dayOfYear** (number): the day of year number of `date`. The return values range from 1 to 365, or 366 in a leap year respectively. **Examples** @@ -421,14 +504,22 @@ description: '' RETURN DATE_DAYOFYEAR("2020-08-29") ``` +```aql +--- +name: datedyofyr2 +description: '' +--- +RETURN DATE_DAYOFYEAR("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_ISOWEEK() `DATE_ISOWEEK(date) → weekDate` -Return the week number in the year of *date* according to ISO 8601. +Return the week number in the year of `date` according to ISO 8601. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **weekDate** (number): the ISO week number of *date*. The return values +- returns **weekDate** (number): the ISO week number of `date`. The return values range from 1 to 53. Monday is considered the first day of the week. There are no fractional weeks, thus the last days in December may belong to the first week of the next year, and the first days in January may be part of the previous year's @@ -448,12 +539,12 @@ RETURN DATE_ISOWEEK("2020-08-29") `DATE_ISOWEEKYEAR(date) → weekAndYear` -Return the week number of *date* according to ISO 8601 and the year the +Return the week number of `date` according to ISO 8601 and the year the week belongs to. - **date** (number\|string): numeric timestamp or ISO 8601 date time string - returns **weekAndYear** (object): an object with two attributes - - **week** (number): the ISO week number of *date*. The values range from 1 to 53. + - **week** (number): the ISO week number of `date`. The values range from 1 to 53. Monday is considered the first day of the week. There are no fractional weeks, thus the last days in December may belong to the first week of the next year, and the first days in January may be part of the previous year's last week. @@ -483,12 +574,17 @@ RETURN DATE_ISOWEEKYEAR("2019-12-30") ### DATE_LEAPYEAR() -`DATE_LEAPYEAR(date) → leapYear` +`DATE_LEAPYEAR(date, timezone) → leapYear` -Return whether *date* is in a leap year. +Return whether `date` is in a leap year. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **leapYear** (bool): *true* if *date* is in a leap year, *false* otherwise +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **leapYear** (bool): `true` if `date` is in a leap year, `false` otherwise **Examples** @@ -508,18 +604,31 @@ description: '' RETURN DATE_LEAPYEAR("2021-01-01") ``` +```aql +--- +name: datelpyr3 +description: '' +--- +RETURN DATE_LEAPYEAR("2016-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_QUARTER() -`DATE_QUARTER(date) → quarter` +`DATE_QUARTER(date, timezone) → quarter` -Return which quarter *date* belongs to. +Return which quarter `date` belongs to. - **date** (number\|string): numeric timestamp or ISO 8601 date time string +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **quarter** (number): the quarter of the given date (1-based): - - 1 – January, February, March - - 2 – April, May, June - - 3 – July, August, September - - 4 – October, November, December + - `1` – January, February, March + - `2` – April, May, June + - `3` – July, August, September + - `4` – October, November, December **Examples** @@ -531,14 +640,27 @@ description: '' RETURN DATE_QUARTER("2020-08-29") ``` +```aql +--- +name: dateqtr2 +description: '' +--- +RETURN DATE_QUARTER("2023-12-31T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_DAYS_IN_MONTH() -Return the number of days in the month of *date*. +Return the number of days in the month of `date`. -`DATE_DAYS_IN_MONTH(date) → daysInMonth` +`DATE_DAYS_IN_MONTH(date, timezone) → daysInMonth` - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- returns **daysInMonth** (number): the number of days in *date*'s month (28..31) +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **daysInMonth** (number): the number of days in `date`'s month (28..31) **Examples** @@ -574,26 +696,43 @@ description: '' RETURN DATE_DAYS_IN_MONTH("2021-02-01") ``` +```aql +--- +name: datedysmn5 +description: '' +--- +RETURN DATE_DAYS_IN_MONTH("2023-11-30T23:00:00.000Z", "Europe/Berlin") +``` + ### DATE_TRUNC() -`DATE_TRUNC(date, unit) → isoDate` +`DATE_TRUNC(date, unit, timezone) → isoDate` -Truncates the given date after *unit* and returns the modified date. +Truncates the given date after `unit` and returns the modified date. - **date** (number\|string): numeric timestamp or ISO 8601 date time string - **unit** (string): either of the following to specify the time unit (case-insensitive): - - y, year, years - - m, month, months - - d, day, days - - h, hour, hours - - i, minute, minutes - - s, second, seconds - - f, millisecond, milliseconds + - `"y"`, `"year"`, `"years"` + - `"m"`, `"month"`, `"months"` + - `"d"`, `"day"`, `"days"` + - `"h"`, `"hour"`, `"hours"` + - `"i"`, `"minute"`, `"minutes"` + - `"s"`, `"second"`, `"seconds"` + - `"f"`, `"millisecond"`, `"milliseconds"` +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the truncated ISO 8601 date time string +**Examples** + ```aql DATE_TRUNC('2017-02-03', 'month') // 2017-02-01T00:00:00.000Z DATE_TRUNC('2017-02-03 04:05:06', 'hours') // 2017-02-03 04:00:00.000Z +DATE_TRUNC('2023-03-25 23:00:00', 'day') // 2023-03-25T00:00:00.000Z +DATE_TRUNC('2023-03-25 23:00:00', 'day', 'Europe/Berlin') // 2023-03-25T23:00:00.000Z ``` ```aql @@ -620,40 +759,49 @@ RETURN MERGE( ### DATE_ROUND() -`DATE_ROUND(date, amount, unit) → isoDate` +`DATE_ROUND(date, amount, unit, timezone) → isoDate` Bin a date/time into a set of equal-distance buckets, to be used for grouping. - **date** (string\|number): a date string or timestamp -- **amount** (number): number of *unit*s. Must be a positive integer value. +- **amount** (number): number of `unit`s. Must be a positive integer value. - **unit** (string): either of the following to specify the time unit (case-insensitive): - - d, day, days - - h, hour, hours - - i, minute, minutes - - s, second, seconds - - f, millisecond, milliseconds + - `"d"`, `"day"`, `"days"` + - `"h"`, `"hour"`, `"hours"` + - `"i"`, `"minute"`, `"minutes"` + - `"s"`, `"second"`, `"seconds"` + - `"f"`, `"millisecond"`, `"milliseconds"` +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the rounded ISO 8601 date time string +**Examples** + ```aql DATE_ROUND('2000-04-28T11:11:11.111Z', 1, 'day') // 2000-04-28T00:00:00.000Z DATE_ROUND('2000-04-10T11:39:29Z', 15, 'minutes') // 2000-04-10T11:30:00.000Z +DATE_ROUND('2023-03-25T23:55:55.555Z', 1, 'day') // 2023-03-25T00:00:00.000Z +DATE_ROUND('2023-03-25T23:55:55.555Z', 1, 'day', "Europe/Berlin") // 2023-03-25T23:00:00.000Z ``` ```aql --- name: dateRoundAggregate description: '' -bindVars: +bindVars: { - "sensorData": [ - { "timestamp": "2019-12-04T21:17:52.583Z", "temp": 20.6 }, - { "timestamp": "2019-12-04T21:19:53.516Z", "temp": 20.2 }, - { "timestamp": "2019-12-04T21:21:53.610Z", "temp": 19.9 }, - { "timestamp": "2019-12-04T21:23:52.522Z", "temp": 19.8 }, - { "timestamp": "2019-12-04T21:25:52.988Z", "temp": 19.8 }, - { "timestamp": "2019-12-04T21:27:54.005Z", "temp": 19.7 } - ] + "sensorData": [ + { "timestamp": "2019-12-04T21:17:52.583Z", "temp": 20.6 }, + { "timestamp": "2019-12-04T21:19:53.516Z", "temp": 20.2 }, + { "timestamp": "2019-12-04T21:21:53.610Z", "temp": 19.9 }, + { "timestamp": "2019-12-04T21:23:52.522Z", "temp": 19.8 }, + { "timestamp": "2019-12-04T21:25:52.988Z", "temp": 19.8 }, + { "timestamp": "2019-12-04T21:27:54.005Z", "temp": 19.7 } + ] } --- FOR doc IN @sensorData @@ -669,67 +817,72 @@ FOR doc IN @sensorData ### DATE_FORMAT() -`DATE_FORMAT(date, format) → str` +`DATE_FORMAT(date, format, timezone) → str` Format a date according to the given format string. - **date** (string\|number): a date string or timestamp - **format** (string): a format string, see below +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **str** (string): a formatted date string -*format* supports the following placeholders (case-insensitive): - -- %t – timestamp, in milliseconds since midnight 1970-01-01 -- %z – ISO date (0000-00-00T00:00:00.000Z) -- %w – day of week (0..6) -- %y – year (0..9999) -- %yy – year (00..99), abbreviated (last two digits) -- %yyyy – year (0000..9999), padded to length of 4 -- %yyyyyy – year (-009999 .. +009999), with sign prefix and padded to length of 6 -- %m – month (1..12) -- %mm – month (01..12), padded to length of 2 -- %d – day (1..31) -- %dd – day (01..31), padded to length of 2 -- %h – hour (0..23) -- %hh – hour (00..23), padded to length of 2 -- %i – minute (0..59) -- %ii – minute (00..59), padded to length of 2 -- %s – second (0..59) -- %ss – second (00..59), padded to length of 2 -- %f – millisecond (0..999) -- %fff – millisecond (000..999), padded to length of 3 -- %x – day of year (1..366) -- %xxx – day of year (001..366), padded to length of 3 -- %k – ISO week number of year (1..53) -- %kk – ISO week number of year (01..53), padded to length of 2 -- %l – leap year (0 or 1) -- %q – quarter (1..4) -- %a – days in month (28..31) -- %mmm – abbreviated English name of month (Jan..Dec) -- %mmmm – English name of month (January..December) -- %www – abbreviated English name of weekday (Sun..Sat) -- %wwww – English name of weekday (Sunday..Saturday) -- %& – special escape sequence for rare occasions -- %% – literal % -- % – ignored +The `format` parameter supports the following placeholders (case-insensitive): + +- `%t` – timestamp, in milliseconds since midnight 1970-01-01 +- `%z` – ISO date (0000-00-00T00:00:00.000Z) +- `%w` – day of week (0..6) +- `%y` – year (0..9999) +- `%yy` – year (00..99), abbreviated (last two digits) +- `%yyyy` – year (0000..9999), padded to length of 4 +- `%yyyyyy` – year (-009999 .. +009999), with sign prefix and padded to length of 6 +- `%m` – month (1..12) +- `%mm` – month (01..12), padded to length of 2 +- `%d` – day (1..31) +- `%dd` – day (01..31), padded to length of 2 +- `%h` – hour (0..23) +- `%hh` – hour (00..23), padded to length of 2 +- `%i` – minute (0..59) +- `%ii` – minute (00..59), padded to length of 2 +- `%s` – second (0..59) +- `%ss` – second (00..59), padded to length of 2 +- `%f` – millisecond (0..999) +- `%fff` – millisecond (000..999), padded to length of 3 +- `%x` – day of year (1..366) +- `%xxx` – day of year (001..366), padded to length of 3 +- `%k` – ISO week number of year (1..53) +- `%kk` – ISO week number of year (01..53), padded to length of 2 +- `%l` – leap year (0 or 1) +- `%q` – quarter (1..4) +- `%a` – days in month (28..31) +- `%mmm` – abbreviated English name of month (Jan..Dec) +- `%mmmm` – English name of month (January..December) +- `%www` – abbreviated English name of weekday (Sun..Sat) +- `%wwww` – English name of weekday (Sunday..Saturday) +- `%&` – special escape sequence for rare occasions +- `%%` – literal % +- `%` – ignored `%yyyy` does not enforce a length of 4 for years before 0 and past 9999. -The same format as for `%yyyyyy` will be used instead. `%yy` preserves the +The same format as for `%yyyyyy` is used instead. `%yy` preserves the sign for negative years and may thus return 3 characters in total. -Single `%` characters will be ignored. Use `%%` for a literal `%`. To resolve -ambiguities like in `%mmonth` (unpadded month number + the string "month") -between `%mm` + "onth" and `%m` + "month", use the escape sequence `%&`: +Single `%` characters are ignored. Use `%%` for a literal `%`. To resolve +ambiguities like in `%mmonth` (unpadded month number + the string `month`) +between `%mm` + `onth` and `%m` + `month`, use the escape sequence `%&`: `%m%&month`. -Note that *DATE_FORMAT()* is a rather costly operation and may not be suitable for large +Note that `DATE_FORMAT()` is a rather costly operation and may not be suitable for large datasets (like over 1 million dates). If possible, avoid formatting dates on server-side and leave it up to the client to do so. This function should only be used for special date comparisons or to store the formatted dates in the database. For better performance, use the primitive `DATE_*()` functions together with `CONCAT()` if possible. -Examples: +**Examples** ```aql DATE_FORMAT(DATE_NOW(), "%q/%yyyy") // quarter and year (e.g. "3/2015") @@ -739,28 +892,98 @@ DATE_FORMAT("2016", "%%l = %l") // "%l = 1" (2016 is a leap year) DATE_FORMAT("2016-03-01", "%xxx%") // "063", trailing % ignored ``` +```aql +--- +name: dateFormat +description: '' +bindVars: + { + "formats": [ + { "date": "2023-03-25T23:00:00.000Z", "placeholder": "%w", "equalTo": "DATE_DAYOFWEEK" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%yyyy", "equalTo": "DATE_YEAR" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%m", "equalTo": "DATE_MONTH" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%d", "equalTo": "DATE_DAY" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%h", "equalTo": "DATE_HOUR" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%i", "equalTo": "DATE_MINUTE" }, + { "date": "2023-12-31T23:00:23.000Z", "placeholder": "%s", "equalTo": "DATE_SECOND" }, + { "date": "2023-12-31T23:00:00.031Z", "placeholder": "%f", "equalTo": "DATE_MILLISECOND" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%x", "equalTo": "DATE_DAYOFYEAR" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%k", "equalTo": "DATE_ISOWEEK" }, + { "date": "2016-12-31T23:00:00.000Z", "placeholder": "%l", "equalTo": "DATE_LEAPYEAR" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%q", "equalTo": "DATE_QUARTER" }, + { "date": "2023-11-30T23:00:00.000Z", "placeholder": "%a", "equalTo": "DATE_DAYS_IN_MONTH" }, + { "date": "2023-11-30T23:00:00.000Z", "placeholder": "%t", "equalTo": "DATE_TIMESTAMP" } + ] + } +--- +FOR format IN @formats + RETURN CONCAT( + format.equalTo, + "('", + format.date, + "') = ", + DATE_FORMAT(format.date, format.placeholder) + ) +``` + +```aql +--- +name: dateFormatTimezoned +description: '' +bindVars: + { + "formats": [ + { "date": "2023-03-25T23:00:00.000Z", "placeholder": "%w", "equalTo": "DATE_DAYOFWEEK", "timezone": "Europe/Berlin"}, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%yyyy", "equalTo": "DATE_YEAR", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%m", "equalTo": "DATE_MONTH", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%d", "equalTo": "DATE_DAY", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%h", "equalTo": "DATE_HOUR", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%i", "equalTo": "DATE_MINUTE", "timezone": "Asia/Kathmandu" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%x", "equalTo": "DATE_DAYOFYEAR", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%k", "equalTo": "DATE_ISOWEEK", "timezone": "Europe/Berlin" }, + { "date": "2016-12-31T23:00:00.000Z", "placeholder": "%l", "equalTo": "DATE_LEAPYEAR", "timezone": "Europe/Berlin" }, + { "date": "2023-12-31T23:00:00.000Z", "placeholder": "%q", "equalTo": "DATE_QUARTER", "timezone": "Europe/Berlin" }, + { "date": "2023-11-30T23:00:00.000Z", "placeholder": "%a", "equalTo": "DATE_DAYS_IN_MONTH", "timezone": "Europe/Berlin" } + ] + } +--- +FOR format IN @formats + RETURN CONCAT( + format.equalTo, + "('", + format.date, + "') = ", + DATE_FORMAT(format.date, format.placeholder, format.timezone) + ) +``` + ## Comparison and calculation ### DATE_ADD() -`DATE_ADD(date, amount, unit) → isoDate` +`DATE_ADD(date, amount, unit, timezone) → isoDate` -Add *amount* given in *unit* to *date* and return the calculated date. +Add `amount` given in `unit` to `date` and return the calculated date. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- **amount** (number\|string): number of *unit*s to add (positive value) or +- **amount** (number\|string): number of `unit`s to add (positive value) or subtract (negative value). It is recommended to use positive values only, and use [DATE_SUBTRACT()](#date_subtract) for subtractions instead. - **unit** (string): either of the following to specify the time unit to add or subtract (case-insensitive): - - y, year, years - - m, month, months - - w, week, weeks - - d, day, days - - h, hour, hours - - i, minute, minutes - - s, second, seconds - - f, millisecond, milliseconds + - `"y"`, `"year"`, `"years"` + - `"m"`, `"month"`, `"months"` + - `"w"`, `"week"`, `"weeks"` + - `"d"`, `"day"`, `"days"` + - `"h"`, `"hour"`, `"hours"` + - `"i"`, `"minute"`, `"minutes"` + - `"s"`, `"second"`, `"seconds"` + - `"f"`, `"millisecond"`, `"milliseconds"` +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the calculated ISO 8601 date time string ```aql @@ -774,24 +997,29 @@ DATE_ADD(DATE_ADD("2016-02", "month", 1), -1, "day") // last day of February (29 --- -`DATE_ADD(date, isoDuration) → isoDate` +`DATE_ADD(date, isoDuration, timezone) → isoDate` -You may also pass an ISO duration string as *amount* and leave out *unit*. +You may also pass an ISO duration string as `amount` and leave out `unit`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- **isoDuration** (string): an ISO 8601 duration string to add to *date*, see below +- **isoDuration** (string): an ISO 8601 duration string to add to `date`, see below +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the calculated ISO 8601 date time string The format is `P_Y_M_W_DT_H_M_._S`, where underscores stand for digits and letters for time intervals - except for the separators `P` (period) and `T` (time). The meaning of the other letters are: -- Y – years -- M – months (if before T) -- W – weeks -- D – days -- H – hours -- M – minutes (if after T) -- S – seconds (optionally with 3 decimal places for milliseconds) +- `Y` – years +- `M` – months (if before T) +- `W` – weeks +- `D` – days +- `H` – hours +- `M` – minutes (if after T) +- `S` – seconds (optionally with 3 decimal places for milliseconds) The string must be prefixed by a `P`. A separating `T` is only required if `H`, `M` and/or `S` are specified. You only need to specify the needed pairs @@ -808,52 +1036,62 @@ DATE_ADD("2000-01-01", "P1Y2M3W4DT5H6M7.89S") // add a bit of everything ### DATE_SUBTRACT() -`DATE_SUBTRACT(date, amount, unit) → isoDate` +`DATE_SUBTRACT(date, amount, unit, timezone) → isoDate` -Subtract *amount* given in *unit* from *date* and return the calculated date. +Subtract `amount` given in `unit` from `date` and return the calculated date. It works the same as [DATE_ADD()](#date_add), except that it subtracts. It is -equivalent to calling *DATE_ADD()* with a negative amount, except that -*DATE_SUBTRACT()* can also subtract ISO durations. Note that negative ISO +equivalent to calling `DATE_ADD()` with a negative amount, except that +`DATE_SUBTRACT()` can also subtract ISO durations. Note that negative ISO durations are not supported (i.e. starting with `-P`, like `-P1Y`). - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- **amount** (number\|string): number of *unit*s to subtract (positive value) or +- **amount** (number\|string): number of `unit`s to subtract (positive value) or add (negative value). It is recommended to use positive values only, and use [DATE_ADD()](#date_add) for additions instead. - **unit** (string): either of the following to specify the time unit to add or subtract (case-insensitive): - - y, year, years - - m, month, months - - w, week, weeks - - d, day, days - - h, hour, hours - - i, minute, minutes - - s, second, seconds - - f, millisecond, milliseconds + - `"y"`, `"year"`, `"years"` + - `"m"`, `"month"`, `"months"` + - `"w"`, `"week"`, `"weeks"` + - `"d"`, `"day"`, `"days"` + - `"h"`, `"hour"`, `"hours"` + - `"i"`, `"minute"`, `"minutes"` + - `"s"`, `"second"`, `"seconds"` + - `"f"`, `"millisecond"`, `"milliseconds"` +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the calculated ISO 8601 date time string --- -`DATE_SUBTRACT(date, isoDuration) → isoDate` +`DATE_SUBTRACT(date, isoDuration, timezone) → isoDate` -You may also pass an ISO duration string as *amount* and leave out *unit*. +You may also pass an ISO duration string as `amount` and leave out `unit`. - **date** (number\|string): numeric timestamp or ISO 8601 date time string -- **isoDuration** (string): an ISO 8601 duration string to subtract from *date*, +- **isoDuration** (string): an ISO 8601 duration string to subtract from `date`, see below +- **timezone** (string, *optional*): if set, the `date` is assumed to be in the + specified timezone, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **isoDate** (string): the calculated ISO 8601 date time string The format is `P_Y_M_W_DT_H_M_._S`, where underscores stand for digits and letters for time intervals - except for the separators `P` (period) and `T` (time). The meaning of the other letters are: -- Y – years -- M – months (if before T) -- W – weeks -- D – days -- H – hours -- M – minutes (if after T) -- S – seconds (optionally with 3 decimal places for milliseconds) +- `Y` – years +- `M` – months (if before T) +- `W` – weeks +- `D` – days +- `H` – hours +- `M` – minutes (if after T) +- `S` – seconds (optionally with 3 decimal places for milliseconds) The string must be prefixed by a `P`. A separating `T` is only required if `H`, `M` and/or `S` are specified. You only need to specify the needed pairs @@ -869,27 +1107,40 @@ DATE_SUBTRACT(DATE_NOW(), "PT1H3M") // 1 hour and 30 minutes ago ### DATE_DIFF() -`DATE_DIFF(date1, date2, unit, asFloat) → diff` +`DATE_DIFF(date1, date2, unit, asFloat, timezone1, timezone2) → diff` -Calculate the difference between two dates in given time *unit*, optionally +Calculate the difference between two dates in given time `unit`, optionally with decimal places. - **date1** (number\|string): numeric timestamp or ISO 8601 date time string - **date2** (number\|string): numeric timestamp or ISO 8601 date time string - **unit** (string): either of the following to specify the time unit to return the difference in (case-insensitive): - - y, year, years - - m, month, months - - w, week, weeks - - d, day, days - - h, hour, hours - - i, minute, minutes - - s, second, seconds - - f, millisecond, milliseconds -- **asFloat** (boolean, *optional*): if set to *true*, decimal places will be - preserved in the result. The default is *false* and an integer is returned. -- returns **diff** (number): the calculated difference as number in *unit*. - The value will be negative if *date2* is before *date1*. + - `"y"`, `"year"`, `"years"` + - `"m"`, `"month"`, `"months"` + - `"w"`, `"week"`, `"weeks"` + - `"d"`, `"day"`, `"days"` + - `"h"`, `"hour"`, `"hours"` + - `"i"`, `"minute"`, `"minutes"` + - `"s"`, `"second"`, `"seconds"` + - `"f"`, `"millisecond"`, `"milliseconds"` +- **asFloat** (boolean, *optional*): if set to `true`, decimal places are + preserved in the result. The default is `false` and an integer is returned. +- **timezone1** (string, *optional*): if set, `date1` is assumed to be in the + specified timezone. If `timezone2` is not set, then both `date1` and `date2` + are assumed to be in the timezone specified by `timezone1`, + e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- **timezone2** (string, *optional*): if set, `date2` is assumed to be in the + timezone specified by `timezone2`, and `date1` is assumed to be in the timezone + specified by `timezone1`, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- returns **diff** (number): the calculated difference as number in `unit`. + The value is negative if `date2` is before `date1`. ### DATE_COMPARE() @@ -901,29 +1152,29 @@ Check if two partial dates match. - **date2** (number\|string): numeric timestamp or ISO 8601 date time string - **unitRangeStart** (string): unit to start from, see below - **unitRangeEnd** (string, *optional*): unit to end with, leave out to only - compare the component as specified by *unitRangeStart*. An error is raised if - *unitRangeEnd* is a unit before *unitRangeStart*. -- returns **bool** (bool): *true* if the dates match, *false* otherwise + compare the component as specified by `unitRangeStart`. An error is raised if + `unitRangeEnd` is a unit before `unitRangeStart`. +- returns **bool** (bool): `true` if the dates match, `false` otherwise The parts to compare are defined by a range of time units. The full range is: years, months, days, hours, minutes, seconds, milliseconds (in this order). -All components of *date1* and *date2* as specified by the range will be compared. +All components of `date1` and `date2` as specified by the range are compared. You can refer to the units as: -- y, year, years -- m, month, months -- d, day, days -- h, hour, hours -- i, minute, minutes -- s, second, seconds -- f, millisecond, milliseconds +- `"y"`, `"year"`, `"years"` +- `"m"`, `"month"`, `"months"` +- `"d"`, `"day"`, `"days"` +- `"h"`, `"hour"`, `"hours"` +- `"i"`, `"minute"`, `"minutes"` +- `"s"`, `"second"`, `"seconds"` +- `"f"`, `"millisecond"`, `"milliseconds"` ```aql // Compare months and days, true on birthdays if you're born on 4th of April DATE_COMPARE("1985-04-04", DATE_NOW(), "months", "days") -// Will only match on one day if the current year is a leap year! +// Only matches on one day if the current year is a leap year! // You may want to add or subtract one day from date1 to match every year. DATE_COMPARE("1984-02-29", DATE_NOW(), "months", "days") @@ -933,8 +1184,8 @@ DATE_COMPARE("2001-01-01T15:30:45.678Z", "2001-01-01T08:08:08.008Z", "years", "d You can directly compare ISO date **strings** if you want to find dates before or after a certain date, or in between two dates (`>=`, `>`, `<`, `<=`). -No special date function is required. Equality tests (`==` and `!=`) will only -match the exact same date and time however. You may use `SUBSTRING()` to +No special date function is required. Equality tests (`==` and `!=`) only +match the exact same date and time, however. You may use `SUBSTRING()` to compare partial date strings, `DATE_COMPARE()` is basically a convenience function for that. However, neither is really required to limit a search to a certain day as demonstrated here: @@ -950,7 +1201,7 @@ comparison (e.g. `2015-05-15T11:30:00.000Z`). Dates before `2015-05-15` are smal and therefore filtered out by the first condition. Every date past `2015-05-15` is greater than this date in a string comparison, and therefore filtered out by the second condition. The result is that the time components in the dates you compare -with are "ignored". The query will return every document with *date* ranging from +with are "ignored". The query returns every document with `date` ranging from `2015-05-15T00:00:00.000Z` to `2015-05-15T23:99:99.999Z`. It would also include `2015-05-15T24:00:00.000Z`, but that date is actually `2015-05-16T00:00:00.000Z` and can only occur if inserted manually (you may want to pass dates through @@ -982,7 +1233,7 @@ FOR user IN users Introduced in: v3.8.0 -Converts *date* assumed in Zulu time (UTC) to local *timezone*. +Converts `date` assumed in Zulu time (UTC) to local `timezone`. It takes historic daylight saving times into account. @@ -993,9 +1244,9 @@ It takes historic daylight saving times into account. [IANA timezone name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. `"America/New_York"`, `"Europe/Berlin"` or `"UTC"`. Use `"America/Los_Angeles"` for Pacific time (PST/PDT). - Will throw an error if the timezone is not known to ArangoDB -- **zoneinfo** (boolean, *optional*): if set to *true*, an object with timezone - information is returned. The default is *false* and a date string is returned + Throws an error if the timezone is not known to ArangoDB. +- **zoneinfo** (boolean, *optional*): if set to `true`, an object with timezone + information is returned. The default is `false` and a date string is returned - returns **date** (string\|object): an ISO 8601 date time string in unqualified local time, or an object with the following attributes: - **local** (string): ISO 8601 date time string in unqualified local time @@ -1004,8 +1255,8 @@ It takes historic daylight saving times into account. - **name** (string): timezone abbreviation (GMT, PST, CET, ...) - **begin** (string\|null): begin of the timezone effect as UTC date time string - **end** (string\|null): end of the timezone effect as UTC date time string - - **dst** (boolean): *true* when daylight saving time (DST) is active, - *false* otherwise + - **dst** (boolean): `true` when daylight saving time (DST) is active, + `false` otherwise - **offset** (number): offset to UTC in seconds ```aql @@ -1045,7 +1296,7 @@ RETURN DATE_UTCTOLOCAL(DATE_NOW(), "Africa/Lagos", true) Introduced in: v3.8.0 -Converts *date* assumed in local *timezone* to Zulu time (UTC). +Converts `date` assumed in local `timezone` to Zulu time (UTC). It takes historic daylight saving times into account. @@ -1056,9 +1307,9 @@ It takes historic daylight saving times into account. [IANA timezone name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. `"America/New_York"`, `"Europe/Berlin"` or `"UTC"`. Use `"America/Los_Angeles"` for Pacific time (PST/PDT). - Will throw an error if the timezone is not known to ArangoDB -- **zoneinfo** (boolean, *optional*): if set to *true*, an object with timezone - information is returned. The default is *false* and a date string is returned + Throws an error if the timezone is not known to ArangoDB. +- **zoneinfo** (boolean, *optional*): if set to `true`, an object with timezone + information is returned. The default is `false` and a date string is returned - returns **date** (string\|object): an ISO 8601 date time string in Zulu time (UTC), or an object with the following attributes: - **utc** (string): ISO 8601 date time string in Zulu time (UTC) @@ -1067,8 +1318,8 @@ It takes historic daylight saving times into account. - **name** (string): timezone abbreviation (GMT, PST, CET, ...) - **begin** (string\|null): begin of the timezone effect as UTC date time string - **end** (string\|null): end of the timezone effect as UTC date time string - - **dst** (boolean): *true* when daylight saving time (DST) is active, - *false* otherwise + - **dst** (boolean): `true` when daylight saving time (DST) is active, + `false` otherwise - **offset** (number): offset to UTC in seconds ```aql @@ -1110,7 +1361,7 @@ RETURN DATE_LOCALTOUTC("2021-03-16T12:00:00.000", "Africa/Lagos", true) Returns system timezone ArangoDB is running on. -For cloud servers this will most likely be "Etc/UTC". +For cloud servers, this is most likely `"Etc/UTC"`. `DATE_TIMEZONE() → timezone` From 48eed67dc2c4fb49b003fe09aa749d21adead88a Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Thu, 11 Jan 2024 07:10:27 +0100 Subject: [PATCH 2/5] Add examples and descriptions --- site/content/3.12/aql/functions/date.md | 301 +++++++++++++++++++----- 1 file changed, 247 insertions(+), 54 deletions(-) diff --git a/site/content/3.12/aql/functions/date.md b/site/content/3.12/aql/functions/date.md index 90d2e8989..ab2ae8123 100644 --- a/site/content/3.12/aql/functions/date.md +++ b/site/content/3.12/aql/functions/date.md @@ -238,7 +238,8 @@ Return the weekday number of `date`. ```aql --- name: datedyofwk1 -description: '' +description: | + The 29th of August in 2020 was a Saturday: --- RETURN DATE_DAYOFWEEK("2020-08-29") ``` @@ -246,7 +247,8 @@ RETURN DATE_DAYOFWEEK("2020-08-29") ```aql --- name: datedyofwk2 -description: '' +description: | + The Unix epoch began on the 1st of January 1970, which was a Thursday: --- RETURN DATE_DAYOFWEEK(0) ``` @@ -254,7 +256,8 @@ RETURN DATE_DAYOFWEEK(0) ```aql --- name: datedyofwk3 -description: '' +description: | + At 11 PM UTC, it is already the next day in Germany (UTC+1 or UTC+2): --- RETURN DATE_DAYOFWEEK("2023-03-25T23:00:00.000Z", "Europe/Berlin") ``` @@ -278,7 +281,8 @@ Return the year of `date`. ```aql --- name: dateyr1 -description: '' +description: | + Extract the year from a date time string: --- RETURN DATE_YEAR("2020-08-29") ``` @@ -286,7 +290,8 @@ RETURN DATE_YEAR("2020-08-29") ```aql --- name: dateyr2 -description: '' +description: | + Extract the year from a Unix timestamp: --- RETURN DATE_YEAR(0) ``` @@ -294,7 +299,9 @@ RETURN DATE_YEAR(0) ```aql --- name: dateyr3 -description: '' +description: | + Extract the year from a date time string, with a point in time one hour before + New Year's Day in UTC, which is already New Year in Germany: --- RETURN DATE_YEAR("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -318,7 +325,8 @@ Return the month of `date`. ```aql --- name: datemn1 -description: '' +description: | + Extract the month from a date time string: --- RETURN DATE_MONTH("2020-08-29") ``` @@ -326,7 +334,8 @@ RETURN DATE_MONTH("2020-08-29") ```aql --- name: datemn2 -description: '' +description: | + Extract the month from a Unix timestamp: --- RETURN DATE_MONTH(0) ``` @@ -334,7 +343,9 @@ RETURN DATE_MONTH(0) ```aql --- name: datemn3 -description: '' +description: | + Extract the month from a date time string, with a point in time one hour before + the next month in UTC, which is already the next month in Germany: --- RETURN DATE_MONTH("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -358,7 +369,8 @@ Return the day of `date`. ```aql --- name: datedy1 -description: '' +description: | + Extract the day from a date time string: --- RETURN DATE_DAY("2020-08-29") ``` @@ -366,7 +378,8 @@ RETURN DATE_DAY("2020-08-29") ```aql --- name: datedy2 -description: '' +description: | + Extract the day from a Unix timestamp: --- RETURN DATE_DAY(0) ``` @@ -374,7 +387,9 @@ RETURN DATE_DAY(0) ```aql --- name: datedy3 -description: '' +description: | + Extract the day from a date time string, with a point in time one hour before + the next day in UTC, which is already the next day in Germany: --- RETURN DATE_DAY("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -398,7 +413,8 @@ Return the hour of `date`. ```aql --- name: datehr1 -description: '' +description: | + Extract the hour of a date time string: --- RETURN DATE_HOUR("2020-08-29T16:30:05.123") ``` @@ -406,7 +422,18 @@ RETURN DATE_HOUR("2020-08-29T16:30:05.123") ```aql --- name: datehr2 -description: '' +description: | + Extract the hour of a Unix timestamp: +--- +RETURN DATE_HOUR(14400000) +``` + +```aql +--- +name: datehr3 +description: | + Extract the hour of a date time string, using Germany's timezone that is one + hour ahead compared to UTC in this case: --- RETURN DATE_HOUR("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -430,7 +457,8 @@ Return the minute of `date`. ```aql --- name: datemin1 -description: '' +description: | + Extract the minute of a date time string: --- RETURN DATE_MINUTE("2020-08-29T16:30:05.123") ``` @@ -438,7 +466,18 @@ RETURN DATE_MINUTE("2020-08-29T16:30:05.123") ```aql --- name: datemin2 -description: '' +description: | + Extract the minute of a Unix timestamp: +--- +RETURN DATE_MINUTE(2520000) +``` + +```aql +--- +name: datemin3 +description: | + Extract the minute of a date time string, using Nepal's timezone that is + 5 hours and 45 minutes ahead of UTC: --- RETURN DATE_MINUTE("2023-12-31T23:00:00.000Z", "Asia/Kathmandu") ``` @@ -457,11 +496,21 @@ Return the second of `date`. ```aql --- name: datesec1 -description: '' +description: | + Extract the second of a date time string: --- RETURN DATE_SECOND("2020-08-29T16:30:05.123") ``` +```aql +--- +name: datesec2 +description: | + Extract the second of a Unix timestamp: +--- +RETURN DATE_SECOND(1234567890) +``` + ### DATE_MILLISECOND() `DATE_MILLISECOND(date) → millisecond` @@ -479,6 +528,15 @@ description: '' RETURN DATE_MILLISECOND("2020-08-29T16:30:05.123") ``` +```aql +--- +name: datesec2 +description: | + Extract the millisecond of a Unix timestamp: +--- +RETURN DATE_MILLISECOND(1234567890) +``` + ### DATE_DAYOFYEAR() `DATE_DAYOFYEAR(date, timezone) → dayOfYear` @@ -499,7 +557,8 @@ Return the day of year of `date`. ```aql --- name: datedyofyr1 -description: '' +description: | + Extract the day of year from a date time string: --- RETURN DATE_DAYOFYEAR("2020-08-29") ``` @@ -507,7 +566,18 @@ RETURN DATE_DAYOFYEAR("2020-08-29") ```aql --- name: datedyofyr2 -description: '' +description: | + Extract the day of year from a Unix timestamp: +--- +RETURN DATE_DAYOFYEAR(86400000) +``` + +```aql +--- +name: datedyofyr3 +description: | + Determine the day of year from a date time string, with a point in time one + hour before the next day in UTC, which is already the next day in Germany: --- RETURN DATE_DAYOFYEAR("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -530,11 +600,21 @@ Return the week number in the year of `date` according to ISO 8601. ```aql --- name: dateisofwk1 -description: '' +description: | + Determine the week number from a date time string: --- RETURN DATE_ISOWEEK("2020-08-29") ``` +```aql +--- +name: dateisofwk2 +description: | + Determine the week number from a Unix timestamp: +--- +RETURN DATE_ISOWEEK(1234567890) +``` + ### DATE_ISOWEEKYEAR() `DATE_ISOWEEKYEAR(date) → weekAndYear` @@ -552,22 +632,20 @@ week belongs to. **Examples** -January 1st of 2023 is part of the previous year's last week: - ```aql --- name: aqlDateIsoWeekYear1 -description: '' +description: | + January 1st of 2023 is part of the previous year's last week: --- RETURN DATE_ISOWEEKYEAR("2023-01-01") ``` -The last two days of 2019 are part of the next year's first week: - ```aql --- name: aqlDateIsoWeekYear2 -description: '' +description: | + The last two days of 2019 are part of the next year's first week: --- RETURN DATE_ISOWEEKYEAR("2019-12-30") ``` @@ -591,7 +669,8 @@ Return whether `date` is in a leap year. ```aql --- name: datelpyr1 -description: '' +description: | + 2020 was a leap year: --- RETURN DATE_LEAPYEAR("2020-01-01") ``` @@ -599,7 +678,8 @@ RETURN DATE_LEAPYEAR("2020-01-01") ```aql --- name: datelpyr2 -description: '' +description: | + 2021 was not a leap year: --- RETURN DATE_LEAPYEAR("2021-01-01") ``` @@ -607,7 +687,9 @@ RETURN DATE_LEAPYEAR("2021-01-01") ```aql --- name: datelpyr3 -description: '' +description: | + 2016 was a leap year but the point in time is one hour before the next year in + UTC, which is already 2017 in Germany, and that was not a leap year: --- RETURN DATE_LEAPYEAR("2016-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -635,7 +717,8 @@ Return which quarter `date` belongs to. ```aql --- name: dateqtr1 -description: '' +description: | + Determine the quarter of a date time string: --- RETURN DATE_QUARTER("2020-08-29") ``` @@ -643,7 +726,9 @@ RETURN DATE_QUARTER("2020-08-29") ```aql --- name: dateqtr2 -description: '' +description: | + Determine the quarter of a date time string, with a point in time one hour + before the next quarter in UTC, which is already the next quarter in Germany: --- RETURN DATE_QUARTER("2023-12-31T23:00:00.000Z", "Europe/Berlin") ``` @@ -667,7 +752,8 @@ Return the number of days in the month of `date`. ```aql --- name: datedysmn1 -description: '' +description: | + Determine the number of days in August using a date time string: --- RETURN DATE_DAYS_IN_MONTH("2020-08-01") ``` @@ -675,7 +761,8 @@ RETURN DATE_DAYS_IN_MONTH("2020-08-01") ```aql --- name: datedysmn2 -description: '' +description: | + Determine the number of days in September using a date time string: --- RETURN DATE_DAYS_IN_MONTH("2020-09-01") ``` @@ -683,7 +770,8 @@ RETURN DATE_DAYS_IN_MONTH("2020-09-01") ```aql --- name: datedysmn3 -description: '' +description: | + Determine the number of days in February in a leap year using a date time string: --- RETURN DATE_DAYS_IN_MONTH("2020-02-01") ``` @@ -691,7 +779,8 @@ RETURN DATE_DAYS_IN_MONTH("2020-02-01") ```aql --- name: datedysmn4 -description: '' +description: | + Determine the number of days in February in a a non-leap year using a date time string: --- RETURN DATE_DAYS_IN_MONTH("2021-02-01") ``` @@ -699,7 +788,19 @@ RETURN DATE_DAYS_IN_MONTH("2021-02-01") ```aql --- name: datedysmn5 -description: '' +description: | + Determine the number of days in the month using a Unix timestamp: +--- +RETURN DATE_DAYS_IN_MONTH(3045600000) +``` + +```aql +--- +name: datedysmn6 +description: | + Determine the number of days in the month using a date time string, with a + point in time one hour before the end of November in UTC, which is already + December in Germany: --- RETURN DATE_DAYS_IN_MONTH("2023-11-30T23:00:00.000Z", "Europe/Berlin") ``` @@ -738,16 +839,18 @@ DATE_TRUNC('2023-03-25 23:00:00', 'day', 'Europe/Berlin') // 2023-03-25T23:00:00 ```aql --- name: dateTruncGroup -description: '' +description: | + Truncate date time strings comprised of a year, month, and day to the year and + group another attribute by it: bindVars: { - "data": [ - { "date": "2018-03-05", "value": "Spring" }, - { "date": "2018-07-11", "value": "Summer" }, - { "date": "2018-10-26", "value": "Autumn" }, - { "date": "2019-01-09", "value": "Winter" }, - { "date": "2019-04-02", "value": "Spring" } - ] + "data": [ + { "date": "2018-03-05", "value": "Spring" }, + { "date": "2018-07-11", "value": "Summer" }, + { "date": "2018-10-26", "value": "Autumn" }, + { "date": "2019-01-09", "value": "Winter" }, + { "date": "2019-04-02", "value": "Spring" } + ] } --- RETURN MERGE( @@ -791,7 +894,10 @@ DATE_ROUND('2023-03-25T23:55:55.555Z', 1, 'day', "Europe/Berlin") // 2023-03-25T ```aql --- name: dateRoundAggregate -description: '' +description: | + Round full date time strings to 5 minutes and aggregate temperature readings + by these time buckets: + bindVars: { "sensorData": [ @@ -895,7 +1001,8 @@ DATE_FORMAT("2016-03-01", "%xxx%") // "063", trailing % ignored ```aql --- name: dateFormat -description: '' +description: | + Show example calls of the formatting function and their results: bindVars: { "formats": [ @@ -929,7 +1036,9 @@ FOR format IN @formats ```aql --- name: dateFormatTimezoned -description: '' +description: | + Show example calls of the formatting function and their results, using the + timezone of Germany (and Nepal in one case): bindVars: { "formats": [ @@ -995,6 +1104,19 @@ DATE_ADD(DATE_TIMESTAMP(DATE_YEAR(DATE_NOW()), 12, 24), -4, "years") // Christma DATE_ADD(DATE_ADD("2016-02", "month", 1), -1, "day") // last day of February (29th, because 2016 is a leap year!) ``` +```aql +--- +name: dateadd1 +description: | + UTC does not have daylight saving time but Germany does, only adding 23 hours + when adding a day: +--- +RETURN { + UTC: DATE_ADD("2023-03-25T23:00:00.000Z", 1, "day"), + Germany: DATE_ADD("2023-03-25T23:00:00.000Z", 1, "day", "Europe/Berlin") +} +``` + --- `DATE_ADD(date, isoDuration, timezone) → isoDate` @@ -1142,9 +1264,42 @@ with decimal places. - returns **diff** (number): the calculated difference as number in `unit`. The value is negative if `date2` is before `date1`. +```aql +--- +name: datediff1 +description: | + Determine how many days it is from New Year's Eve until April Fools' day: +--- +RETURN DATE_DIFF("2023-12-01", "2024-04-01", "days") +``` + +```aql +--- +name: datediff2 +description: | + Determine how many hours (with decimal places) Nepal and the USA are apart + using the same date time string: +--- +LET date = "2024-01-01T00:00:00.000Z" +RETURN DATE_DIFF(date, date, "hours", true, "Asia/Kathmandu", "America/Los_Angeles") +``` + +```aql +--- +name: datediff3 +description: | + Determine the hour difference between two date time strings, where Germany has + one hour more due to the switch from winter to summer time: +--- +RETURN { + UTC: DATE_DIFF("2023-03-25T23:00:00.000Z", "2023-03-26T23:00:00.000Z", "hours"), + Germany: DATE_DIFF("2023-03-25T23:00:00.000Z", "2023-03-26T23:00:00.000Z", "hours", "Europe/Berlin") +} +``` + ### DATE_COMPARE() -`DATE_COMPARE(date1, date2, unitRangeStart, unitRangeEnd) → bool` +`DATE_COMPARE(date1, date2, unitRangeStart, unitRangeEnd, timezone1, timezone2) → bool` Check if two partial dates match. @@ -1154,6 +1309,19 @@ Check if two partial dates match. - **unitRangeEnd** (string, *optional*): unit to end with, leave out to only compare the component as specified by `unitRangeStart`. An error is raised if `unitRangeEnd` is a unit before `unitRangeStart`. +- **timezone1** (string, *optional*): if set, `date1` is assumed to be in the + specified timezone. If `timezone2` is not set, then both `date1` and `date2` + are assumed to be in the timezone specified by `timezone1`, + e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. +- **timezone2** (string, *optional*): if set, `date2` is assumed to be in the + timezone specified by `timezone2`, and `date1` is assumed to be in the timezone + specified by `timezone1`, e.g. `"America/New_York"`, `"Europe/Berlin"`, or `"UTC"`. + Use `"America/Los_Angeles"` for Pacific time (PST/PDT). See + [IANA timezone names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + Throws an error if the timezone is not known to ArangoDB. - returns **bool** (bool): `true` if the dates match, `false` otherwise The parts to compare are defined by a range of time units. The full range is: @@ -1170,6 +1338,8 @@ You can refer to the units as: - `"s"`, `"second"`, `"seconds"` - `"f"`, `"millisecond"`, `"milliseconds"` +**Examples** + ```aql // Compare months and days, true on birthdays if you're born on 4th of April DATE_COMPARE("1985-04-04", DATE_NOW(), "months", "days") @@ -1229,6 +1399,21 @@ FOR user IN users RETURN user ``` +```aql +--- +name: datecmp1 +description: | + Compare the time of two date time strings that is different in UTC but the + same in two different local timezones: +--- +RETURN { + Germany: DATE_UTCTOLOCAL("2023-04-01T09:00:00.000Z", "Europe/Berlin"), + USA: DATE_UTCTOLOCAL("2024-04-01T18:00:00.000Z", "America/Los_Angeles"), + sameTimeUTC: DATE_COMPARE("2023-04-01T09:00:00.000Z", "2024-04-01T18:00:00.000Z", "hour", "minute"), + sameTimeLocal: DATE_COMPARE("2023-04-01T09:00:00.000Z", "2024-04-01T18:00:00.000Z", "hour", "minute", "Europe/Berlin", "America/Los_Angeles") +} +``` + ### DATE_UTCTOLOCAL() Introduced in: v3.8.0 @@ -1262,7 +1447,8 @@ It takes historic daylight saving times into account. ```aql --- name: aqlDateTimeToLocal_1 -description: '' +description: | + Convert a date time string to different local timezones: --- RETURN [ DATE_UTCTOLOCAL("2020-03-15T00:00:00.000", "Europe/Berlin"), @@ -1274,7 +1460,9 @@ RETURN [ ```aql --- name: aqlDateTimeToLocal_2 -description: '' +description: | + Convert date time strings with and without UTC indicator (`Z`), with a timezone + offset, and a Unix timestamp to local time: --- RETURN [ DATE_UTCTOLOCAL("2020-03-15T00:00:00.000", "Asia/Shanghai"), @@ -1287,7 +1475,8 @@ RETURN [ ```aql --- name: aqlDateTimeToLocal_3 -description: '' +description: | + Convert to local time and include timezone information: --- RETURN DATE_UTCTOLOCAL(DATE_NOW(), "Africa/Lagos", true) ``` @@ -1325,7 +1514,8 @@ It takes historic daylight saving times into account. ```aql --- name: aqlDateTimeToUTC_1 -description: '' +description: | + Convert a date time string from different local timezones to UTC: --- RETURN [ DATE_LOCALTOUTC("2020-03-15T00:00:00.000", "Europe/Berlin"), @@ -1337,7 +1527,9 @@ RETURN [ ```aql --- name: aqlDateTimeToUTC_2 -description: '' +description: | + Convert date time strings with and without UTC indicator (`Z`), with a timezone + offset, and a Unix timestamp to UTC time: --- RETURN [ DATE_LOCALTOUTC("2020-03-15T00:00:00.000", "Asia/Shanghai"), @@ -1350,7 +1542,8 @@ RETURN [ ```aql --- name: aqlDateTimeToUTC_3 -description: '' +description: | + Convert to UTC time and include timezone information: --- RETURN DATE_LOCALTOUTC("2021-03-16T12:00:00.000", "Africa/Lagos", true) ``` From 8f30308d0deed0922b754f350791d40438fbc179 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Thu, 11 Jan 2024 07:10:36 +0100 Subject: [PATCH 3/5] Release notes --- .../version-3.12/whats-new-in-3-12.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md index 9258bbae1..54b75f3a6 100644 --- a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md @@ -174,6 +174,39 @@ UPDATE { logins: OLD.logins + 1 } IN users Read more about [`UPSERT` operations](../../aql/high-level-operations/upsert.md) in AQL. +### Timezone parameter for date functions + +The following AQL date functions now accept an optional timezone argument to +perform date and time calculations in certain timezones: + +- `DATE_DAYOFWEEK(date, timezone)` +- `DATE_YEAR(date, timezone)` +- `DATE_MONTH(date, timezone)` +- `DATE_DAY(date, timezone)` +- `DATE_HOUR(date, timezone)` +- `DATE_MINUTE(date, timezone)` +- `DATE_DAYOFYEAR(date, timezone)` +- `DATE_ISOWEEK(date, timezone)` +- `DATE_ISOWEEKYEAR(date, timezone)` +- `DATE_LEAPYEAR(date, timezone)` +- `DATE_QUARTER(date, timezone)` +- `DATE_DAYS_IN_MONTH(date, timezone)` +- `DATE_TRUNC(date, unit, timezone)` +- `DATE_ROUND(date, amount, unit, timezone)` +- `DATE_FORMAT(date, format, timezone)` +- `DATE_ADD(date, amount, unit, timezone)` +- `DATE_SUBTRACT(date, amount, unit, timezone)` + +The following two functions accept up to two timezone arguments. If you only +specify the first, then both input dates are assumed to be in this one timezone. +If you specify two timezones, then the first date is assumed to be in the first +timezone, and the second date in the second timezone: + +- `DATE_DIFF(date1, date2, unit, asFloat, timezone1, timezone2)` (`asFloat` can be left out) +- `DATE_COMPARE(date1, date2, unitRangeStart, unitRangeEnd, timezone1, timezone2)` + +See [Date functions in AQL](../../aql/functions/date.md#date_dayofweek) + ## Indexing ### Stored values can contain the `_id` attribute From 00a07da66cc43cf431ba14862690caab42b28e53 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 12 Jan 2024 10:30:27 +0100 Subject: [PATCH 4/5] Fix example name --- site/content/3.12/aql/functions/date.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/3.12/aql/functions/date.md b/site/content/3.12/aql/functions/date.md index ab2ae8123..bf856a071 100644 --- a/site/content/3.12/aql/functions/date.md +++ b/site/content/3.12/aql/functions/date.md @@ -530,7 +530,7 @@ RETURN DATE_MILLISECOND("2020-08-29T16:30:05.123") ```aql --- -name: datesec2 +name: datemilsec2 description: | Extract the millisecond of a Unix timestamp: --- From c1ac894917b9bb887a04eb3e6852f67d1d64ba46 Mon Sep 17 00:00:00 2001 From: CircleCI Job Date: Fri, 12 Jan 2024 09:35:37 +0000 Subject: [PATCH 5/5] [skip ci] Automatic commit of generated files from CircleCI --- site/data/3.12/cache.json | 216 +++++++++++++++++++++++++++----------- 1 file changed, 156 insertions(+), 60 deletions(-) diff --git a/site/data/3.12/cache.json b/site/data/3.12/cache.json index 66b963773..2524b9221 100644 --- a/site/data/3.12/cache.json +++ b/site/data/3.12/cache.json @@ -2112,36 +2112,36 @@ "response": "eyJpbnB1dCI6IkZPUiBhIElOIEBhY3Rpdml0aWVzXG5DT0xMRUNUXG4gIGRheSA9IERBVEVfVFJVTkMoREFURV9VVENUT0xPQ0FMKGEuc3RhcnREYXRlLCAnRXVyb3BlL0JlcmxpbicpLCAnZGF5JylcbkFHR1JFR0FURVxuICBob3VycyA9IFNVTShhLmR1cmF0aW9uKSxcbiAgcmV2ZW51ZSA9IFNVTShhLmR1cmF0aW9uICogYS5yYXRlKVxuU09SVCBkYXkgQVNDXG5SRVRVUk4ge1xuICBkYXksXG4gIGhvdXJzLFxuICByZXZlbnVlXG59Iiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDMsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICB7IFxuICAgIFwiZGF5XCIgOiBcIjIwMjAtMDItMDFUMDA6MDA6MDAuMDAwWlwiLCBcbiAgICBcImhvdXJzXCIgOiAxMiwgXG4gICAgXCJyZXZlbnVlXCIgOiAzMDAwIFxuICB9LCBcbiAgeyBcbiAgICBcImRheVwiIDogXCIyMDIwLTAzLTMxVDAwOjAwOjAwLjAwMFpcIiwgXG4gICAgXCJob3Vyc1wiIDogMSwgXG4gICAgXCJyZXZlbnVlXCIgOiAyNTAgXG4gIH0sIFxuICB7IFxuICAgIFwiZGF5XCIgOiBcIjIwMjAtMDQtMDFUMDA6MDA6MDAuMDAwWlwiLCBcbiAgICBcImhvdXJzXCIgOiA4LCBcbiAgICBcInJldmVudWVcIiA6IDIwMDAgXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImFxbERhdGVHcm91cGluZ0xvY2FsVGltZV8xIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCIsImJpbmRWYXJzIjp7ImFjdGl2aXRpZXMiOlt7ImR1cmF0aW9uIjo0LCJlbmREYXRlIjoiMjAyMC0wMi0wMVQwMzowMDowMFoiLCJyYXRlIjoyNTAsInN0YXJ0RGF0ZSI6IjIwMjAtMDEtMzFUMjM6MDA6MDBaIn0seyJkdXJhdGlvbiI6OCwiZW5kRGF0ZSI6IjIwMjAtMDItMDFUMTc6MDA6MDBaIiwicmF0ZSI6MjUwLCJzdGFydERhdGUiOiIyMDIwLTAyLTAxVDA5OjAwOjAwWiJ9LHsiZHVyYXRpb24iOjEsImVuZERhdGUiOiIyMDIwLTAzLTMxVDIyOjAwOjAwWiIsInJhdGUiOjI1MCwic3RhcnREYXRlIjoiMjAyMC0wMy0zMVQyMTowMDowMFoifSx7ImR1cmF0aW9uIjo1LCJlbmREYXRlIjoiMjAyMC0wNC0wMVQwMzowMDowMFoiLCJyYXRlIjoyNTAsInN0YXJ0RGF0ZSI6IjIwMjAtMDMtMzFUMjI6MDA6MDBaIn0seyJkdXJhdGlvbiI6MywiZW5kRGF0ZSI6IjIwMjAtMDQtMDFUMTY6MDA6MDBaIiwicmF0ZSI6MjUwLCJzdGFydERhdGUiOiIyMDIwLTA0LTAxVDEzOjAwOjAwWiJ9XX19fQo=" }, "aqlDateIsoWeekYear1_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVJc29XZWVrWWVhcjEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9JU09XRUVLWUVBUigiMjAyMy0wMS0wMSIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUtZRUFSKFwiMjAyMy0wMS0wMVwiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgeyBcbiAgICBcIndlZWtcIiA6IDUyLCBcbiAgICBcInllYXJcIiA6IDIwMjIgXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImFxbERhdGVJc29XZWVrWWVhcjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGFxbERhdGVJc29XZWVrWWVhcjEKZGVzY3JpcHRpb246IHwKICBKYW51YXJ5IDFzdCBvZiAyMDIzIGlzIHBhcnQgb2YgdGhlIHByZXZpb3VzIHllYXIncyBsYXN0IHdlZWs6Ci0tLQpSRVRVUk4gREFURV9JU09XRUVLWUVBUigiMjAyMy0wMS0wMSIp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUtZRUFSKFwiMjAyMy0wMS0wMVwiKSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJ3ZWVrXCIgOiA1MiwgXG4gICAgXCJ5ZWFyXCIgOiAyMDIyIFxuICB9IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkphbnVhcnkgMXN0IG9mIDIwMjMgaXMgcGFydCBvZiB0aGUgcHJldmlvdXMgeWVhcidzIGxhc3Qgd2VlazpcbiIsIm5hbWUiOiJhcWxEYXRlSXNvV2Vla1llYXIxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "aqlDateIsoWeekYear2_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVJc29XZWVrWWVhcjIKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9JU09XRUVLWUVBUigiMjAxOS0xMi0zMCIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUtZRUFSKFwiMjAxOS0xMi0zMFwiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgeyBcbiAgICBcIndlZWtcIiA6IDEsIFxuICAgIFwieWVhclwiIDogMjAyMCBcbiAgfSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiYXFsRGF0ZUlzb1dlZWtZZWFyMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGFxbERhdGVJc29XZWVrWWVhcjIKZGVzY3JpcHRpb246IHwKICBUaGUgbGFzdCB0d28gZGF5cyBvZiAyMDE5IGFyZSBwYXJ0IG9mIHRoZSBuZXh0IHllYXIncyBmaXJzdCB3ZWVrOgotLS0KUkVUVVJOIERBVEVfSVNPV0VFS1lFQVIoIjIwMTktMTItMzAiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUtZRUFSKFwiMjAxOS0xMi0zMFwiKSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJ3ZWVrXCIgOiAxLCBcbiAgICBcInllYXJcIiA6IDIwMjAgXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhc3QgdHdvIGRheXMgb2YgMjAxOSBhcmUgcGFydCBvZiB0aGUgbmV4dCB5ZWFyJ3MgZmlyc3Qgd2VlazpcbiIsIm5hbWUiOiJhcWxEYXRlSXNvV2Vla1llYXIyIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "aqlDateTimeToLocal_1_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8xCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIFsKICBEQVRFX1VUQ1RPTE9DQUwoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwIiwgIkV1cm9wZS9CZXJsaW4iKSwKICBEQVRFX1VUQ1RPTE9DQUwoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwIiwgIkFtZXJpY2EvTmV3X1lvcmsiKSwKICBEQVRFX1VUQ1RPTE9DQUwoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwIiwgIlVUQyIpCl0=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfVVRDVE9MT0NBTChcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiRXVyb3BlL0JlcmxpblwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBcIiwgXCJBbWVyaWNhL05ld19Zb3JrXCIpLFxuICBEQVRFX1VUQ1RPTE9DQUwoXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFwiLCBcIlVUQ1wiKVxuXSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgWyBcbiAgICBcIjIwMjAtMDMtMTVUMDE6MDA6MDAuMDAwXCIsIFxuICAgIFwiMjAyMC0wMy0xNFQyMDowMDowMC4wMDBcIiwgXG4gICAgXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFpcIiBcbiAgXSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiYXFsRGF0ZVRpbWVUb0xvY2FsXzEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8xCmRlc2NyaXB0aW9uOiB8CiAgQ29udmVydCBhIGRhdGUgdGltZSBzdHJpbmcgdG8gZGlmZmVyZW50IGxvY2FsIHRpbWV6b25lczoKLS0tClJFVFVSTiBbCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJFdXJvcGUvQmVybGluIiksCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJBbWVyaWNhL05ld19Zb3JrIiksCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJVVEMiKQpd", + "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfVVRDVE9MT0NBTChcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiRXVyb3BlL0JlcmxpblwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBcIiwgXCJBbWVyaWNhL05ld19Zb3JrXCIpLFxuICBEQVRFX1VUQ1RPTE9DQUwoXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFwiLCBcIlVUQ1wiKVxuXSIsIm91dHB1dCI6IlsgXG4gIFsgXG4gICAgXCIyMDIwLTAzLTE1VDAxOjAwOjAwLjAwMFwiLCBcbiAgICBcIjIwMjAtMDMtMTRUMjA6MDA6MDAuMDAwXCIsIFxuICAgIFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaXCIgXG4gIF0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29udmVydCBhIGRhdGUgdGltZSBzdHJpbmcgdG8gZGlmZmVyZW50IGxvY2FsIHRpbWV6b25lczpcbiIsIm5hbWUiOiJhcWxEYXRlVGltZVRvTG9jYWxfMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "aqlDateTimeToLocal_2_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8yCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIFsKICBEQVRFX1VUQ1RPTE9DQUwoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwIiwgIkFzaWEvU2hhbmdoYWkiKSwKICBEQVRFX1VUQ1RPTE9DQUwoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwWiIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMC0wMjowMCIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9VVENUT0xPQ0FMKDE1ODQyMzA0MDAwMDAsICJBc2lhL1NoYW5naGFpIikKXQ==", - "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfVVRDVE9MT0NBTChcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDBcIiwgXCJBc2lhL1NoYW5naGFpXCIpLFxuICBEQVRFX1VUQ1RPTE9DQUwoMTU4NDIzMDQwMDAwMCwgXCJBc2lhL1NoYW5naGFpXCIpXG5dIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICBbIFxuICAgIFwiMjAyMC0wMy0xNVQwODowMDowMC4wMDBcIiwgXG4gICAgXCIyMDIwLTAzLTE1VDA4OjAwOjAwLjAwMFwiLCBcbiAgICBcIjIwMjAtMDMtMTVUMTA6MDA6MDAuMDAwXCIsIFxuICAgIFwiMjAyMC0wMy0xNVQwODowMDowMC4wMDBcIiBcbiAgXSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiYXFsRGF0ZVRpbWVUb0xvY2FsXzIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8yCmRlc2NyaXB0aW9uOiB8CiAgQ29udmVydCBkYXRlIHRpbWUgc3RyaW5ncyB3aXRoIGFuZCB3aXRob3V0IFVUQyBpbmRpY2F0b3IgKGBaYCksIHdpdGggYSB0aW1lem9uZQogIG9mZnNldCwgYW5kIGEgVW5peCB0aW1lc3RhbXAgdG8gbG9jYWwgdGltZToKLS0tClJFVFVSTiBbCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9VVENUT0xPQ0FMKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFoiLCAiQXNpYS9TaGFuZ2hhaSIpLAogIERBVEVfVVRDVE9MT0NBTCgiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDAiLCAiQXNpYS9TaGFuZ2hhaSIpLAogIERBVEVfVVRDVE9MT0NBTCgxNTg0MjMwNDAwMDAwLCAiQXNpYS9TaGFuZ2hhaSIpCl0=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfVVRDVE9MT0NBTChcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9VVENUT0xPQ0FMKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDBcIiwgXCJBc2lhL1NoYW5naGFpXCIpLFxuICBEQVRFX1VUQ1RPTE9DQUwoMTU4NDIzMDQwMDAwMCwgXCJBc2lhL1NoYW5naGFpXCIpXG5dIiwib3V0cHV0IjoiWyBcbiAgWyBcbiAgICBcIjIwMjAtMDMtMTVUMDg6MDA6MDAuMDAwXCIsIFxuICAgIFwiMjAyMC0wMy0xNVQwODowMDowMC4wMDBcIiwgXG4gICAgXCIyMDIwLTAzLTE1VDEwOjAwOjAwLjAwMFwiLCBcbiAgICBcIjIwMjAtMDMtMTVUMDg6MDA6MDAuMDAwXCIgXG4gIF0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29udmVydCBkYXRlIHRpbWUgc3RyaW5ncyB3aXRoIGFuZCB3aXRob3V0IFVUQyBpbmRpY2F0b3IgKGBaYCksIHdpdGggYSB0aW1lem9uZVxub2Zmc2V0LCBhbmQgYSBVbml4IHRpbWVzdGFtcCB0byBsb2NhbCB0aW1lOlxuIiwibmFtZSI6ImFxbERhdGVUaW1lVG9Mb2NhbF8yIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "aqlDateTimeToLocal_3_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8zCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfVVRDVE9MT0NBTChEQVRFX05PVygpLCAiQWZyaWNhL0xhZ29zIiwgdHJ1ZSk=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1VUQ1RPTE9DQUwoREFURV9OT1coKSwgXCJBZnJpY2EvTGFnb3NcIiwgdHJ1ZSkiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIHsgXG4gICAgXCJsb2NhbFwiIDogXCIyMDIzLTA5LTE5VDE2OjM5OjM0LjE5NlwiLCBcbiAgICBcInR6ZGJcIiA6IFwiMjAyM2FcIiwgXG4gICAgXCJ6b25lSW5mb1wiIDogeyBcbiAgICAgIFwibmFtZVwiIDogXCJXQVRcIiwgXG4gICAgICBcImJlZ2luXCIgOiBcIjE5MTktMDgtMzFUMjM6MzA6MDAuMDAwWlwiLCBcbiAgICAgIFwiZW5kXCIgOiBudWxsLCBcbiAgICAgIFwiZHN0XCIgOiBmYWxzZSwgXG4gICAgICBcIm9mZnNldFwiIDogMzYwMCBcbiAgICB9IFxuICB9IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJhcWxEYXRlVGltZVRvTG9jYWxfMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9Mb2NhbF8zCmRlc2NyaXB0aW9uOiB8CiAgQ29udmVydCB0byBsb2NhbCB0aW1lIGFuZCBpbmNsdWRlIHRpbWV6b25lIGluZm9ybWF0aW9uOgotLS0KUkVUVVJOIERBVEVfVVRDVE9MT0NBTChEQVRFX05PVygpLCAiQWZyaWNhL0xhZ29zIiwgdHJ1ZSk=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1VUQ1RPTE9DQUwoREFURV9OT1coKSwgXCJBZnJpY2EvTGFnb3NcIiwgdHJ1ZSkiLCJvdXRwdXQiOiJbIFxuICB7IFxuICAgIFwibG9jYWxcIiA6IFwiMjAyNC0wMS0xMlQxMDozNDoyOS4zNDRcIiwgXG4gICAgXCJ0emRiXCIgOiBcIjIwMjNhXCIsIFxuICAgIFwiem9uZUluZm9cIiA6IHsgXG4gICAgICBcIm5hbWVcIiA6IFwiV0FUXCIsIFxuICAgICAgXCJiZWdpblwiIDogXCIxOTE5LTA4LTMxVDIzOjMwOjAwLjAwMFpcIiwgXG4gICAgICBcImVuZFwiIDogbnVsbCwgXG4gICAgICBcImRzdFwiIDogZmFsc2UsIFxuICAgICAgXCJvZmZzZXRcIiA6IDM2MDAgXG4gICAgfSBcbiAgfSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb252ZXJ0IHRvIGxvY2FsIHRpbWUgYW5kIGluY2x1ZGUgdGltZXpvbmUgaW5mb3JtYXRpb246XG4iLCJuYW1lIjoiYXFsRGF0ZVRpbWVUb0xvY2FsXzMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "aqlDateTimeToUTC_1_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMQpkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBbCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJFdXJvcGUvQmVybGluIiksCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJBbWVyaWNhL05ld19Zb3JrIiksCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJVVEMiKQpd", - "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfTE9DQUxUT1VUQyhcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiRXVyb3BlL0JlcmxpblwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBcIiwgXCJBbWVyaWNhL05ld19Zb3JrXCIpLFxuICBEQVRFX0xPQ0FMVE9VVEMoXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFwiLCBcIlVUQ1wiKVxuXSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgWyBcbiAgICBcIjIwMjAtMDMtMTRUMjM6MDA6MDAuMDAwWlwiLCBcbiAgICBcIjIwMjAtMDMtMTVUMDQ6MDA6MDAuMDAwWlwiLCBcbiAgICBcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwWlwiIFxuICBdIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJhcWxEYXRlVGltZVRvVVRDXzEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMQpkZXNjcmlwdGlvbjogfAogIENvbnZlcnQgYSBkYXRlIHRpbWUgc3RyaW5nIGZyb20gZGlmZmVyZW50IGxvY2FsIHRpbWV6b25lcyB0byBVVEM6Ci0tLQpSRVRVUk4gWwogIERBVEVfTE9DQUxUT1VUQygiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAiLCAiRXVyb3BlL0JlcmxpbiIpLAogIERBVEVfTE9DQUxUT1VUQygiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAiLCAiQW1lcmljYS9OZXdfWW9yayIpLAogIERBVEVfTE9DQUxUT1VUQygiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAiLCAiVVRDIikKXQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfTE9DQUxUT1VUQyhcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiRXVyb3BlL0JlcmxpblwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBcIiwgXCJBbWVyaWNhL05ld19Zb3JrXCIpLFxuICBEQVRFX0xPQ0FMVE9VVEMoXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFwiLCBcIlVUQ1wiKVxuXSIsIm91dHB1dCI6IlsgXG4gIFsgXG4gICAgXCIyMDIwLTAzLTE0VDIzOjAwOjAwLjAwMFpcIiwgXG4gICAgXCIyMDIwLTAzLTE1VDA0OjAwOjAwLjAwMFpcIiwgXG4gICAgXCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFpcIiBcbiAgXSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb252ZXJ0IGEgZGF0ZSB0aW1lIHN0cmluZyBmcm9tIGRpZmZlcmVudCBsb2NhbCB0aW1lem9uZXMgdG8gVVRDOlxuIiwibmFtZSI6ImFxbERhdGVUaW1lVG9VVENfMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "aqlDateTimeToUTC_2_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMgpkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBbCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMCIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMFoiLCAiQXNpYS9TaGFuZ2hhaSIpLAogIERBVEVfTE9DQUxUT1VUQygiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDAiLCAiQXNpYS9TaGFuZ2hhaSIpLAogIERBVEVfTE9DQUxUT1VUQygxNTg0MjMwNDAwMDAwLCAiQXNpYS9TaGFuZ2hhaSIpCl0=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfTE9DQUxUT1VUQyhcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDBcIiwgXCJBc2lhL1NoYW5naGFpXCIpLFxuICBEQVRFX0xPQ0FMVE9VVEMoMTU4NDIzMDQwMDAwMCwgXCJBc2lhL1NoYW5naGFpXCIpXG5dIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICBbIFxuICAgIFwiMjAyMC0wMy0xNFQxNjowMDowMC4wMDBaXCIsIFxuICAgIFwiMjAyMC0wMy0xNFQxNjowMDowMC4wMDBaXCIsIFxuICAgIFwiMjAyMC0wMy0xNFQxODowMDowMC4wMDBaXCIsIFxuICAgIFwiMjAyMC0wMy0xNFQxNjowMDowMC4wMDBaXCIgXG4gIF0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImFxbERhdGVUaW1lVG9VVENfMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMgpkZXNjcmlwdGlvbjogfAogIENvbnZlcnQgZGF0ZSB0aW1lIHN0cmluZ3Mgd2l0aCBhbmQgd2l0aG91dCBVVEMgaW5kaWNhdG9yIChgWmApLCB3aXRoIGEgdGltZXpvbmUKICBvZmZzZXQsIGFuZCBhIFVuaXggdGltZXN0YW1wIHRvIFVUQyB0aW1lOgotLS0KUkVUVVJOIFsKICBEQVRFX0xPQ0FMVE9VVEMoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwIiwgIkFzaWEvU2hhbmdoYWkiKSwKICBEQVRFX0xPQ0FMVE9VVEMoIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwWiIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9MT0NBTFRPVVRDKCIyMDIwLTAzLTE1VDAwOjAwOjAwLjAwMC0wMjowMCIsICJBc2lhL1NoYW5naGFpIiksCiAgREFURV9MT0NBTFRPVVRDKDE1ODQyMzA0MDAwMDAsICJBc2lhL1NoYW5naGFpIikKXQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBbXG4gIERBVEVfTE9DQUxUT1VUQyhcIjIwMjAtMDMtMTVUMDA6MDA6MDAuMDAwXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaXCIsIFwiQXNpYS9TaGFuZ2hhaVwiKSxcbiAgREFURV9MT0NBTFRPVVRDKFwiMjAyMC0wMy0xNVQwMDowMDowMC4wMDAtMDI6MDBcIiwgXCJBc2lhL1NoYW5naGFpXCIpLFxuICBEQVRFX0xPQ0FMVE9VVEMoMTU4NDIzMDQwMDAwMCwgXCJBc2lhL1NoYW5naGFpXCIpXG5dIiwib3V0cHV0IjoiWyBcbiAgWyBcbiAgICBcIjIwMjAtMDMtMTRUMTY6MDA6MDAuMDAwWlwiLCBcbiAgICBcIjIwMjAtMDMtMTRUMTY6MDA6MDAuMDAwWlwiLCBcbiAgICBcIjIwMjAtMDMtMTRUMTg6MDA6MDAuMDAwWlwiLCBcbiAgICBcIjIwMjAtMDMtMTRUMTY6MDA6MDAuMDAwWlwiIFxuICBdIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbnZlcnQgZGF0ZSB0aW1lIHN0cmluZ3Mgd2l0aCBhbmQgd2l0aG91dCBVVEMgaW5kaWNhdG9yIChgWmApLCB3aXRoIGEgdGltZXpvbmVcbm9mZnNldCwgYW5kIGEgVW5peCB0aW1lc3RhbXAgdG8gVVRDIHRpbWU6XG4iLCJuYW1lIjoiYXFsRGF0ZVRpbWVUb1VUQ18yIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "aqlDateTimeToUTC_3_single": { - "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMwpkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBEQVRFX0xPQ0FMVE9VVEMoIjIwMjEtMDMtMTZUMTI6MDA6MDAuMDAwIiwgIkFmcmljYS9MYWdvcyIsIHRydWUp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xPQ0FMVE9VVEMoXCIyMDIxLTAzLTE2VDEyOjAwOjAwLjAwMFwiLCBcIkFmcmljYS9MYWdvc1wiLCB0cnVlKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgeyBcbiAgICBcInV0Y1wiIDogXCIyMDIxLTAzLTE2VDExOjAwOjAwLjAwMFpcIiwgXG4gICAgXCJ0emRiXCIgOiBcIjIwMjNhXCIsIFxuICAgIFwiem9uZUluZm9cIiA6IHsgXG4gICAgICBcIm5hbWVcIiA6IFwiV0FUXCIsIFxuICAgICAgXCJiZWdpblwiIDogXCIxOTE5LTA4LTMxVDIzOjMwOjAwLjAwMFpcIiwgXG4gICAgICBcImVuZFwiIDogbnVsbCwgXG4gICAgICBcImRzdFwiIDogZmFsc2UsIFxuICAgICAgXCJvZmZzZXRcIiA6IDM2MDAgXG4gICAgfSBcbiAgfSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiYXFsRGF0ZVRpbWVUb1VUQ18zIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGFxbERhdGVUaW1lVG9VVENfMwpkZXNjcmlwdGlvbjogfAogIENvbnZlcnQgdG8gVVRDIHRpbWUgYW5kIGluY2x1ZGUgdGltZXpvbmUgaW5mb3JtYXRpb246Ci0tLQpSRVRVUk4gREFURV9MT0NBTFRPVVRDKCIyMDIxLTAzLTE2VDEyOjAwOjAwLjAwMCIsICJBZnJpY2EvTGFnb3MiLCB0cnVlKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xPQ0FMVE9VVEMoXCIyMDIxLTAzLTE2VDEyOjAwOjAwLjAwMFwiLCBcIkFmcmljYS9MYWdvc1wiLCB0cnVlKSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJ1dGNcIiA6IFwiMjAyMS0wMy0xNlQxMTowMDowMC4wMDBaXCIsIFxuICAgIFwidHpkYlwiIDogXCIyMDIzYVwiLCBcbiAgICBcInpvbmVJbmZvXCIgOiB7IFxuICAgICAgXCJuYW1lXCIgOiBcIldBVFwiLCBcbiAgICAgIFwiYmVnaW5cIiA6IFwiMTkxOS0wOC0zMVQyMzozMDowMC4wMDBaXCIsIFxuICAgICAgXCJlbmRcIiA6IG51bGwsIFxuICAgICAgXCJkc3RcIiA6IGZhbHNlLCBcbiAgICAgIFwib2Zmc2V0XCIgOiAzNjAwIFxuICAgIH0gXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29udmVydCB0byBVVEMgdGltZSBhbmQgaW5jbHVkZSB0aW1lem9uZSBpbmZvcm1hdGlvbjpcbiIsIm5hbWUiOiJhcWxEYXRlVGltZVRvVVRDXzMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "aqlEncodeUriComponent_single": { "request": "LS0tCm5hbWU6IGFxbEVuY29kZVVyaUNvbXBvbmVudApkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBFTkNPREVfVVJJX0NPTVBPTkVOVCgiZsO8bmYgJSIp", @@ -3023,97 +3023,193 @@ "request": "LS0tCm5hbWU6IGN1cnNvck5leHQKZGVzY3JpcHRpb246ICcnCi0tLQp+ZGIuX2NyZWF0ZSgiZml2ZSIpOwp+ZGIuZml2ZS5zYXZlKHsgbmFtZSA6ICJvbmUiIH0pOwp+ZGIuZml2ZS5zYXZlKHsgbmFtZSA6ICJ0d28iIH0pOwp+ZGIuZml2ZS5zYXZlKHsgbmFtZSA6ICJ0aHJlZSIgfSk7Cn5kYi5maXZlLnNhdmUoeyBuYW1lIDogImZvdXIiIH0pOwp+ZGIuZml2ZS5zYXZlKHsgbmFtZSA6ICJmaXZlIiB9KTsKZGIuX3F1ZXJ5KCJGT1IgeCBJTiBmaXZlIFJFVFVSTiB4IikubmV4dCgpOwp+ZGIuX2Ryb3AoImZpdmUiKQ==", "response": "eyJpbnB1dCI6ImRiLl9xdWVyeShcIkZPUiB4IElOIGZpdmUgUkVUVVJOIHhcIikubmV4dCgpOyIsIm91dHB1dCI6InsgXG4gIFwiX2tleVwiIDogXCI3MTI2MlwiLCBcbiAgXCJfaWRcIiA6IFwiZml2ZS83MTI2MlwiLCBcbiAgXCJfcmV2XCIgOiBcIl9nbzJYZHdtLS0tXCIsIFxuICBcIm5hbWVcIiA6IFwib25lXCIgXG59IiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImN1cnNvck5leHQiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, + "dateFormatTimezoned_single": { + "request": "LS0tCm5hbWU6IGRhdGVGb3JtYXRUaW1lem9uZWQKZGVzY3JpcHRpb246IHwKICBTaG93IGV4YW1wbGUgY2FsbHMgb2YgdGhlIGZvcm1hdHRpbmcgZnVuY3Rpb24gYW5kIHRoZWlyIHJlc3VsdHMsIHVzaW5nIHRoZQogIHRpbWV6b25lIG9mIEdlcm1hbnkgKGFuZCBOZXBhbCBpbiBvbmUgY2FzZSk6CmJpbmRWYXJzOgogIHsKICAgICJmb3JtYXRzIjogWwogICAgICB7ICJkYXRlIjogIjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIldyIsICJlcXVhbFRvIjogIkRBVEVfREFZT0ZXRUVLIiwgInRpbWV6b25lIjogIkV1cm9wZS9CZXJsaW4ifSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJXl5eXkiLCAiZXF1YWxUbyI6ICJEQVRFX1lFQVIiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJW0iLCAiZXF1YWxUbyI6ICJEQVRFX01PTlRIIiwgInRpbWV6b25lIjogIkV1cm9wZS9CZXJsaW4iIH0sCiAgICAgIHsgImRhdGUiOiAiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwgInBsYWNlaG9sZGVyIjogIiVkIiwgImVxdWFsVG8iOiAiREFURV9EQVkiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWgiLCAiZXF1YWxUbyI6ICJEQVRFX0hPVVIiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWkiLCAiZXF1YWxUbyI6ICJEQVRFX01JTlVURSIsICJ0aW1lem9uZSI6ICJBc2lhL0thdGhtYW5kdSIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJXgiLCAiZXF1YWxUbyI6ICJEQVRFX0RBWU9GWUVBUiIsICJ0aW1lem9uZSI6ICJFdXJvcGUvQmVybGluIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlayIsICJlcXVhbFRvIjogIkRBVEVfSVNPV0VFSyIsICJ0aW1lem9uZSI6ICJFdXJvcGUvQmVybGluIiB9LAogICAgICB7ICJkYXRlIjogIjIwMTYtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlbCIsICJlcXVhbFRvIjogIkRBVEVfTEVBUFlFQVIiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJXEiLCAiZXF1YWxUbyI6ICJEQVRFX1FVQVJURVIiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTExLTMwVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWEiLCAiZXF1YWxUbyI6ICJEQVRFX0RBWVNfSU5fTU9OVEgiLCAidGltZXpvbmUiOiAiRXVyb3BlL0JlcmxpbiIgfQogICAgXQogIH0KLS0tCkZPUiBmb3JtYXQgSU4gQGZvcm1hdHMKICBSRVRVUk4gQ09OQ0FUKAogICAgZm9ybWF0LmVxdWFsVG8sCiAgICAiKCciLAogICAgZm9ybWF0LmRhdGUsCiAgICAiJykgPSAiLAogICAgREFURV9GT1JNQVQoZm9ybWF0LmRhdGUsIGZvcm1hdC5wbGFjZWhvbGRlciwgZm9ybWF0LnRpbWV6b25lKQogICk=", + "response": "eyJpbnB1dCI6IkZPUiBmb3JtYXQgSU4gQGZvcm1hdHNcbiAgUkVUVVJOIENPTkNBVChcbiAgICBmb3JtYXQuZXF1YWxUbyxcbiAgICBcIignXCIsXG4gICAgZm9ybWF0LmRhdGUsXG4gICAgXCInKSA9IFwiLFxuICAgIERBVEVfRk9STUFUKGZvcm1hdC5kYXRlLCBmb3JtYXQucGxhY2Vob2xkZXIsIGZvcm1hdC50aW1lem9uZSlcbiAgKSIsIm91dHB1dCI6IlsgXG4gIFwiREFURV9EQVlPRldFRUsoJzIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWicpID0gMFwiLCBcbiAgXCJEQVRFX1lFQVIoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMjAyNFwiLCBcbiAgXCJEQVRFX01PTlRIKCcyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFonKSA9IDFcIiwgXG4gIFwiREFURV9EQVkoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMVwiLCBcbiAgXCJEQVRFX0hPVVIoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMFwiLCBcbiAgXCJEQVRFX01JTlVURSgnMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSA0NVwiLCBcbiAgXCJEQVRFX0RBWU9GWUVBUignMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSAxXCIsIFxuICBcIkRBVEVfSVNPV0VFSygnMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSAxXCIsIFxuICBcIkRBVEVfTEVBUFlFQVIoJzIwMTYtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMFwiLCBcbiAgXCJEQVRFX1FVQVJURVIoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMVwiLCBcbiAgXCJEQVRFX0RBWVNfSU5fTU9OVEgoJzIwMjMtMTEtMzBUMjM6MDA6MDAuMDAwWicpID0gMzFcIiBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJTaG93IGV4YW1wbGUgY2FsbHMgb2YgdGhlIGZvcm1hdHRpbmcgZnVuY3Rpb24gYW5kIHRoZWlyIHJlc3VsdHMsIHVzaW5nIHRoZVxudGltZXpvbmUgb2YgR2VybWFueSAoYW5kIE5lcGFsIGluIG9uZSBjYXNlKTpcbiIsIm5hbWUiOiJkYXRlRm9ybWF0VGltZXpvbmVkIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCIsImJpbmRWYXJzIjp7ImZvcm1hdHMiOlt7ImRhdGUiOiIyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9EQVlPRldFRUsiLCJwbGFjZWhvbGRlciI6IiV3IiwidGltZXpvbmUiOiJFdXJvcGUvQmVybGluIn0seyJkYXRlIjoiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfWUVBUiIsInBsYWNlaG9sZGVyIjoiJXl5eXkiLCJ0aW1lem9uZSI6IkV1cm9wZS9CZXJsaW4ifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9NT05USCIsInBsYWNlaG9sZGVyIjoiJW0iLCJ0aW1lem9uZSI6IkV1cm9wZS9CZXJsaW4ifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9EQVkiLCJwbGFjZWhvbGRlciI6IiVkIiwidGltZXpvbmUiOiJFdXJvcGUvQmVybGluIn0seyJkYXRlIjoiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfSE9VUiIsInBsYWNlaG9sZGVyIjoiJWgiLCJ0aW1lem9uZSI6IkV1cm9wZS9CZXJsaW4ifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9NSU5VVEUiLCJwbGFjZWhvbGRlciI6IiVpIiwidGltZXpvbmUiOiJBc2lhL0thdGhtYW5kdSJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX0RBWU9GWUVBUiIsInBsYWNlaG9sZGVyIjoiJXgiLCJ0aW1lem9uZSI6IkV1cm9wZS9CZXJsaW4ifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9JU09XRUVLIiwicGxhY2Vob2xkZXIiOiIlayIsInRpbWV6b25lIjoiRXVyb3BlL0JlcmxpbiJ9LHsiZGF0ZSI6IjIwMTYtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX0xFQVBZRUFSIiwicGxhY2Vob2xkZXIiOiIlbCIsInRpbWV6b25lIjoiRXVyb3BlL0JlcmxpbiJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX1FVQVJURVIiLCJwbGFjZWhvbGRlciI6IiVxIiwidGltZXpvbmUiOiJFdXJvcGUvQmVybGluIn0seyJkYXRlIjoiMjAyMy0xMS0zMFQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfREFZU19JTl9NT05USCIsInBsYWNlaG9sZGVyIjoiJWEiLCJ0aW1lem9uZSI6IkV1cm9wZS9CZXJsaW4ifV19fX0K" + }, + "dateFormat_single": { + "request": "LS0tCm5hbWU6IGRhdGVGb3JtYXQKZGVzY3JpcHRpb246IHwKICBTaG93IGV4YW1wbGUgY2FsbHMgb2YgdGhlIGZvcm1hdHRpbmcgZnVuY3Rpb24gYW5kIHRoZWlyIHJlc3VsdHM6CmJpbmRWYXJzOgogIHsKICAgICJmb3JtYXRzIjogWwogICAgICB7ICJkYXRlIjogIjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIldyIsICJlcXVhbFRvIjogIkRBVEVfREFZT0ZXRUVLIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIleXl5eSIsICJlcXVhbFRvIjogIkRBVEVfWUVBUiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJW0iLCAiZXF1YWxUbyI6ICJEQVRFX01PTlRIIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlZCIsICJlcXVhbFRvIjogIkRBVEVfREFZIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlaCIsICJlcXVhbFRvIjogIkRBVEVfSE9VUiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWkiLCAiZXF1YWxUbyI6ICJEQVRFX01JTlVURSIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjIzLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJXMiLCAiZXF1YWxUbyI6ICJEQVRFX1NFQ09ORCIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTEyLTMxVDIzOjAwOjAwLjAzMVoiLCAicGxhY2Vob2xkZXIiOiAiJWYiLCAiZXF1YWxUbyI6ICJEQVRFX01JTExJU0VDT05EIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIleCIsICJlcXVhbFRvIjogIkRBVEVfREFZT0ZZRUFSIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlayIsICJlcXVhbFRvIjogIkRBVEVfSVNPV0VFSyIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDE2LTEyLTMxVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWwiLCAiZXF1YWxUbyI6ICJEQVRFX0xFQVBZRUFSIiB9LAogICAgICB7ICJkYXRlIjogIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJwbGFjZWhvbGRlciI6ICIlcSIsICJlcXVhbFRvIjogIkRBVEVfUVVBUlRFUiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDIzLTExLTMwVDIzOjAwOjAwLjAwMFoiLCAicGxhY2Vob2xkZXIiOiAiJWEiLCAiZXF1YWxUbyI6ICJEQVRFX0RBWVNfSU5fTU9OVEgiIH0sCiAgICAgIHsgImRhdGUiOiAiMjAyMy0xMS0zMFQyMzowMDowMC4wMDBaIiwgInBsYWNlaG9sZGVyIjogIiV0IiwgImVxdWFsVG8iOiAiREFURV9USU1FU1RBTVAiIH0KICAgIF0KICB9Ci0tLQpGT1IgZm9ybWF0IElOIEBmb3JtYXRzCiAgUkVUVVJOIENPTkNBVCgKICAgIGZvcm1hdC5lcXVhbFRvLAogICAgIignIiwKICAgIGZvcm1hdC5kYXRlLAogICAgIicpID0gIiwKICAgIERBVEVfRk9STUFUKGZvcm1hdC5kYXRlLCBmb3JtYXQucGxhY2Vob2xkZXIpCiAgKQ==", + "response": "eyJpbnB1dCI6IkZPUiBmb3JtYXQgSU4gQGZvcm1hdHNcbiAgUkVUVVJOIENPTkNBVChcbiAgICBmb3JtYXQuZXF1YWxUbyxcbiAgICBcIignXCIsXG4gICAgZm9ybWF0LmRhdGUsXG4gICAgXCInKSA9IFwiLFxuICAgIERBVEVfRk9STUFUKGZvcm1hdC5kYXRlLCBmb3JtYXQucGxhY2Vob2xkZXIpXG4gICkiLCJvdXRwdXQiOiJbIFxuICBcIkRBVEVfREFZT0ZXRUVLKCcyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFonKSA9IDZcIiwgXG4gIFwiREFURV9ZRUFSKCcyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFonKSA9IDIwMjNcIiwgXG4gIFwiREFURV9NT05USCgnMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSAxMlwiLCBcbiAgXCJEQVRFX0RBWSgnMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSAzMVwiLCBcbiAgXCJEQVRFX0hPVVIoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMjNcIiwgXG4gIFwiREFURV9NSU5VVEUoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gMFwiLCBcbiAgXCJEQVRFX1NFQ09ORCgnMjAyMy0xMi0zMVQyMzowMDoyMy4wMDBaJykgPSAyM1wiLCBcbiAgXCJEQVRFX01JTExJU0VDT05EKCcyMDIzLTEyLTMxVDIzOjAwOjAwLjAzMVonKSA9IDMxXCIsIFxuICBcIkRBVEVfREFZT0ZZRUFSKCcyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFonKSA9IDM2NVwiLCBcbiAgXCJEQVRFX0lTT1dFRUsoJzIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWicpID0gNTJcIiwgXG4gIFwiREFURV9MRUFQWUVBUignMjAxNi0xMi0zMVQyMzowMDowMC4wMDBaJykgPSAxXCIsIFxuICBcIkRBVEVfUVVBUlRFUignMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaJykgPSA0XCIsIFxuICBcIkRBVEVfREFZU19JTl9NT05USCgnMjAyMy0xMS0zMFQyMzowMDowMC4wMDBaJykgPSAzMFwiLCBcbiAgXCJEQVRFX1RJTUVTVEFNUCgnMjAyMy0xMS0zMFQyMzowMDowMC4wMDBaJykgPSAxNzAxMzg1MjAwMDAwXCIgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiU2hvdyBleGFtcGxlIGNhbGxzIG9mIHRoZSBmb3JtYXR0aW5nIGZ1bmN0aW9uIGFuZCB0aGVpciByZXN1bHRzOlxuIiwibmFtZSI6ImRhdGVGb3JtYXQiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0IiwiYmluZFZhcnMiOnsiZm9ybWF0cyI6W3siZGF0ZSI6IjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX0RBWU9GV0VFSyIsInBsYWNlaG9sZGVyIjoiJXcifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9ZRUFSIiwicGxhY2Vob2xkZXIiOiIleXl5eSJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX01PTlRIIiwicGxhY2Vob2xkZXIiOiIlbSJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX0RBWSIsInBsYWNlaG9sZGVyIjoiJWQifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9IT1VSIiwicGxhY2Vob2xkZXIiOiIlaCJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX01JTlVURSIsInBsYWNlaG9sZGVyIjoiJWkifSx7ImRhdGUiOiIyMDIzLTEyLTMxVDIzOjAwOjIzLjAwMFoiLCJlcXVhbFRvIjoiREFURV9TRUNPTkQiLCJwbGFjZWhvbGRlciI6IiVzIn0seyJkYXRlIjoiMjAyMy0xMi0zMVQyMzowMDowMC4wMzFaIiwiZXF1YWxUbyI6IkRBVEVfTUlMTElTRUNPTkQiLCJwbGFjZWhvbGRlciI6IiVmIn0seyJkYXRlIjoiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfREFZT0ZZRUFSIiwicGxhY2Vob2xkZXIiOiIleCJ9LHsiZGF0ZSI6IjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX0lTT1dFRUsiLCJwbGFjZWhvbGRlciI6IiVrIn0seyJkYXRlIjoiMjAxNi0xMi0zMVQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfTEVBUFlFQVIiLCJwbGFjZWhvbGRlciI6IiVsIn0seyJkYXRlIjoiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwiZXF1YWxUbyI6IkRBVEVfUVVBUlRFUiIsInBsYWNlaG9sZGVyIjoiJXEifSx7ImRhdGUiOiIyMDIzLTExLTMwVDIzOjAwOjAwLjAwMFoiLCJlcXVhbFRvIjoiREFURV9EQVlTX0lOX01PTlRIIiwicGxhY2Vob2xkZXIiOiIlYSJ9LHsiZGF0ZSI6IjIwMjMtMTEtMzBUMjM6MDA6MDAuMDAwWiIsImVxdWFsVG8iOiJEQVRFX1RJTUVTVEFNUCIsInBsYWNlaG9sZGVyIjoiJXQifV19fX0K" + }, "dateRoundAggregate_single": { - "request": "LS0tCm5hbWU6IGRhdGVSb3VuZEFnZ3JlZ2F0ZQpkZXNjcmlwdGlvbjogJycKYmluZFZhcnM6IAogIHsKICAic2Vuc29yRGF0YSI6IFsKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjE3OjUyLjU4M1oiLCAidGVtcCI6IDIwLjYgfSwKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjE5OjUzLjUxNloiLCAidGVtcCI6IDIwLjIgfSwKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjIxOjUzLjYxMFoiLCAidGVtcCI6IDE5LjkgfSwKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjIzOjUyLjUyMloiLCAidGVtcCI6IDE5LjggfSwKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjI1OjUyLjk4OFoiLCAidGVtcCI6IDE5LjggfSwKICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjI3OjU0LjAwNVoiLCAidGVtcCI6IDE5LjcgfQogIF0KICB9Ci0tLQpGT1IgZG9jIElOIEBzZW5zb3JEYXRhCiAgQ09MTEVDVAogICAgZGF0ZSA9IERBVEVfUk9VTkQoZG9jLnRpbWVzdGFtcCwgNSwgIm1pbnV0ZXMiKQogIEFHR1JFR0FURQogICAgY291bnQgPSBDT1VOVCgxKSwKICAgIGF2ZyA9IEFWRyhkb2MudGVtcCksCiAgICBtaW4gPSBNSU4oZG9jLnRlbXApLAogICAgbWF4ID0gTUFYKGRvYy50ZW1wKQogIFJFVFVSTiB7IGRhdGUsIGNvdW50LCBhdmcsIG1pbiwgbWF4IH0=", - "response": "eyJpbnB1dCI6IkZPUiBkb2MgSU4gQHNlbnNvckRhdGFcbiAgQ09MTEVDVFxuICAgIGRhdGUgPSBEQVRFX1JPVU5EKGRvYy50aW1lc3RhbXAsIDUsIFwibWludXRlc1wiKVxuICBBR0dSRUdBVEVcbiAgICBjb3VudCA9IENPVU5UKDEpLFxuICAgIGF2ZyA9IEFWRyhkb2MudGVtcCksXG4gICAgbWluID0gTUlOKGRvYy50ZW1wKSxcbiAgICBtYXggPSBNQVgoZG9jLnRlbXApXG4gIFJFVFVSTiB7IGRhdGUsIGNvdW50LCBhdmcsIG1pbiwgbWF4IH0iLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMywgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIHsgXG4gICAgXCJkYXRlXCIgOiBcIjIwMTktMTItMDRUMjE6MTU6MDAuMDAwWlwiLCBcbiAgICBcImNvdW50XCIgOiAyLCBcbiAgICBcImF2Z1wiIDogMjAuNCwgXG4gICAgXCJtaW5cIiA6IDIwLjIsIFxuICAgIFwibWF4XCIgOiAyMC42IFxuICB9LCBcbiAgeyBcbiAgICBcImRhdGVcIiA6IFwiMjAxOS0xMi0wNFQyMToyMDowMC4wMDBaXCIsIFxuICAgIFwiY291bnRcIiA6IDIsIFxuICAgIFwiYXZnXCIgOiAxOS44NSwgXG4gICAgXCJtaW5cIiA6IDE5LjgsIFxuICAgIFwibWF4XCIgOiAxOS45IFxuICB9LCBcbiAgeyBcbiAgICBcImRhdGVcIiA6IFwiMjAxOS0xMi0wNFQyMToyNTowMC4wMDBaXCIsIFxuICAgIFwiY291bnRcIiA6IDIsIFxuICAgIFwiYXZnXCIgOiAxOS43NSwgXG4gICAgXCJtaW5cIiA6IDE5LjcsIFxuICAgIFwibWF4XCIgOiAxOS44IFxuICB9IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRlUm91bmRBZ2dyZWdhdGUiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0IiwiYmluZFZhcnMiOnsic2Vuc29yRGF0YSI6W3sidGVtcCI6MjAuNiwidGltZXN0YW1wIjoiMjAxOS0xMi0wNFQyMToxNzo1Mi41ODNaIn0seyJ0ZW1wIjoyMC4yLCJ0aW1lc3RhbXAiOiIyMDE5LTEyLTA0VDIxOjE5OjUzLjUxNloifSx7InRlbXAiOjE5LjksInRpbWVzdGFtcCI6IjIwMTktMTItMDRUMjE6MjE6NTMuNjEwWiJ9LHsidGVtcCI6MTkuOCwidGltZXN0YW1wIjoiMjAxOS0xMi0wNFQyMToyMzo1Mi41MjJaIn0seyJ0ZW1wIjoxOS44LCJ0aW1lc3RhbXAiOiIyMDE5LTEyLTA0VDIxOjI1OjUyLjk4OFoifSx7InRlbXAiOjE5LjcsInRpbWVzdGFtcCI6IjIwMTktMTItMDRUMjE6Mjc6NTQuMDA1WiJ9XX19fQo=" + "request": "LS0tCm5hbWU6IGRhdGVSb3VuZEFnZ3JlZ2F0ZQpkZXNjcmlwdGlvbjogfAogIFJvdW5kIGZ1bGwgZGF0ZSB0aW1lIHN0cmluZ3MgdG8gNSBtaW51dGVzIGFuZCBhZ2dyZWdhdGUgdGVtcGVyYXR1cmUgcmVhZGluZ3MKICBieSB0aGVzZSB0aW1lIGJ1Y2tldHM6CgpiaW5kVmFyczoKICB7CiAgICAic2Vuc29yRGF0YSI6IFsKICAgICAgeyAidGltZXN0YW1wIjogIjIwMTktMTItMDRUMjE6MTc6NTIuNTgzWiIsICJ0ZW1wIjogMjAuNiB9LAogICAgICB7ICJ0aW1lc3RhbXAiOiAiMjAxOS0xMi0wNFQyMToxOTo1My41MTZaIiwgInRlbXAiOiAyMC4yIH0sCiAgICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjIxOjUzLjYxMFoiLCAidGVtcCI6IDE5LjkgfSwKICAgICAgeyAidGltZXN0YW1wIjogIjIwMTktMTItMDRUMjE6MjM6NTIuNTIyWiIsICJ0ZW1wIjogMTkuOCB9LAogICAgICB7ICJ0aW1lc3RhbXAiOiAiMjAxOS0xMi0wNFQyMToyNTo1Mi45ODhaIiwgInRlbXAiOiAxOS44IH0sCiAgICAgIHsgInRpbWVzdGFtcCI6ICIyMDE5LTEyLTA0VDIxOjI3OjU0LjAwNVoiLCAidGVtcCI6IDE5LjcgfQogICAgXQogIH0KLS0tCkZPUiBkb2MgSU4gQHNlbnNvckRhdGEKICBDT0xMRUNUCiAgICBkYXRlID0gREFURV9ST1VORChkb2MudGltZXN0YW1wLCA1LCAibWludXRlcyIpCiAgQUdHUkVHQVRFCiAgICBjb3VudCA9IENPVU5UKDEpLAogICAgYXZnID0gQVZHKGRvYy50ZW1wKSwKICAgIG1pbiA9IE1JTihkb2MudGVtcCksCiAgICBtYXggPSBNQVgoZG9jLnRlbXApCiAgUkVUVVJOIHsgZGF0ZSwgY291bnQsIGF2ZywgbWluLCBtYXggfQ==", + "response": "eyJpbnB1dCI6IkZPUiBkb2MgSU4gQHNlbnNvckRhdGFcbiAgQ09MTEVDVFxuICAgIGRhdGUgPSBEQVRFX1JPVU5EKGRvYy50aW1lc3RhbXAsIDUsIFwibWludXRlc1wiKVxuICBBR0dSRUdBVEVcbiAgICBjb3VudCA9IENPVU5UKDEpLFxuICAgIGF2ZyA9IEFWRyhkb2MudGVtcCksXG4gICAgbWluID0gTUlOKGRvYy50ZW1wKSxcbiAgICBtYXggPSBNQVgoZG9jLnRlbXApXG4gIFJFVFVSTiB7IGRhdGUsIGNvdW50LCBhdmcsIG1pbiwgbWF4IH0iLCJvdXRwdXQiOiJbIFxuICB7IFxuICAgIFwiZGF0ZVwiIDogXCIyMDE5LTEyLTA0VDIxOjE1OjAwLjAwMFpcIiwgXG4gICAgXCJjb3VudFwiIDogMiwgXG4gICAgXCJhdmdcIiA6IDIwLjQsIFxuICAgIFwibWluXCIgOiAyMC4yLCBcbiAgICBcIm1heFwiIDogMjAuNiBcbiAgfSwgXG4gIHsgXG4gICAgXCJkYXRlXCIgOiBcIjIwMTktMTItMDRUMjE6MjA6MDAuMDAwWlwiLCBcbiAgICBcImNvdW50XCIgOiAyLCBcbiAgICBcImF2Z1wiIDogMTkuODUsIFxuICAgIFwibWluXCIgOiAxOS44LCBcbiAgICBcIm1heFwiIDogMTkuOSBcbiAgfSwgXG4gIHsgXG4gICAgXCJkYXRlXCIgOiBcIjIwMTktMTItMDRUMjE6MjU6MDAuMDAwWlwiLCBcbiAgICBcImNvdW50XCIgOiAyLCBcbiAgICBcImF2Z1wiIDogMTkuNzUsIFxuICAgIFwibWluXCIgOiAxOS43LCBcbiAgICBcIm1heFwiIDogMTkuOCBcbiAgfSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJSb3VuZCBmdWxsIGRhdGUgdGltZSBzdHJpbmdzIHRvIDUgbWludXRlcyBhbmQgYWdncmVnYXRlIHRlbXBlcmF0dXJlIHJlYWRpbmdzXG5ieSB0aGVzZSB0aW1lIGJ1Y2tldHM6XG4iLCJuYW1lIjoiZGF0ZVJvdW5kQWdncmVnYXRlIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCIsImJpbmRWYXJzIjp7InNlbnNvckRhdGEiOlt7InRlbXAiOjIwLjYsInRpbWVzdGFtcCI6IjIwMTktMTItMDRUMjE6MTc6NTIuNTgzWiJ9LHsidGVtcCI6MjAuMiwidGltZXN0YW1wIjoiMjAxOS0xMi0wNFQyMToxOTo1My41MTZaIn0seyJ0ZW1wIjoxOS45LCJ0aW1lc3RhbXAiOiIyMDE5LTEyLTA0VDIxOjIxOjUzLjYxMFoifSx7InRlbXAiOjE5LjgsInRpbWVzdGFtcCI6IjIwMTktMTItMDRUMjE6MjM6NTIuNTIyWiJ9LHsidGVtcCI6MTkuOCwidGltZXN0YW1wIjoiMjAxOS0xMi0wNFQyMToyNTo1Mi45ODhaIn0seyJ0ZW1wIjoxOS43LCJ0aW1lc3RhbXAiOiIyMDE5LTEyLTA0VDIxOjI3OjU0LjAwNVoifV19fX0K" }, "dateTruncGroup_single": { - "request": "LS0tCm5hbWU6IGRhdGVUcnVuY0dyb3VwCmRlc2NyaXB0aW9uOiAnJwpiaW5kVmFyczogCiAgewogICJkYXRhIjogWwogICAgeyAiZGF0ZSI6ICIyMDE4LTAzLTA1IiwgInZhbHVlIjogIlNwcmluZyIgfSwKICAgIHsgImRhdGUiOiAiMjAxOC0wNy0xMSIsICJ2YWx1ZSI6ICJTdW1tZXIiIH0sCiAgICB7ICJkYXRlIjogIjIwMTgtMTAtMjYiLCAidmFsdWUiOiAiQXV0dW1uIiB9LAogICAgeyAiZGF0ZSI6ICIyMDE5LTAxLTA5IiwgInZhbHVlIjogIldpbnRlciIgfSwKICAgIHsgImRhdGUiOiAiMjAxOS0wNC0wMiIsICJ2YWx1ZSI6ICJTcHJpbmciIH0KICBdCiAgfQotLS0KUkVUVVJOIE1FUkdFKAogIEZPUiBkb2MgSU4gQGRhdGEKICAgIENPTExFQ1QgcSA9IERBVEVfVFJVTkMoZG9jLmRhdGUsICJ5ZWFyIikgSU5UTyBidWNrZXQKICAgIFJFVFVSTiB7IFtEQVRFX1lFQVIocSldOiBidWNrZXRbKl0uZG9jLnZhbHVlIH0KKQ==", - "response": "eyJpbnB1dCI6IlJFVFVSTiBNRVJHRShcbiAgRk9SIGRvYyBJTiBAZGF0YVxuICAgIENPTExFQ1QgcSA9IERBVEVfVFJVTkMoZG9jLmRhdGUsIFwieWVhclwiKSBJTlRPIGJ1Y2tldFxuICAgIFJFVFVSTiB7IFtEQVRFX1lFQVIocSldOiBidWNrZXRbKl0uZG9jLnZhbHVlIH1cbikiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIHsgXG4gICAgXCIyMDE4XCIgOiBbIFxuICAgICAgXCJTcHJpbmdcIiwgXG4gICAgICBcIlN1bW1lclwiLCBcbiAgICAgIFwiQXV0dW1uXCIgXG4gICAgXSwgXG4gICAgXCIyMDE5XCIgOiBbIFxuICAgICAgXCJXaW50ZXJcIiwgXG4gICAgICBcIlNwcmluZ1wiIFxuICAgIF0gXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImRhdGVUcnVuY0dyb3VwIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCIsImJpbmRWYXJzIjp7ImRhdGEiOlt7ImRhdGUiOiIyMDE4LTAzLTA1IiwidmFsdWUiOiJTcHJpbmcifSx7ImRhdGUiOiIyMDE4LTA3LTExIiwidmFsdWUiOiJTdW1tZXIifSx7ImRhdGUiOiIyMDE4LTEwLTI2IiwidmFsdWUiOiJBdXR1bW4ifSx7ImRhdGUiOiIyMDE5LTAxLTA5IiwidmFsdWUiOiJXaW50ZXIifSx7ImRhdGUiOiIyMDE5LTA0LTAyIiwidmFsdWUiOiJTcHJpbmcifV19fX0K" + "request": "LS0tCm5hbWU6IGRhdGVUcnVuY0dyb3VwCmRlc2NyaXB0aW9uOiB8CiAgVHJ1bmNhdGUgZGF0ZSB0aW1lIHN0cmluZ3MgY29tcHJpc2VkIG9mIGEgeWVhciwgbW9udGgsIGFuZCBkYXkgdG8gdGhlIHllYXIgYW5kCiAgZ3JvdXAgYW5vdGhlciBhdHRyaWJ1dGUgYnkgaXQ6CmJpbmRWYXJzOiAKICB7CiAgICAiZGF0YSI6IFsKICAgICAgeyAiZGF0ZSI6ICIyMDE4LTAzLTA1IiwgInZhbHVlIjogIlNwcmluZyIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDE4LTA3LTExIiwgInZhbHVlIjogIlN1bW1lciIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDE4LTEwLTI2IiwgInZhbHVlIjogIkF1dHVtbiIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDE5LTAxLTA5IiwgInZhbHVlIjogIldpbnRlciIgfSwKICAgICAgeyAiZGF0ZSI6ICIyMDE5LTA0LTAyIiwgInZhbHVlIjogIlNwcmluZyIgfQogICAgXQogIH0KLS0tClJFVFVSTiBNRVJHRSgKICBGT1IgZG9jIElOIEBkYXRhCiAgICBDT0xMRUNUIHEgPSBEQVRFX1RSVU5DKGRvYy5kYXRlLCAieWVhciIpIElOVE8gYnVja2V0CiAgICBSRVRVUk4geyBbREFURV9ZRUFSKHEpXTogYnVja2V0WypdLmRvYy52YWx1ZSB9Cik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBNRVJHRShcbiAgRk9SIGRvYyBJTiBAZGF0YVxuICAgIENPTExFQ1QgcSA9IERBVEVfVFJVTkMoZG9jLmRhdGUsIFwieWVhclwiKSBJTlRPIGJ1Y2tldFxuICAgIFJFVFVSTiB7IFtEQVRFX1lFQVIocSldOiBidWNrZXRbKl0uZG9jLnZhbHVlIH1cbikiLCJvdXRwdXQiOiJbIFxuICB7IFxuICAgIFwiMjAxOFwiIDogWyBcbiAgICAgIFwiU3ByaW5nXCIsIFxuICAgICAgXCJTdW1tZXJcIiwgXG4gICAgICBcIkF1dHVtblwiIFxuICAgIF0sIFxuICAgIFwiMjAxOVwiIDogWyBcbiAgICAgIFwiV2ludGVyXCIsIFxuICAgICAgXCJTcHJpbmdcIiBcbiAgICBdIFxuICB9IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlRydW5jYXRlIGRhdGUgdGltZSBzdHJpbmdzIGNvbXByaXNlZCBvZiBhIHllYXIsIG1vbnRoLCBhbmQgZGF5IHRvIHRoZSB5ZWFyIGFuZFxuZ3JvdXAgYW5vdGhlciBhdHRyaWJ1dGUgYnkgaXQ6XG4iLCJuYW1lIjoiZGF0ZVRydW5jR3JvdXAiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0IiwiYmluZFZhcnMiOnsiZGF0YSI6W3siZGF0ZSI6IjIwMTgtMDMtMDUiLCJ2YWx1ZSI6IlNwcmluZyJ9LHsiZGF0ZSI6IjIwMTgtMDctMTEiLCJ2YWx1ZSI6IlN1bW1lciJ9LHsiZGF0ZSI6IjIwMTgtMTAtMjYiLCJ2YWx1ZSI6IkF1dHVtbiJ9LHsiZGF0ZSI6IjIwMTktMDEtMDkiLCJ2YWx1ZSI6IldpbnRlciJ9LHsiZGF0ZSI6IjIwMTktMDQtMDIiLCJ2YWx1ZSI6IlNwcmluZyJ9XX19fQo=" + }, + "dateadd1_single": { + "request": "LS0tCm5hbWU6IGRhdGVhZGQxCmRlc2NyaXB0aW9uOiB8CiAgVVRDIGRvZXMgbm90IGhhdmUgZGF5bGlnaHQgc2F2aW5nIHRpbWUgYnV0IEdlcm1hbnkgZG9lcywgb25seSBhZGRpbmcgMjMgaG91cnMKICB3aGVuIGFkZGluZyBhIGRheToKLS0tClJFVFVSTiB7CiAgVVRDOiBEQVRFX0FERCgiMjAyMy0wMy0yNVQyMzowMDowMC4wMDBaIiwgMSwgImRheSIpLAogIEdlcm1hbnk6IERBVEVfQUREKCIyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFoiLCAxLCAiZGF5IiwgIkV1cm9wZS9CZXJsaW4iKQp9", + "response": "eyJpbnB1dCI6IlJFVFVSTiB7XG4gIFVUQzogREFURV9BREQoXCIyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFpcIiwgMSwgXCJkYXlcIiksXG4gIEdlcm1hbnk6IERBVEVfQUREKFwiMjAyMy0wMy0yNVQyMzowMDowMC4wMDBaXCIsIDEsIFwiZGF5XCIsIFwiRXVyb3BlL0JlcmxpblwiKVxufSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJVVENcIiA6IFwiMjAyMy0wMy0yNlQyMzowMDowMC4wMDBaXCIsIFxuICAgIFwiR2VybWFueVwiIDogXCIyMDIzLTAzLTI2VDIyOjAwOjAwLjAwMFpcIiBcbiAgfSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJVVEMgZG9lcyBub3QgaGF2ZSBkYXlsaWdodCBzYXZpbmcgdGltZSBidXQgR2VybWFueSBkb2VzLCBvbmx5IGFkZGluZyAyMyBob3Vyc1xud2hlbiBhZGRpbmcgYSBkYXk6XG4iLCJuYW1lIjoiZGF0ZWFkZDEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datecmp1_single": { + "request": "LS0tCm5hbWU6IGRhdGVjbXAxCmRlc2NyaXB0aW9uOiB8CiAgQ29tcGFyZSB0aGUgdGltZSBvZiB0d28gZGF0ZSB0aW1lIHN0cmluZ3MgdGhhdCBpcyBkaWZmZXJlbnQgaW4gVVRDIGJ1dCB0aGUKICBzYW1lIGluIHR3byBkaWZmZXJlbnQgbG9jYWwgdGltZXpvbmVzOgotLS0KUkVUVVJOIHsKICBHZXJtYW55OiBEQVRFX1VUQ1RPTE9DQUwoIjIwMjMtMDQtMDFUMDk6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIiksCiAgVVNBOiBEQVRFX1VUQ1RPTE9DQUwoIjIwMjQtMDQtMDFUMTg6MDA6MDAuMDAwWiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiksCiAgc2FtZVRpbWVVVEM6IERBVEVfQ09NUEFSRSgiMjAyMy0wNC0wMVQwOTowMDowMC4wMDBaIiwgIjIwMjQtMDQtMDFUMTg6MDA6MDAuMDAwWiIsICJob3VyIiwgIm1pbnV0ZSIpLAogIHNhbWVUaW1lTG9jYWw6IERBVEVfQ09NUEFSRSgiMjAyMy0wNC0wMVQwOTowMDowMC4wMDBaIiwgIjIwMjQtMDQtMDFUMTg6MDA6MDAuMDAwWiIsICJob3VyIiwgIm1pbnV0ZSIsICJFdXJvcGUvQmVybGluIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKQp9", + "response": "eyJpbnB1dCI6IlJFVFVSTiB7XG4gIEdlcm1hbnk6IERBVEVfVVRDVE9MT0NBTChcIjIwMjMtMDQtMDFUMDk6MDA6MDAuMDAwWlwiLCBcIkV1cm9wZS9CZXJsaW5cIiksXG4gIFVTQTogREFURV9VVENUT0xPQ0FMKFwiMjAyNC0wNC0wMVQxODowMDowMC4wMDBaXCIsIFwiQW1lcmljYS9Mb3NfQW5nZWxlc1wiKSxcbiAgc2FtZVRpbWVVVEM6IERBVEVfQ09NUEFSRShcIjIwMjMtMDQtMDFUMDk6MDA6MDAuMDAwWlwiLCBcIjIwMjQtMDQtMDFUMTg6MDA6MDAuMDAwWlwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiksXG4gIHNhbWVUaW1lTG9jYWw6IERBVEVfQ09NUEFSRShcIjIwMjMtMDQtMDFUMDk6MDA6MDAuMDAwWlwiLCBcIjIwMjQtMDQtMDFUMTg6MDA6MDAuMDAwWlwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJFdXJvcGUvQmVybGluXCIsIFwiQW1lcmljYS9Mb3NfQW5nZWxlc1wiKVxufSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJHZXJtYW55XCIgOiBcIjIwMjMtMDQtMDFUMTE6MDA6MDAuMDAwXCIsIFxuICAgIFwiVVNBXCIgOiBcIjIwMjQtMDQtMDFUMTE6MDA6MDAuMDAwXCIsIFxuICAgIFwic2FtZVRpbWVVVENcIiA6IGZhbHNlLCBcbiAgICBcInNhbWVUaW1lTG9jYWxcIiA6IHRydWUgXG4gIH0gXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29tcGFyZSB0aGUgdGltZSBvZiB0d28gZGF0ZSB0aW1lIHN0cmluZ3MgdGhhdCBpcyBkaWZmZXJlbnQgaW4gVVRDIGJ1dCB0aGVcbnNhbWUgaW4gdHdvIGRpZmZlcmVudCBsb2NhbCB0aW1lem9uZXM6XG4iLCJuYW1lIjoiZGF0ZWNtcDEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datediff1_single": { + "request": "LS0tCm5hbWU6IGRhdGVkaWZmMQpkZXNjcmlwdGlvbjogfAogIERldGVybWluZSBob3cgbWFueSBkYXlzIGl0IGlzIGZyb20gTmV3IFllYXIncyBFdmUgdW50aWwgQXByaWwgRm9vbHMnIGRheToKLS0tClJFVFVSTiBEQVRFX0RJRkYoIjIwMjMtMTItMDEiLCAiMjAyNC0wNC0wMSIsICJkYXlzIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RJRkYoXCIyMDIzLTEyLTAxXCIsIFwiMjAyNC0wNC0wMVwiLCBcImRheXNcIikiLCJvdXRwdXQiOiJbIFxuICAxMjIgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIGhvdyBtYW55IGRheXMgaXQgaXMgZnJvbSBOZXcgWWVhcidzIEV2ZSB1bnRpbCBBcHJpbCBGb29scycgZGF5OlxuIiwibmFtZSI6ImRhdGVkaWZmMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datediff2_single": { + "request": "LS0tCm5hbWU6IGRhdGVkaWZmMgpkZXNjcmlwdGlvbjogfAogIERldGVybWluZSBob3cgbWFueSBob3VycyAod2l0aCBkZWNpbWFsIHBsYWNlcykgTmVwYWwgYW5kIHRoZSBVU0EgYXJlIGFwYXJ0CiAgdXNpbmcgdGhlIHNhbWUgZGF0ZSB0aW1lIHN0cmluZzoKLS0tCkxFVCBkYXRlID0gIjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWiIKUkVUVVJOIERBVEVfRElGRihkYXRlLCBkYXRlLCAiaG91cnMiLCB0cnVlLCAiQXNpYS9LYXRobWFuZHUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIp", + "response": "eyJpbnB1dCI6IkxFVCBkYXRlID0gXCIyMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFpcIlxuUkVUVVJOIERBVEVfRElGRihkYXRlLCBkYXRlLCBcImhvdXJzXCIsIHRydWUsIFwiQXNpYS9LYXRobWFuZHVcIiwgXCJBbWVyaWNhL0xvc19BbmdlbGVzXCIpIiwib3V0cHV0IjoiWyBcbiAgLTEzLjc1IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkRldGVybWluZSBob3cgbWFueSBob3VycyAod2l0aCBkZWNpbWFsIHBsYWNlcykgTmVwYWwgYW5kIHRoZSBVU0EgYXJlIGFwYXJ0XG51c2luZyB0aGUgc2FtZSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVkaWZmMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datediff3_single": { + "request": "LS0tCm5hbWU6IGRhdGVkaWZmMwpkZXNjcmlwdGlvbjogfAogIERldGVybWluZSB0aGUgaG91ciBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGRhdGUgdGltZSBzdHJpbmdzLCB3aGVyZSBHZXJtYW55IGhhcwogIG9uZSBob3VyIG1vcmUgZHVlIHRvIHRoZSBzd2l0Y2ggZnJvbSB3aW50ZXIgdG8gc3VtbWVyIHRpbWU6Ci0tLQpSRVRVUk4gewogIFVUQzogREFURV9ESUZGKCIyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFoiLCAiMjAyMy0wMy0yNlQyMzowMDowMC4wMDBaIiwgImhvdXJzIiksCiAgR2VybWFueTogREFURV9ESUZGKCIyMDIzLTAzLTI1VDIzOjAwOjAwLjAwMFoiLCAiMjAyMy0wMy0yNlQyMzowMDowMC4wMDBaIiwgImhvdXJzIiwgIkV1cm9wZS9CZXJsaW4iKQp9", + "response": "eyJpbnB1dCI6IlJFVFVSTiB7XG4gIFVUQzogREFURV9ESUZGKFwiMjAyMy0wMy0yNVQyMzowMDowMC4wMDBaXCIsIFwiMjAyMy0wMy0yNlQyMzowMDowMC4wMDBaXCIsIFwiaG91cnNcIiksXG4gIEdlcm1hbnk6IERBVEVfRElGRihcIjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWlwiLCBcIjIwMjMtMDMtMjZUMjM6MDA6MDAuMDAwWlwiLCBcImhvdXJzXCIsIFwiRXVyb3BlL0JlcmxpblwiKVxufSIsIm91dHB1dCI6IlsgXG4gIHsgXG4gICAgXCJVVENcIiA6IDI0LCBcbiAgICBcIkdlcm1hbnlcIiA6IDI1IFxuICB9IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkRldGVybWluZSB0aGUgaG91ciBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGRhdGUgdGltZSBzdHJpbmdzLCB3aGVyZSBHZXJtYW55IGhhc1xub25lIGhvdXIgbW9yZSBkdWUgdG8gdGhlIHN3aXRjaCBmcm9tIHdpbnRlciB0byBzdW1tZXIgdGltZTpcbiIsIm5hbWUiOiJkYXRlZGlmZjMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datedy1_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeTEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVkoIjIwMjAtMDgtMjkiKQ==", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWShcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIDI5IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRlZHkxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGRhdGVkeTEKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBkYXkgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmc6Ci0tLQpSRVRVUk4gREFURV9EQVkoIjIwMjAtMDgtMjkiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWShcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbIFxuICAyOSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSBkYXkgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmc6XG4iLCJuYW1lIjoiZGF0ZWR5MSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datedy2_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeTIKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVkoMCk=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWSgwKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgMSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5MiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVkeTIKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBkYXkgZnJvbSBhIFVuaXggdGltZXN0YW1wOgotLS0KUkVUVVJOIERBVEVfREFZKDAp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWSgwKSIsIm91dHB1dCI6IlsgXG4gIDEgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgZGF5IGZyb20gYSBVbml4IHRpbWVzdGFtcDpcbiIsIm5hbWUiOiJkYXRlZHkyIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + }, + "datedy3_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeTMKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBkYXkgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmcsIHdpdGggYSBwb2ludCBpbiB0aW1lIG9uZSBob3VyIGJlZm9yZQogIHRoZSBuZXh0IGRheSBpbiBVVEMsIHdoaWNoIGlzIGFscmVhZHkgdGhlIG5leHQgZGF5IGluIEdlcm1hbnk6Ci0tLQpSRVRVUk4gREFURV9EQVkoIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWShcIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWlwiLCBcIkV1cm9wZS9CZXJsaW5cIikiLCJvdXRwdXQiOiJbIFxuICAxIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIGRheSBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZywgd2l0aCBhIHBvaW50IGluIHRpbWUgb25lIGhvdXIgYmVmb3JlXG50aGUgbmV4dCBkYXkgaW4gVVRDLCB3aGljaCBpcyBhbHJlYWR5IHRoZSBuZXh0IGRheSBpbiBHZXJtYW55OlxuIiwibmFtZSI6ImRhdGVkeTMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datedyofwk1_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeW9md2sxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfREFZT0ZXRUVLKCIyMDIwLTA4LTI5Iik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GV0VFSyhcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIDYgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImRhdGVkeW9md2sxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGRhdGVkeW9md2sxCmRlc2NyaXB0aW9uOiB8CiAgVGhlIDI5dGggb2YgQXVndXN0IGluIDIwMjAgd2FzIGEgU2F0dXJkYXk6Ci0tLQpSRVRVUk4gREFURV9EQVlPRldFRUsoIjIwMjAtMDgtMjkiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GV0VFSyhcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbIFxuICA2IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlRoZSAyOXRoIG9mIEF1Z3VzdCBpbiAyMDIwIHdhcyBhIFNhdHVyZGF5OlxuIiwibmFtZSI6ImRhdGVkeW9md2sxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "datedyofwk2_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeW9md2syCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfREFZT0ZXRUVLKDAp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GV0VFSygwKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgNCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5b2Z3azIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGVkeW9md2syCmRlc2NyaXB0aW9uOiB8CiAgVGhlIFVuaXggZXBvY2ggYmVnYW4gb24gdGhlIDFzdCBvZiBKYW51YXJ5IDE5NzAsIHdoaWNoIHdhcyBhIFRodXJzZGF5OgotLS0KUkVUVVJOIERBVEVfREFZT0ZXRUVLKDAp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GV0VFSygwKSIsIm91dHB1dCI6IlsgXG4gIDQgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIFVuaXggZXBvY2ggYmVnYW4gb24gdGhlIDFzdCBvZiBKYW51YXJ5IDE5NzAsIHdoaWNoIHdhcyBhIFRodXJzZGF5OlxuIiwibmFtZSI6ImRhdGVkeW9md2syIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + }, + "datedyofwk3_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeW9md2szCmRlc2NyaXB0aW9uOiB8CiAgQXQgMTEgUE0gVVRDLCBpdCBpcyBhbHJlYWR5IHRoZSBuZXh0IGRheSBpbiBHZXJtYW55IChVVEMrMSBvciBVVEMrMik6Ci0tLQpSRVRVUk4gREFURV9EQVlPRldFRUsoIjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GV0VFSyhcIjIwMjMtMDMtMjVUMjM6MDA6MDAuMDAwWlwiLCBcIkV1cm9wZS9CZXJsaW5cIikiLCJvdXRwdXQiOiJbIFxuICAwIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkF0IDExIFBNIFVUQywgaXQgaXMgYWxyZWFkeSB0aGUgbmV4dCBkYXkgaW4gR2VybWFueSAoVVRDKzEgb3IgVVRDKzIpOlxuIiwibmFtZSI6ImRhdGVkeW9md2szIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "datedyofyr1_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeW9meXIxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfREFZT0ZZRUFSKCIyMDIwLTA4LTI5Iik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GWUVBUihcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIDI0MiBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5b2Z5cjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGVkeW9meXIxCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgZGF5IG9mIHllYXIgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmc6Ci0tLQpSRVRVUk4gREFURV9EQVlPRllFQVIoIjIwMjAtMDgtMjkiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GWUVBUihcIjIwMjAtMDgtMjlcIikiLCJvdXRwdXQiOiJbIFxuICAyNDIgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgZGF5IG9mIHllYXIgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmc6XG4iLCJuYW1lIjoiZGF0ZWR5b2Z5cjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datedyofyr2_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeW9meXIyCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgZGF5IG9mIHllYXIgZnJvbSBhIFVuaXggdGltZXN0YW1wOgotLS0KUkVUVVJOIERBVEVfREFZT0ZZRUFSKDg2NDAwMDAwKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GWUVBUig4NjQwMDAwMCkiLCJvdXRwdXQiOiJbIFxuICAyIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIGRheSBvZiB5ZWFyIGZyb20gYSBVbml4IHRpbWVzdGFtcDpcbiIsIm5hbWUiOiJkYXRlZHlvZnlyMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datedyofyr3_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeW9meXIzCmRlc2NyaXB0aW9uOiB8CiAgRGV0ZXJtaW5lIHRoZSBkYXkgb2YgeWVhciBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZywgd2l0aCBhIHBvaW50IGluIHRpbWUgb25lCiAgaG91ciBiZWZvcmUgdGhlIG5leHQgZGF5IGluIFVUQywgd2hpY2ggaXMgYWxyZWFkeSB0aGUgbmV4dCBkYXkgaW4gR2VybWFueToKLS0tClJFVFVSTiBEQVRFX0RBWU9GWUVBUigiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwgIkV1cm9wZS9CZXJsaW4iKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWU9GWUVBUihcIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWlwiLCBcIkV1cm9wZS9CZXJsaW5cIikiLCJvdXRwdXQiOiJbIFxuICAxIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkRldGVybWluZSB0aGUgZGF5IG9mIHllYXIgZnJvbSBhIGRhdGUgdGltZSBzdHJpbmcsIHdpdGggYSBwb2ludCBpbiB0aW1lIG9uZVxuaG91ciBiZWZvcmUgdGhlIG5leHQgZGF5IGluIFVUQywgd2hpY2ggaXMgYWxyZWFkeSB0aGUgbmV4dCBkYXkgaW4gR2VybWFueTpcbiIsIm5hbWUiOiJkYXRlZHlvZnlyMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datedysmn1_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIwLTA4LTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTA4LTAxXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAzMSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5c21uMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjEKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIEF1Z3VzdCB1c2luZyBhIGRhdGUgdGltZSBzdHJpbmc6Ci0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIwLTA4LTAxIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTA4LTAxXCIpIiwib3V0cHV0IjoiWyBcbiAgMzEgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBBdWd1c3QgdXNpbmcgYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVkeXNtbjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datedysmn2_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjIKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIwLTA5LTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTA5LTAxXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAzMCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5c21uMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjIKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIFNlcHRlbWJlciB1c2luZyBhIGRhdGUgdGltZSBzdHJpbmc6Ci0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIwLTA5LTAxIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTA5LTAxXCIpIiwib3V0cHV0IjoiWyBcbiAgMzAgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBTZXB0ZW1iZXIgdXNpbmcgYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVkeXNtbjIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datedysmn3_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjMKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIwLTAyLTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTAyLTAxXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAyOSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5c21uMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjMKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIEZlYnJ1YXJ5IGluIGEgbGVhcCB5ZWFyIHVzaW5nIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoIjIwMjAtMDItMDEiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIwLTAyLTAxXCIpIiwib3V0cHV0IjoiWyBcbiAgMjkgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBGZWJydWFyeSBpbiBhIGxlYXAgeWVhciB1c2luZyBhIGRhdGUgdGltZSBzdHJpbmc6XG4iLCJuYW1lIjoiZGF0ZWR5c21uMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datedysmn4_single": { - "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjQKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9EQVlTX0lOX01PTlRIKCIyMDIxLTAyLTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIxLTAyLTAxXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAyOCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWR5c21uNCIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjQKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIEZlYnJ1YXJ5IGluIGEgYSBub24tbGVhcCB5ZWFyIHVzaW5nIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoIjIwMjEtMDItMDEiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIxLTAyLTAxXCIpIiwib3V0cHV0IjoiWyBcbiAgMjggXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBGZWJydWFyeSBpbiBhIGEgbm9uLWxlYXAgeWVhciB1c2luZyBhIGRhdGUgdGltZSBzdHJpbmc6XG4iLCJuYW1lIjoiZGF0ZWR5c21uNCIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datedysmn5_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjUKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCB1c2luZyBhIFVuaXggdGltZXN0YW1wOgotLS0KUkVUVVJOIERBVEVfREFZU19JTl9NT05USCgzMDQ1NjAwMDAwKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoMzA0NTYwMDAwMCkiLCJvdXRwdXQiOiJbIFxuICAyOCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCB1c2luZyBhIFVuaXggdGltZXN0YW1wOlxuIiwibmFtZSI6ImRhdGVkeXNtbjUiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datedysmn6_single": { + "request": "LS0tCm5hbWU6IGRhdGVkeXNtbjYKZGVzY3JpcHRpb246IHwKICBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCB1c2luZyBhIGRhdGUgdGltZSBzdHJpbmcsIHdpdGggYQogIHBvaW50IGluIHRpbWUgb25lIGhvdXIgYmVmb3JlIHRoZSBlbmQgb2YgTm92ZW1iZXIgaW4gVVRDLCB3aGljaCBpcyBhbHJlYWR5CiAgRGVjZW1iZXIgaW4gR2VybWFueToKLS0tClJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoIjIwMjMtMTEtMzBUMjM6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0RBWVNfSU5fTU9OVEgoXCIyMDIzLTExLTMwVDIzOjAwOjAwLjAwMFpcIiwgXCJFdXJvcGUvQmVybGluXCIpIiwib3V0cHV0IjoiWyBcbiAgMzEgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgbW9udGggdXNpbmcgYSBkYXRlIHRpbWUgc3RyaW5nLCB3aXRoIGFcbnBvaW50IGluIHRpbWUgb25lIGhvdXIgYmVmb3JlIHRoZSBlbmQgb2YgTm92ZW1iZXIgaW4gVVRDLCB3aGljaCBpcyBhbHJlYWR5XG5EZWNlbWJlciBpbiBHZXJtYW55OlxuIiwibmFtZSI6ImRhdGVkeXNtbjYiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datehr1_single": { - "request": "LS0tCm5hbWU6IGRhdGVocjEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9IT1VSKCIyMDIwLTA4LTI5VDE2OjMwOjA1LjEyMyIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0hPVVIoXCIyMDIwLTA4LTI5VDE2OjMwOjA1LjEyM1wiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgMTYgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImRhdGVocjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGVocjEKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBob3VyIG9mIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX0hPVVIoIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0hPVVIoXCIyMDIwLTA4LTI5VDE2OjMwOjA1LjEyM1wiKSIsIm91dHB1dCI6IlsgXG4gIDE2IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIGhvdXIgb2YgYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVocjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datehr2_single": { + "request": "LS0tCm5hbWU6IGRhdGVocjIKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBob3VyIG9mIGEgVW5peCB0aW1lc3RhbXA6Ci0tLQpSRVRVUk4gREFURV9IT1VSKDE0NDAwMDAwKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0hPVVIoMTQ0MDAwMDApIiwib3V0cHV0IjoiWyBcbiAgNCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSBob3VyIG9mIGEgVW5peCB0aW1lc3RhbXA6XG4iLCJuYW1lIjoiZGF0ZWhyMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datehr3_single": { + "request": "LS0tCm5hbWU6IGRhdGVocjMKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBob3VyIG9mIGEgZGF0ZSB0aW1lIHN0cmluZywgdXNpbmcgR2VybWFueSdzIHRpbWV6b25lIHRoYXQgaXMgb25lCiAgaG91ciBhaGVhZCBjb21wYXJlZCB0byBVVEMgaW4gdGhpcyBjYXNlOgotLS0KUkVUVVJOIERBVEVfSE9VUigiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwgIkV1cm9wZS9CZXJsaW4iKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0hPVVIoXCIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFpcIiwgXCJFdXJvcGUvQmVybGluXCIpIiwib3V0cHV0IjoiWyBcbiAgMCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSBob3VyIG9mIGEgZGF0ZSB0aW1lIHN0cmluZywgdXNpbmcgR2VybWFueSdzIHRpbWV6b25lIHRoYXQgaXMgb25lXG5ob3VyIGFoZWFkIGNvbXBhcmVkIHRvIFVUQyBpbiB0aGlzIGNhc2U6XG4iLCJuYW1lIjoiZGF0ZWhyMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "dateisofwk1_single": { - "request": "LS0tCm5hbWU6IGRhdGVpc29md2sxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfSVNPV0VFSygiMjAyMC0wOC0yOSIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUsoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAzNSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWlzb2Z3azEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGVpc29md2sxCmRlc2NyaXB0aW9uOiB8CiAgRGV0ZXJtaW5lIHRoZSB3ZWVrIG51bWJlciBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX0lTT1dFRUsoIjIwMjAtMDgtMjkiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUsoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiWyBcbiAgMzUgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRGV0ZXJtaW5lIHRoZSB3ZWVrIG51bWJlciBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZzpcbiIsIm5hbWUiOiJkYXRlaXNvZndrMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "dateisofwk2_single": { + "request": "LS0tCm5hbWU6IGRhdGVpc29md2syCmRlc2NyaXB0aW9uOiB8CiAgRGV0ZXJtaW5lIHRoZSB3ZWVrIG51bWJlciBmcm9tIGEgVW5peCB0aW1lc3RhbXA6Ci0tLQpSRVRVUk4gREFURV9JU09XRUVLKDEyMzQ1Njc4OTAp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0lTT1dFRUsoMTIzNDU2Nzg5MCkiLCJvdXRwdXQiOiJbIFxuICAzIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkRldGVybWluZSB0aGUgd2VlayBudW1iZXIgZnJvbSBhIFVuaXggdGltZXN0YW1wOlxuIiwibmFtZSI6ImRhdGVpc29md2syIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "datelpyr1_single": { - "request": "LS0tCm5hbWU6IGRhdGVscHlyMQpkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBEQVRFX0xFQVBZRUFSKCIyMDIwLTAxLTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xFQVBZRUFSKFwiMjAyMC0wMS0wMVwiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgdHJ1ZSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZWxweXIxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGRhdGVscHlyMQpkZXNjcmlwdGlvbjogfAogIDIwMjAgd2FzIGEgbGVhcCB5ZWFyOgotLS0KUkVUVVJOIERBVEVfTEVBUFlFQVIoIjIwMjAtMDEtMDEiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xFQVBZRUFSKFwiMjAyMC0wMS0wMVwiKSIsIm91dHB1dCI6IlsgXG4gIHRydWUgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiMjAyMCB3YXMgYSBsZWFwIHllYXI6XG4iLCJuYW1lIjoiZGF0ZWxweXIxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" }, "datelpyr2_single": { - "request": "LS0tCm5hbWU6IGRhdGVscHlyMgpkZXNjcmlwdGlvbjogJycKLS0tClJFVFVSTiBEQVRFX0xFQVBZRUFSKCIyMDIxLTAxLTAxIik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xFQVBZRUFSKFwiMjAyMS0wMS0wMVwiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgZmFsc2UgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImRhdGVscHlyMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVscHlyMgpkZXNjcmlwdGlvbjogfAogIDIwMjEgd2FzIG5vdCBhIGxlYXAgeWVhcjoKLS0tClJFVFVSTiBEQVRFX0xFQVBZRUFSKCIyMDIxLTAxLTAxIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xFQVBZRUFSKFwiMjAyMS0wMS0wMVwiKSIsIm91dHB1dCI6IlsgXG4gIGZhbHNlIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IjIwMjEgd2FzIG5vdCBhIGxlYXAgeWVhcjpcbiIsIm5hbWUiOiJkYXRlbHB5cjIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "datelpyr3_single": { + "request": "LS0tCm5hbWU6IGRhdGVscHlyMwpkZXNjcmlwdGlvbjogfAogIDIwMTYgd2FzIGEgbGVhcCB5ZWFyIGJ1dCB0aGUgcG9pbnQgaW4gdGltZSBpcyBvbmUgaG91ciBiZWZvcmUgdGhlIG5leHQgeWVhciBpbgogIFVUQywgd2hpY2ggaXMgYWxyZWFkeSAyMDE3IGluIEdlcm1hbnksIGFuZCB0aGF0IHdhcyBub3QgYSBsZWFwIHllYXI6Ci0tLQpSRVRVUk4gREFURV9MRUFQWUVBUigiMjAxNi0xMi0zMVQyMzowMDowMC4wMDBaIiwgIkV1cm9wZS9CZXJsaW4iKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX0xFQVBZRUFSKFwiMjAxNi0xMi0zMVQyMzowMDowMC4wMDBaXCIsIFwiRXVyb3BlL0JlcmxpblwiKSIsIm91dHB1dCI6IlsgXG4gIGZhbHNlIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IjIwMTYgd2FzIGEgbGVhcCB5ZWFyIGJ1dCB0aGUgcG9pbnQgaW4gdGltZSBpcyBvbmUgaG91ciBiZWZvcmUgdGhlIG5leHQgeWVhciBpblxuVVRDLCB3aGljaCBpcyBhbHJlYWR5IDIwMTcgaW4gR2VybWFueSwgYW5kIHRoYXQgd2FzIG5vdCBhIGxlYXAgeWVhcjpcbiIsIm5hbWUiOiJkYXRlbHB5cjMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "datemilsec1_single": { "request": "LS0tCm5hbWU6IGRhdGVtaWxzZWMxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfTUlMTElTRUNPTkQoIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzIik=", "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTExJU0VDT05EKFwiMjAyMC0wOC0yOVQxNjozMDowNS4xMjNcIikiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIDEyMyBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZW1pbHNlYzEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, + "datemilsec2_single": { + "request": "LS0tCm5hbWU6IGRhdGVtaWxzZWMyCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgbWlsbGlzZWNvbmQgb2YgYSBVbml4IHRpbWVzdGFtcDoKLS0tClJFVFVSTiBEQVRFX01JTExJU0VDT05EKDEyMzQ1Njc4OTAp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTExJU0VDT05EKDEyMzQ1Njc4OTApIiwib3V0cHV0IjoiWyBcbiAgODkwIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIG1pbGxpc2Vjb25kIG9mIGEgVW5peCB0aW1lc3RhbXA6XG4iLCJuYW1lIjoiZGF0ZW1pbHNlYzIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, "datemin1_single": { - "request": "LS0tCm5hbWU6IGRhdGVtaW4xCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfTUlOVVRFKCIyMDIwLTA4LTI5VDE2OjMwOjA1LjEyMyIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTlVURShcIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAzMCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZW1pbjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGVtaW4xCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgbWludXRlIG9mIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX01JTlVURSgiMjAyMC0wOC0yOVQxNjozMDowNS4xMjMiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTlVURShcIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzXCIpIiwib3V0cHV0IjoiWyBcbiAgMzAgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgbWludXRlIG9mIGEgZGF0ZSB0aW1lIHN0cmluZzpcbiIsIm5hbWUiOiJkYXRlbWluMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datemin2_single": { + "request": "LS0tCm5hbWU6IGRhdGVtaW4yCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgbWludXRlIG9mIGEgVW5peCB0aW1lc3RhbXA6Ci0tLQpSRVRVUk4gREFURV9NSU5VVEUoMjUyMDAwMCk=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTlVURSgyNTIwMDAwKSIsIm91dHB1dCI6IlsgXG4gIDQyIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIG1pbnV0ZSBvZiBhIFVuaXggdGltZXN0YW1wOlxuIiwibmFtZSI6ImRhdGVtaW4yIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + }, + "datemin3_single": { + "request": "LS0tCm5hbWU6IGRhdGVtaW4zCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgbWludXRlIG9mIGEgZGF0ZSB0aW1lIHN0cmluZywgdXNpbmcgTmVwYWwncyB0aW1lem9uZSB0aGF0IGlzCiAgNSBob3VycyBhbmQgNDUgbWludXRlcyBhaGVhZCBvZiBVVEM6Ci0tLQpSRVRVUk4gREFURV9NSU5VVEUoIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJBc2lhL0thdGhtYW5kdSIp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01JTlVURShcIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWlwiLCBcIkFzaWEvS2F0aG1hbmR1XCIpIiwib3V0cHV0IjoiWyBcbiAgNDUgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgbWludXRlIG9mIGEgZGF0ZSB0aW1lIHN0cmluZywgdXNpbmcgTmVwYWwncyB0aW1lem9uZSB0aGF0IGlzXG41IGhvdXJzIGFuZCA0NSBtaW51dGVzIGFoZWFkIG9mIFVUQzpcbiIsIm5hbWUiOiJkYXRlbWluMyIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datemn1_single": { - "request": "LS0tCm5hbWU6IGRhdGVtbjEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9NT05USCgiMjAyMC0wOC0yOSIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01PTlRIKFwiMjAyMC0wOC0yOVwiKSIsIm91dHB1dCI6IltvYmplY3QgQXJhbmdvUXVlcnlDdXJzb3IsIGNvdW50OiAxLCBjYWNoZWQ6IGZhbHNlLCBoYXNNb3JlOiBmYWxzZV1cblxuWyBcbiAgOCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiIiLCJuYW1lIjoiZGF0ZW1uMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVtbjEKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBtb250aCBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX01PTlRIKCIyMDIwLTA4LTI5Iik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01PTlRIKFwiMjAyMC0wOC0yOVwiKSIsIm91dHB1dCI6IlsgXG4gIDggXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgbW9udGggZnJvbSBhIGRhdGUgdGltZSBzdHJpbmc6XG4iLCJuYW1lIjoiZGF0ZW1uMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datemn2_single": { - "request": "LS0tCm5hbWU6IGRhdGVtbjIKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9NT05USCgwKQ==", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01PTlRIKDApIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAxIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRlbW4yIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGRhdGVtbjIKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBtb250aCBmcm9tIGEgVW5peCB0aW1lc3RhbXA6Ci0tLQpSRVRVUk4gREFURV9NT05USCgwKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX01PTlRIKDApIiwib3V0cHV0IjoiWyBcbiAgMSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSBtb250aCBmcm9tIGEgVW5peCB0aW1lc3RhbXA6XG4iLCJuYW1lIjoiZGF0ZW1uMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + }, + "datemn3_single": { + "request": "LS0tCm5hbWU6IGRhdGVtbjMKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSBtb250aCBmcm9tIGEgZGF0ZSB0aW1lIHN0cmluZywgd2l0aCBhIHBvaW50IGluIHRpbWUgb25lIGhvdXIgYmVmb3JlCiAgdGhlIG5leHQgbW9udGggaW4gVVRDLCB3aGljaCBpcyBhbHJlYWR5IHRoZSBuZXh0IG1vbnRoIGluIEdlcm1hbnk6Ci0tLQogUkVUVVJOIERBVEVfTU9OVEgoIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIik=", + "response": "eyJpbnB1dCI6IiBSRVRVUk4gREFURV9NT05USChcIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWlwiLCBcIkV1cm9wZS9CZXJsaW5cIikiLCJvdXRwdXQiOiJbIFxuICAxIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIG1vbnRoIGZyb20gYSBkYXRlIHRpbWUgc3RyaW5nLCB3aXRoIGEgcG9pbnQgaW4gdGltZSBvbmUgaG91ciBiZWZvcmVcbnRoZSBuZXh0IG1vbnRoIGluIFVUQywgd2hpY2ggaXMgYWxyZWFkeSB0aGUgbmV4dCBtb250aCBpbiBHZXJtYW55OlxuIiwibmFtZSI6ImRhdGVtbjMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "dateqtr1_single": { - "request": "LS0tCm5hbWU6IGRhdGVxdHIxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfUVVBUlRFUigiMjAyMC0wOC0yOSIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1FVQVJURVIoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAzIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRlcXRyMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVxdHIxCmRlc2NyaXB0aW9uOiB8CiAgRGV0ZXJtaW5lIHRoZSBxdWFydGVyIG9mIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX1FVQVJURVIoIjIwMjAtMDgtMjkiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1FVQVJURVIoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiWyBcbiAgMyBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJEZXRlcm1pbmUgdGhlIHF1YXJ0ZXIgb2YgYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVxdHIxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + }, + "dateqtr2_single": { + "request": "LS0tCm5hbWU6IGRhdGVxdHIyCmRlc2NyaXB0aW9uOiB8CiAgRGV0ZXJtaW5lIHRoZSBxdWFydGVyIG9mIGEgZGF0ZSB0aW1lIHN0cmluZywgd2l0aCBhIHBvaW50IGluIHRpbWUgb25lIGhvdXIKICBiZWZvcmUgdGhlIG5leHQgcXVhcnRlciBpbiBVVEMsIHdoaWNoIGlzIGFscmVhZHkgdGhlIG5leHQgcXVhcnRlciBpbiBHZXJtYW55OgotLS0KUkVUVVJOIERBVEVfUVVBUlRFUigiMjAyMy0xMi0zMVQyMzowMDowMC4wMDBaIiwgIkV1cm9wZS9CZXJsaW4iKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1FVQVJURVIoXCIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFpcIiwgXCJFdXJvcGUvQmVybGluXCIpIiwib3V0cHV0IjoiWyBcbiAgMSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJEZXRlcm1pbmUgdGhlIHF1YXJ0ZXIgb2YgYSBkYXRlIHRpbWUgc3RyaW5nLCB3aXRoIGEgcG9pbnQgaW4gdGltZSBvbmUgaG91clxuYmVmb3JlIHRoZSBuZXh0IHF1YXJ0ZXIgaW4gVVRDLCB3aGljaCBpcyBhbHJlYWR5IHRoZSBuZXh0IHF1YXJ0ZXIgaW4gR2VybWFueTpcbiIsIm5hbWUiOiJkYXRlcXRyMiIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" }, "datesec1_single": { - "request": "LS0tCm5hbWU6IGRhdGVzZWMxCmRlc2NyaXB0aW9uOiAnJwotLS0KUkVUVVJOIERBVEVfU0VDT05EKCIyMDIwLTA4LTI5VDE2OjMwOjA1LjEyMyIp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1NFQ09ORChcIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzXCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICA1IFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRlc2VjMSIsInR5cGUiOiJzaW5nbGUiLCJyZW5kZXIiOiJpbnB1dC9vdXRwdXQifX0K" + "request": "LS0tCm5hbWU6IGRhdGVzZWMxCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgc2Vjb25kIG9mIGEgZGF0ZSB0aW1lIHN0cmluZzoKLS0tClJFVFVSTiBEQVRFX1NFQ09ORCgiMjAyMC0wOC0yOVQxNjozMDowNS4xMjMiKQ==", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1NFQ09ORChcIjIwMjAtMDgtMjlUMTY6MzA6MDUuMTIzXCIpIiwib3V0cHV0IjoiWyBcbiAgNSBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSBzZWNvbmQgb2YgYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGVzZWMxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + }, + "datesec2_single": { + "request": "LS0tCm5hbWU6IGRhdGVzZWMyCmRlc2NyaXB0aW9uOiB8CiAgRXh0cmFjdCB0aGUgc2Vjb25kIG9mIGEgVW5peCB0aW1lc3RhbXA6Ci0tLQpSRVRVUk4gREFURV9TRUNPTkQoMTIzNDU2Nzg5MCk=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1NFQ09ORCgxMjM0NTY3ODkwKSIsIm91dHB1dCI6IlsgXG4gIDcgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXh0cmFjdCB0aGUgc2Vjb25kIG9mIGEgVW5peCB0aW1lc3RhbXA6XG4iLCJuYW1lIjoiZGF0ZXNlYzIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "dateyr1_single": { - "request": "LS0tCm5hbWU6IGRhdGV5cjEKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9ZRUFSKCIyMDIwLTA4LTI5Iik=", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1lFQVIoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiW29iamVjdCBBcmFuZ29RdWVyeUN1cnNvciwgY291bnQ6IDEsIGNhY2hlZDogZmFsc2UsIGhhc01vcmU6IGZhbHNlXVxuXG5bIFxuICAyMDIwIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IiIsIm5hbWUiOiJkYXRleXIxIiwidHlwZSI6InNpbmdsZSIsInJlbmRlciI6ImlucHV0L291dHB1dCJ9fQo=" + "request": "LS0tCm5hbWU6IGRhdGV5cjEKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSB5ZWFyIGZyb20gYSBkYXRlIHRpbWUgc3RyaW5nOgotLS0KUkVUVVJOIERBVEVfWUVBUigiMjAyMC0wOC0yOSIp", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1lFQVIoXCIyMDIwLTA4LTI5XCIpIiwib3V0cHV0IjoiWyBcbiAgMjAyMCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSB5ZWFyIGZyb20gYSBkYXRlIHRpbWUgc3RyaW5nOlxuIiwibmFtZSI6ImRhdGV5cjEiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "dateyr2_single": { - "request": "LS0tCm5hbWU6IGRhdGV5cjIKZGVzY3JpcHRpb246ICcnCi0tLQpSRVRVUk4gREFURV9ZRUFSKDAp", - "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1lFQVIoMCkiLCJvdXRwdXQiOiJbb2JqZWN0IEFyYW5nb1F1ZXJ5Q3Vyc29yLCBjb3VudDogMSwgY2FjaGVkOiBmYWxzZSwgaGFzTW9yZTogZmFsc2VdXG5cblsgXG4gIDE5NzAgXG5dIiwiZXJyb3IiOiIiLCJvcHRpb25zIjp7ImRlc2NyaXB0aW9uIjoiIiwibmFtZSI6ImRhdGV5cjIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + "request": "LS0tCm5hbWU6IGRhdGV5cjIKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSB5ZWFyIGZyb20gYSBVbml4IHRpbWVzdGFtcDoKLS0tClJFVFVSTiBEQVRFX1lFQVIoMCk=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1lFQVIoMCkiLCJvdXRwdXQiOiJbIFxuICAxOTcwIFxuXSIsImVycm9yIjoiIiwib3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkV4dHJhY3QgdGhlIHllYXIgZnJvbSBhIFVuaXggdGltZXN0YW1wOlxuIiwibmFtZSI6ImRhdGV5cjIiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" + }, + "dateyr3_single": { + "request": "LS0tCm5hbWU6IGRhdGV5cjMKZGVzY3JpcHRpb246IHwKICBFeHRyYWN0IHRoZSB5ZWFyIGZyb20gYSBkYXRlIHRpbWUgc3RyaW5nLCB3aXRoIGEgcG9pbnQgaW4gdGltZSBvbmUgaG91ciBiZWZvcmUKICBOZXcgWWVhcidzIERheSBpbiBVVEMsIHdoaWNoIGlzIGFscmVhZHkgTmV3IFllYXIgaW4gR2VybWFueToKLS0tClJFVFVSTiBEQVRFX1lFQVIoIjIwMjMtMTItMzFUMjM6MDA6MDAuMDAwWiIsICJFdXJvcGUvQmVybGluIik=", + "response": "eyJpbnB1dCI6IlJFVFVSTiBEQVRFX1lFQVIoXCIyMDIzLTEyLTMxVDIzOjAwOjAwLjAwMFpcIiwgXCJFdXJvcGUvQmVybGluXCIpIiwib3V0cHV0IjoiWyBcbiAgMjAyNCBcbl0iLCJlcnJvciI6IiIsIm9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJFeHRyYWN0IHRoZSB5ZWFyIGZyb20gYSBkYXRlIHRpbWUgc3RyaW5nLCB3aXRoIGEgcG9pbnQgaW4gdGltZSBvbmUgaG91ciBiZWZvcmVcbk5ldyBZZWFyJ3MgRGF5IGluIFVUQywgd2hpY2ggaXMgYWxyZWFkeSBOZXcgWWVhciBpbiBHZXJtYW55OlxuIiwibmFtZSI6ImRhdGV5cjMiLCJ0eXBlIjoic2luZ2xlIiwicmVuZGVyIjoiaW5wdXQvb3V0cHV0In19Cg==" }, "dbId_single": { "request": "LS0tCm5hbWU6IGRiSWQKZGVzY3JpcHRpb246ICcnCi0tLQpyZXF1aXJlKCJAYXJhbmdvZGIiKS5kYi5faWQoKTs=",