From 708a426fbc48a4cbb5ce0fddd7adf4123452d4ee Mon Sep 17 00:00:00 2001 From: phani Date: Mon, 25 May 2020 20:11:41 +0100 Subject: [PATCH] tests to unset ttl --- docs/assets/js/search.json | 2 +- ...rror_invalidttlerror_.invalidttlerror.html | 2 +- ...initialisederror_.notinitialisederror.html | 2 +- .../_redisconnectionpool_.redispool.html | 36 +++---- docs/classes/_redisstore_.redisstore.html | 95 ++++++++++++------- .../_helpers_createlogger_.logger.html | 10 +- ..._redisconnectionpool_.redispoolstatus.html | 8 +- docs/modules/_helpers_createlogger_.html | 2 +- docs/modules/_rediscache_.html | 60 ++++++++---- docs/modules/_redisconnectionpool_.html | 6 +- docs/modules/_redisstore_.html | 2 +- src/RedisStore.test.ts | 25 +++++ src/RedisStore.ts | 12 ++- src/error/InvalidTtlError.ts | 5 +- src/error/NotInitialisedError.ts | 5 +- src/helpers/validatedTtl.ts | 2 +- src/redisCache.test.ts | 11 ++- src/redisCache.ts | 6 ++ 18 files changed, 200 insertions(+), 91 deletions(-) diff --git a/docs/assets/js/search.json b/docs/assets/js/search.json index d701b9f..d64ad48 100644 --- a/docs/assets/js/search.json +++ b/docs/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"1":"Module","32":"Variable","64":"Function","65536":"Type literal","16777216":"Reference"},"rows":[{"id":0,"kind":16777216,"name":"createLogger","url":"modules/_helpers_index_.html#createlogger","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":1,"kind":16777216,"name":"Logger","url":"modules/_helpers_index_.html#logger","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":2,"kind":16777216,"name":"genRandomStr","url":"modules/_helpers_index_.html#genrandomstr","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":3,"kind":16777216,"name":"validatedTtl","url":"modules/_helpers_index_.html#validatedttl","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":4,"kind":65536,"name":"__type","url":"classes/_redisconnectionpool_.redispool.html#logger.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"RedisConnectionPool\".RedisPool.logger"},{"id":5,"kind":65536,"name":"__type","url":"classes/_redisstore_.redisstore.html#logger.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"RedisStore\".RedisStore.logger"},{"id":6,"kind":1,"name":"\"redisCache\"","url":"modules/_rediscache_.html","classes":"tsd-kind-module"},{"id":7,"kind":32,"name":"debug","url":"modules/_rediscache_.html#debug","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"redisCache\""},{"id":8,"kind":32,"name":"store","url":"modules/_rediscache_.html#store","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"redisCache\""},{"id":9,"kind":64,"name":"init","url":"modules/_rediscache_.html#init","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":10,"kind":64,"name":"getStore","url":"modules/_rediscache_.html#getstore","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":11,"kind":64,"name":"getName","url":"modules/_rediscache_.html#getname","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":12,"kind":64,"name":"getRedisOptions","url":"modules/_rediscache_.html#getredisoptions","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":13,"kind":64,"name":"getPoolOptions","url":"modules/_rediscache_.html#getpooloptions","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":14,"kind":64,"name":"getStatus","url":"modules/_rediscache_.html#getstatus","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":15,"kind":64,"name":"getDefaultTtlInS","url":"modules/_rediscache_.html#getdefaultttlins","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":16,"kind":64,"name":"setDefaultTtlInS","url":"modules/_rediscache_.html#setdefaultttlins","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":17,"kind":64,"name":"set","url":"modules/_rediscache_.html#set","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":18,"kind":64,"name":"getset","url":"modules/_rediscache_.html#getset","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":19,"kind":64,"name":"get","url":"modules/_rediscache_.html#get","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":20,"kind":64,"name":"keys","url":"modules/_rediscache_.html#keys","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":21,"kind":64,"name":"del","url":"modules/_rediscache_.html#del","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":22,"kind":64,"name":"deleteAll","url":"modules/_rediscache_.html#deleteall","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":23,"kind":64,"name":"wrap","url":"modules/_rediscache_.html#wrap","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,28.134]],["parent/0",[1,1.685]],["name/1",[2,28.134]],["parent/1",[1,1.685]],["name/2",[3,28.134]],["parent/2",[1,1.685]],["name/3",[4,28.134]],["parent/3",[1,1.685]],["name/4",[5,23.026]],["parent/4",[6,2.764]],["name/5",[5,23.026]],["parent/5",[7,2.764]],["name/6",[8,3.011]],["parent/6",[]],["name/7",[9,28.134]],["parent/7",[8,0.296]],["name/8",[10,28.134]],["parent/8",[8,0.296]],["name/9",[11,28.134]],["parent/9",[8,0.296]],["name/10",[12,28.134]],["parent/10",[8,0.296]],["name/11",[13,28.134]],["parent/11",[8,0.296]],["name/12",[14,28.134]],["parent/12",[8,0.296]],["name/13",[15,28.134]],["parent/13",[8,0.296]],["name/14",[16,28.134]],["parent/14",[8,0.296]],["name/15",[17,28.134]],["parent/15",[8,0.296]],["name/16",[18,28.134]],["parent/16",[8,0.296]],["name/17",[19,28.134]],["parent/17",[8,0.296]],["name/18",[20,28.134]],["parent/18",[8,0.296]],["name/19",[21,28.134]],["parent/19",[8,0.296]],["name/20",[22,28.134]],["parent/20",[8,0.296]],["name/21",[23,28.134]],["parent/21",[8,0.296]],["name/22",[24,28.134]],["parent/22",[8,0.296]],["name/23",[25,28.134]],["parent/23",[8,0.296]]],"invertedIndex":[["__type",{"_index":5,"name":{"4":{},"5":{}},"parent":{}}],["createlogger",{"_index":0,"name":{"0":{}},"parent":{}}],["debug",{"_index":9,"name":{"7":{}},"parent":{}}],["del",{"_index":23,"name":{"21":{}},"parent":{}}],["deleteall",{"_index":24,"name":{"22":{}},"parent":{}}],["genrandomstr",{"_index":3,"name":{"2":{}},"parent":{}}],["get",{"_index":21,"name":{"19":{}},"parent":{}}],["getdefaultttlins",{"_index":17,"name":{"15":{}},"parent":{}}],["getname",{"_index":13,"name":{"11":{}},"parent":{}}],["getpooloptions",{"_index":15,"name":{"13":{}},"parent":{}}],["getredisoptions",{"_index":14,"name":{"12":{}},"parent":{}}],["getset",{"_index":20,"name":{"18":{}},"parent":{}}],["getstatus",{"_index":16,"name":{"14":{}},"parent":{}}],["getstore",{"_index":12,"name":{"10":{}},"parent":{}}],["helpers/index",{"_index":1,"name":{},"parent":{"0":{},"1":{},"2":{},"3":{}}}],["init",{"_index":11,"name":{"9":{}},"parent":{}}],["keys",{"_index":22,"name":{"20":{}},"parent":{}}],["logger",{"_index":2,"name":{"1":{}},"parent":{}}],["rediscache",{"_index":8,"name":{"6":{}},"parent":{"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{}}}],["redisconnectionpool\".redispool.logger",{"_index":6,"name":{},"parent":{"4":{}}}],["redisstore\".redisstore.logger",{"_index":7,"name":{},"parent":{"5":{}}}],["set",{"_index":19,"name":{"17":{}},"parent":{}}],["setdefaultttlins",{"_index":18,"name":{"16":{}},"parent":{}}],["store",{"_index":10,"name":{"8":{}},"parent":{}}],["validatedttl",{"_index":4,"name":{"3":{}},"parent":{}}],["wrap",{"_index":25,"name":{"23":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"1":"Module","32":"Variable","64":"Function","65536":"Type literal","16777216":"Reference"},"rows":[{"id":0,"kind":16777216,"name":"createLogger","url":"modules/_helpers_index_.html#createlogger","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":1,"kind":16777216,"name":"Logger","url":"modules/_helpers_index_.html#logger","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":2,"kind":16777216,"name":"genRandomStr","url":"modules/_helpers_index_.html#genrandomstr","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":3,"kind":16777216,"name":"validatedTtl","url":"modules/_helpers_index_.html#validatedttl","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"\"helpers/index\""},{"id":4,"kind":65536,"name":"__type","url":"classes/_redisconnectionpool_.redispool.html#logger.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"RedisConnectionPool\".RedisPool.logger"},{"id":5,"kind":65536,"name":"__type","url":"classes/_redisstore_.redisstore.html#logger.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"RedisStore\".RedisStore.logger"},{"id":6,"kind":1,"name":"\"redisCache\"","url":"modules/_rediscache_.html","classes":"tsd-kind-module"},{"id":7,"kind":32,"name":"debug","url":"modules/_rediscache_.html#debug","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"redisCache\""},{"id":8,"kind":32,"name":"store","url":"modules/_rediscache_.html#store","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"redisCache\""},{"id":9,"kind":64,"name":"init","url":"modules/_rediscache_.html#init","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":10,"kind":64,"name":"getStore","url":"modules/_rediscache_.html#getstore","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":11,"kind":64,"name":"getName","url":"modules/_rediscache_.html#getname","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":12,"kind":64,"name":"getRedisOptions","url":"modules/_rediscache_.html#getredisoptions","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":13,"kind":64,"name":"getPoolOptions","url":"modules/_rediscache_.html#getpooloptions","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":14,"kind":64,"name":"getStatus","url":"modules/_rediscache_.html#getstatus","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":15,"kind":64,"name":"getDefaultTtlInS","url":"modules/_rediscache_.html#getdefaultttlins","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":16,"kind":64,"name":"setDefaultTtlInS","url":"modules/_rediscache_.html#setdefaultttlins","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":17,"kind":64,"name":"unsetDefaultTtlInS","url":"modules/_rediscache_.html#unsetdefaultttlins","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":18,"kind":64,"name":"set","url":"modules/_rediscache_.html#set","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":19,"kind":64,"name":"getset","url":"modules/_rediscache_.html#getset","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":20,"kind":64,"name":"get","url":"modules/_rediscache_.html#get","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":21,"kind":64,"name":"keys","url":"modules/_rediscache_.html#keys","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":22,"kind":64,"name":"del","url":"modules/_rediscache_.html#del","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":23,"kind":64,"name":"deleteAll","url":"modules/_rediscache_.html#deleteall","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""},{"id":24,"kind":64,"name":"wrap","url":"modules/_rediscache_.html#wrap","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"redisCache\""}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,28.526]],["parent/0",[1,1.725]],["name/1",[2,28.526]],["parent/1",[1,1.725]],["name/2",[3,28.526]],["parent/2",[1,1.725]],["name/3",[4,28.526]],["parent/3",[1,1.725]],["name/4",[5,23.418]],["parent/4",[6,2.805]],["name/5",[5,23.418]],["parent/5",[7,2.805]],["name/6",[8,2.877]],["parent/6",[]],["name/7",[9,28.526]],["parent/7",[8,0.283]],["name/8",[10,28.526]],["parent/8",[8,0.283]],["name/9",[11,28.526]],["parent/9",[8,0.283]],["name/10",[12,28.526]],["parent/10",[8,0.283]],["name/11",[13,28.526]],["parent/11",[8,0.283]],["name/12",[14,28.526]],["parent/12",[8,0.283]],["name/13",[15,28.526]],["parent/13",[8,0.283]],["name/14",[16,28.526]],["parent/14",[8,0.283]],["name/15",[17,28.526]],["parent/15",[8,0.283]],["name/16",[18,28.526]],["parent/16",[8,0.283]],["name/17",[19,28.526]],["parent/17",[8,0.283]],["name/18",[20,28.526]],["parent/18",[8,0.283]],["name/19",[21,28.526]],["parent/19",[8,0.283]],["name/20",[22,28.526]],["parent/20",[8,0.283]],["name/21",[23,28.526]],["parent/21",[8,0.283]],["name/22",[24,28.526]],["parent/22",[8,0.283]],["name/23",[25,28.526]],["parent/23",[8,0.283]],["name/24",[26,28.526]],["parent/24",[8,0.283]]],"invertedIndex":[["__type",{"_index":5,"name":{"4":{},"5":{}},"parent":{}}],["createlogger",{"_index":0,"name":{"0":{}},"parent":{}}],["debug",{"_index":9,"name":{"7":{}},"parent":{}}],["del",{"_index":24,"name":{"22":{}},"parent":{}}],["deleteall",{"_index":25,"name":{"23":{}},"parent":{}}],["genrandomstr",{"_index":3,"name":{"2":{}},"parent":{}}],["get",{"_index":22,"name":{"20":{}},"parent":{}}],["getdefaultttlins",{"_index":17,"name":{"15":{}},"parent":{}}],["getname",{"_index":13,"name":{"11":{}},"parent":{}}],["getpooloptions",{"_index":15,"name":{"13":{}},"parent":{}}],["getredisoptions",{"_index":14,"name":{"12":{}},"parent":{}}],["getset",{"_index":21,"name":{"19":{}},"parent":{}}],["getstatus",{"_index":16,"name":{"14":{}},"parent":{}}],["getstore",{"_index":12,"name":{"10":{}},"parent":{}}],["helpers/index",{"_index":1,"name":{},"parent":{"0":{},"1":{},"2":{},"3":{}}}],["init",{"_index":11,"name":{"9":{}},"parent":{}}],["keys",{"_index":23,"name":{"21":{}},"parent":{}}],["logger",{"_index":2,"name":{"1":{}},"parent":{}}],["rediscache",{"_index":8,"name":{"6":{}},"parent":{"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{}}}],["redisconnectionpool\".redispool.logger",{"_index":6,"name":{},"parent":{"4":{}}}],["redisstore\".redisstore.logger",{"_index":7,"name":{},"parent":{"5":{}}}],["set",{"_index":20,"name":{"18":{}},"parent":{}}],["setdefaultttlins",{"_index":18,"name":{"16":{}},"parent":{}}],["store",{"_index":10,"name":{"8":{}},"parent":{}}],["unsetdefaultttlins",{"_index":19,"name":{"17":{}},"parent":{}}],["validatedttl",{"_index":4,"name":{"3":{}},"parent":{}}],["wrap",{"_index":26,"name":{"24":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/classes/_error_invalidttlerror_.invalidttlerror.html b/docs/classes/_error_invalidttlerror_.invalidttlerror.html index 146d4ab..96f839d 100644 --- a/docs/classes/_error_invalidttlerror_.invalidttlerror.html +++ b/docs/classes/_error_invalidttlerror_.invalidttlerror.html @@ -2793,7 +2793,7 @@

constructor

  • Parameters

    diff --git a/docs/classes/_error_notinitialisederror_.notinitialisederror.html b/docs/classes/_error_notinitialisederror_.notinitialisederror.html index 2110718..4eada8b 100644 --- a/docs/classes/_error_notinitialisederror_.notinitialisederror.html +++ b/docs/classes/_error_notinitialisederror_.notinitialisederror.html @@ -2793,7 +2793,7 @@

    constructor

  • Parameters

    diff --git a/docs/classes/_redisconnectionpool_.redispool.html b/docs/classes/_redisconnectionpool_.redispool.html index 4bbef16..8fff6be 100644 --- a/docs/classes/_redisconnectionpool_.redispool.html +++ b/docs/classes/_redisconnectionpool_.redispool.html @@ -2869,7 +2869,7 @@

    constructor

  • @@ -2907,7 +2907,7 @@

    logger

    logger: { debug: Function; error: Function; info: Function; log: Function; warn: Function }
    @@ -2937,7 +2937,7 @@

    name

    name: string
    @@ -2947,7 +2947,7 @@

    pool

    pool: Pool<any>
    @@ -2957,7 +2957,7 @@

    poolOptions

    poolOptions: PoolOptions
    @@ -2967,7 +2967,7 @@

    redisOptions

    redisOptions: RedisOptions
    @@ -2984,7 +2984,7 @@

    acquire

  • @@ -3026,7 +3026,7 @@

    availableCount

  • @@ -3049,7 +3049,7 @@

    destroy

  • @@ -3085,7 +3085,7 @@

    drain

  • @@ -3112,7 +3112,7 @@

    getName

  • @@ -3135,7 +3135,7 @@

    getPoolOptions

  • @@ -3158,7 +3158,7 @@

    getPoolSize

  • @@ -3181,7 +3181,7 @@

    getRedisOptions

  • @@ -3204,7 +3204,7 @@

    pendingCount

  • @@ -3227,7 +3227,7 @@

    release

  • @@ -3263,7 +3263,7 @@

    sendCommand

  • @@ -3305,7 +3305,7 @@

    status

  • diff --git a/docs/classes/_redisstore_.redisstore.html b/docs/classes/_redisstore_.redisstore.html index cb9c083..bbdc946 100644 --- a/docs/classes/_redisstore_.redisstore.html +++ b/docs/classes/_redisstore_.redisstore.html @@ -2824,6 +2824,9 @@
  • status
  • +
  • + unsetDefaultTtlInS +
  • @@ -2903,6 +2906,7 @@

    Methods

  • set
  • setDefaultTtlInS
  • status
  • +
  • unsetDefaultTtlInS
  • @@ -2921,7 +2925,7 @@

    constructor

    @@ -2962,7 +2966,7 @@

    defaulTtlInS

    defaulTtlInS: number | undefined
    @@ -2972,7 +2976,7 @@

    deleteScriptPromise

    deleteScriptPromise: Promise<any> | null = null
    @@ -2983,7 +2987,7 @@

    logger

    @@ -3014,7 +3018,7 @@

    name

    @@ -3025,7 +3029,7 @@

    pool

    @@ -3036,7 +3040,7 @@

    poolOptions

    @@ -3047,7 +3051,7 @@

    redisOptions

    @@ -3064,7 +3068,7 @@

    Private _executeDelete
    @@ -3100,7 +3104,7 @@

    Private _loadDeleteAl
  • @@ -3124,7 +3128,7 @@

    acquire

    @@ -3167,7 +3171,7 @@

    availableCount

    @@ -3190,7 +3194,7 @@

    del

  • @@ -3222,7 +3226,7 @@

    deleteAll

  • @@ -3255,7 +3259,7 @@

    destroy

    @@ -3292,7 +3296,7 @@

    drain

    @@ -3319,7 +3323,7 @@

    expire

  • @@ -3357,7 +3361,7 @@

    get

  • @@ -3393,7 +3397,7 @@

    getDefaultTtlInS

  • @@ -3417,7 +3421,7 @@

    getName

    @@ -3441,7 +3445,7 @@

    getPoolOptions

    @@ -3465,7 +3469,7 @@

    getPoolSize

    @@ -3489,7 +3493,7 @@

    getRedisOptions

    @@ -3512,7 +3516,7 @@

    getTtl

  • @@ -3544,7 +3548,7 @@

    getset

  • @@ -3591,7 +3595,7 @@

    keys

  • @@ -3624,7 +3628,7 @@

    pendingCount

    @@ -3647,7 +3651,7 @@

    ping

  • @@ -3680,7 +3684,7 @@

    release

    @@ -3717,7 +3721,7 @@

    sendCommand

    @@ -3759,7 +3763,7 @@

    set

  • @@ -3803,12 +3807,12 @@

    setDefaultTtlInS

  • -

    Sets the ttlInSeconds

    +

    Sets the defaulTtlInS

    Parameters

    @@ -3833,7 +3837,7 @@

    status

    @@ -3846,6 +3850,29 @@

    Returns + +

    unsetDefaultTtlInS

    +
      +
    • unsetDefaultTtlInS(): boolean
    • +
    +
      +
    • + +
      +
      +

      Unsets the defaulTtlInS

      +
      +
      +

      Returns boolean

      +

      ttl

      +
    • +
    +