{
  "_id": "6a197120acfb0bcc41ded82f",
  "Package": "S4Arrays",
  "Title": "Foundation of array-like containers in Bioconductor",
  "Description": "The S4Arrays package defines the Array virtual class to be\nextended by other S4 classes that wish to implement a container\nwith an array-like semantic. It also provides: (1) low-level\nfunctionality meant to help the developer of such container to\nimplement basic operations like display, subsetting, or\ncoercion of their array-like objects to an ordinary matrix or\narray, and (2) a framework that facilitates block processing of\narray-like objects (typically on-disk objects).",
  "biocViews": "Infrastructure, DataRepresentation",
  "URL": "https://bioconductor.org/packages/S4Arrays",
  "BugReports": "https://github.com/Bioconductor/S4Arrays/issues",
  "Version": "1.12.0",
  "License": "Artistic-2.0",
  "Encoding": "UTF-8",
  "Authors@R": "c(\nperson(\"Hervé\", \"Pagès\", role=c(\"aut\", \"cre\"),\nemail=\"hpages.on.github@gmail.com\",\ncomment=c(ORCID=\"0009-0002-8272-4522\")),\nperson(\"Jacques\", \"Serizay\", role=\"ctb\"))",
  "VignetteBuilder": "knitr",
  "Collate": "utils.R rowsum.R abind.R aperm2.R array_selection.R\nNindex-utils.R arep.R array_recycling.R Array-class.R\ndim-tuning-utils.R Array-subsetting.R Array-subassignment.R\nArrayGrid-class.R mapToGrid.R extract_array.R type.R\nis_sparse.R read_block.R write_block.R show-utils.R\nArray-kronecker-methods.R zzz.R",
  "Repository": "https://bioc-release.r-universe.dev",
  "Date/Publication": "2026-04-28 13:00:53 UTC",
  "RemoteUrl": "https://github.com/bioc/S4Arrays",
  "RemoteRef": "RELEASE_3_23",
  "RemoteSha": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-29 09:00:19 UTC",
    "User": "root"
  },
  "Author": "Hervé Pagès [aut, cre] (ORCID: <https://orcid.org/0009-0002-8272-4522>),\nJacques Serizay [ctb]",
  "Maintainer": "Hervé Pagès <hpages.on.github@gmail.com>",
  "MD5sum": "c9998cc452a2d5a2e1021170297fd516",
  "_user": "bioc-release",
  "_type": "src",
  "_file": "S4Arrays_1.12.0.tar.gz",
  "_fileid": "922cd9419c77eb50d6956382651604219ab8801d1ec9489041f7ebb726987666",
  "_filesize": 275611,
  "_sha256": "922cd9419c77eb50d6956382651604219ab8801d1ec9489041f7ebb726987666",
  "_created": "2026-05-29T09:00:19.000Z",
  "_published": "2026-05-29T10:57:36.586Z",
  "_jobs": [
    {
      "job": 78470369623,
      "time": 189,
      "config": "bioc-checks",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287062270"
    },
    {
      "job": 78470369643,
      "time": 219,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7287072126"
    },
    {
      "job": 78470369659,
      "time": 236,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7287076678"
    },
    {
      "job": 78470369641,
      "time": 217,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287071360"
    },
    {
      "job": 78470369635,
      "time": 253,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287082834"
    },
    {
      "job": 78470369687,
      "time": 167,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7289062249"
    },
    {
      "job": 78470369671,
      "time": 476,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7287805483"
    },
    {
      "job": 78470369697,
      "time": 152,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7289035507"
    },
    {
      "job": 78470369656,
      "time": 529,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287819825"
    },
    {
      "job": 78469721752,
      "time": 251,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7287004610"
    },
    {
      "job": 78470369664,
      "time": 133,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7287045849"
    },
    {
      "job": 78470369651,
      "time": 204,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7287067334"
    },
    {
      "job": 78470369702,
      "time": 212,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7287069891"
    },
    {
      "job": 78470369658,
      "time": 201,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287066543"
    }
  ],
  "_bioccheck": {
    "error": 0,
    "warning": 0,
    "note": 10
  },
  "_buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/bioc/S4Arrays",
  "_commit": {
    "id": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
    "author": "A Wokaty <andres.wokaty@sph.cuny.edu>",
    "committer": "A Wokaty <andres.wokaty@sph.cuny.edu>",
    "message": "bump x.y.z version to even y prior to creation of RELEASE_3_23 branch\n",
    "time": 1777381253
  },
  "_maintainer": {
    "name": "Hervé Pagès",
    "email": "hpages.on.github@gmail.com",
    "login": "hpages",
    "linkedin": "in/hervé-pagès-5038527",
    "description": "",
    "uuid": 8810451
  },
  "_distro": "noble",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3.0",
      "role": "Depends"
    },
    {
      "package": "methods",
      "role": "Depends"
    },
    {
      "package": "Matrix",
      "role": "Depends"
    },
    {
      "package": "abind",
      "role": "Depends"
    },
    {
      "package": "BiocGenerics",
      "version": ">= 0.45.2",
      "role": "Depends"
    },
    {
      "package": "S4Vectors",
      "version": ">= 0.47.6",
      "role": "Depends"
    },
    {
      "package": "IRanges",
      "role": "Depends"
    },
    {
      "package": "S4Vectors",
      "role": "LinkingTo"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "BiocParallel",
      "role": "Suggests"
    },
    {
      "package": "SparseArray",
      "version": ">= 0.0.4",
      "role": "Suggests"
    },
    {
      "package": "DelayedArray",
      "role": "Suggests"
    },
    {
      "package": "HDF5Array",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "BiocStyle",
      "role": "Suggests"
    }
  ],
  "_owner": "bioc",
  "_selfowned": false,
  "_usedby": 1373,
  "_updates": [
    {
      "week": "2025-22",
      "n": 1
    },
    {
      "week": "2025-35",
      "n": 1
    },
    {
      "week": "2025-43",
      "n": 1
    },
    {
      "week": "2025-44",
      "n": 4
    },
    {
      "week": "2025-48",
      "n": 1
    },
    {
      "week": "2026-18",
      "n": 2
    }
  ],
  "_tags": [],
  "_bioc": [
    {
      "branch": "devel",
      "version": "1.13.0",
      "bioc": "3.24"
    },
    {
      "branch": "release",
      "version": "1.12.0",
      "bioc": "3.23"
    }
  ],
  "_topics": [
    "infrastructure",
    "datarepresentation",
    "bioconductor-package",
    "core-package",
    "u24ca289073"
  ],
  "_stars": 7,
  "_contributors": [
    {
      "user": "hpages",
      "count": 226,
      "uuid": 8810451
    },
    {
      "user": "jwokaty",
      "count": 14,
      "uuid": 1744257
    }
  ],
  "_userbio": {
    "uuid": 2286807,
    "type": "organization",
    "name": "Bioconductor",
    "description": "Software for the analysis and comprehension of high-throughput genomic data"
  },
  "_downloads": {
    "count": 82274,
    "source": "https://www.bioconductor.org/packages/stats/bioc/S4Arrays"
  },
  "_devurl": "https://github.com/bioconductor/s4arrays",
  "_searchresults": 12,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/S4Arrays.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/bioconductor/s4arrays",
  "_realowner": "bioc",
  "_cranurl": false,
  "_exports": [
    "abind",
    "acbind",
    "aperm",
    "aperm.ArbitraryArrayGrid",
    "aperm.DummyArrayGrid",
    "aperm.RegularArrayGrid",
    "aperm2",
    "arbind",
    "ArbitraryArrayGrid",
    "arep_each",
    "arep_times",
    "ArrayViewport",
    "as_tile",
    "as.array.Array",
    "as.character.Array",
    "as.character.ArrayGrid",
    "as.complex.Array",
    "as.data.frame",
    "as.data.frame.Array",
    "as.integer.Array",
    "as.logical.Array",
    "as.matrix",
    "as.matrix.Array",
    "as.numeric.Array",
    "as.raw.Array",
    "as.vector.Array",
    "bindROWS",
    "cbind",
    "coerce",
    "colsum",
    "dims",
    "downsample",
    "drop",
    "DummyArrayGrid",
    "DummyArrayViewport",
    "end",
    "extract_array",
    "is_sparse",
    "is_sparse<-",
    "isEmpty",
    "kronecker",
    "kronecker2",
    "Lindex2Mindex",
    "makeNindexFromArrayViewport",
    "mapToGrid",
    "mapToRef",
    "maxlength",
    "mean",
    "Mindex2Lindex",
    "nchar",
    "Ops",
    "ranges",
    "rbind",
    "read_block",
    "read_block_as_dense",
    "refdim",
    "RegularArrayGrid",
    "rowsum",
    "show",
    "showAsCell",
    "start",
    "subassign_Array_by_Lindex",
    "subassign_Array_by_logical_array",
    "subassign_Array_by_Mindex",
    "subassign_Array_by_Nindex",
    "subset_Array_by_Lindex",
    "subset_Array_by_logical_array",
    "subset_Array_by_Mindex",
    "subset_Array_by_Nindex",
    "t",
    "t.Array",
    "tune_Array_dims",
    "type",
    "var",
    "which",
    "width",
    "write_block"
  ],
  "_help": [
    {
      "page": "aperm2",
      "title": "Generalized permutation of the dimensions of an array",
      "topics": [
        "aperm2"
      ]
    },
    {
      "page": "arep",
      "title": "Replicate array elements",
      "topics": [
        "arep",
        "arep_each",
        "arep_each,ANY-method",
        "arep_times",
        "arep_times,ANY-method"
      ]
    },
    {
      "page": "array_selection",
      "title": "Manipulation of array selections",
      "topics": [
        "array selection",
        "array selections",
        "array_selection",
        "array_selections",
        "L-index",
        "Lindex",
        "Lindex2Mindex",
        "M-index",
        "Mindex",
        "Mindex2Lindex",
        "N-index",
        "Nindex"
      ]
    },
    {
      "page": "array_recycling",
      "title": "Multidimensional array recycling",
      "topics": [
        "array_recycling",
        "as_tile",
        "class:tile",
        "Ops,array,tile-method",
        "Ops,tile,array-method",
        "Ops,tile,tile-method",
        "tile",
        "tile-class"
      ]
    },
    {
      "page": "Array-class",
      "title": "Array objects",
      "topics": [
        "Array",
        "Array-class",
        "as.matrix,Array-method",
        "as.matrix.Array",
        "class:Array",
        "isEmpty,Array-method",
        "length,Array-method",
        "showAsCell,Array-method",
        "t,Array-method",
        "t.Array",
        "[[,Array-method"
      ]
    },
    {
      "page": "Array-kronecker-methods",
      "title": "Kronecker products on Array objects",
      "topics": [
        "Array-kronecker",
        "Array-kronecker-methods",
        "Array_kronecker",
        "Array_kronecker-methods",
        "kronecker",
        "kronecker,ANY,Array-method",
        "kronecker,Array,ANY-method",
        "kronecker,Array,Array-method",
        "kronecker2"
      ]
    },
    {
      "page": "ArrayGrid-class",
      "title": "ArrayGrid and ArrayViewport objects",
      "topics": [
        "aperm,ArbitraryArrayGrid-method",
        "aperm,DummyArrayGrid-method",
        "aperm,RegularArrayGrid-method",
        "aperm.ArbitraryArrayGrid",
        "aperm.DummyArrayGrid",
        "aperm.RegularArrayGrid",
        "ArbitraryArrayGrid",
        "ArbitraryArrayGrid-class",
        "ArrayGrid",
        "ArrayGrid-class",
        "ArrayViewport",
        "ArrayViewport-class",
        "as.character,ArrayGrid-method",
        "as.character.ArrayGrid",
        "class:ArbitraryArrayGrid",
        "class:ArrayGrid",
        "class:ArrayViewport",
        "class:DummyArrayGrid",
        "class:DummyArrayViewport",
        "class:RegularArrayGrid",
        "class:SafeArrayViewport",
        "classNameForDisplay,ArrayViewport-method",
        "dim,ArbitraryArrayGrid-method",
        "dim,ArrayViewport-method",
        "dim,DummyArrayGrid-method",
        "dim,RegularArrayGrid-method",
        "dims",
        "dims,ArrayGrid-method",
        "downsample",
        "downsample,ArbitraryArrayGrid-method",
        "downsample,RegularArrayGrid-method",
        "DummyArrayGrid",
        "DummyArrayGrid-class",
        "DummyArrayViewport",
        "DummyArrayViewport-class",
        "end,ArrayViewport-method",
        "lengths,ArrayGrid-method",
        "lengths,DummyArrayGrid-method",
        "makeNindexFromArrayViewport",
        "maxlength",
        "maxlength,ANY-method",
        "maxlength,ArbitraryArrayGrid-method",
        "maxlength,RegularArrayGrid-method",
        "ranges,DummyArrayViewport-method",
        "ranges,SafeArrayViewport-method",
        "refdim",
        "refdim,ArbitraryArrayGrid-method",
        "refdim,ArrayViewport-method",
        "refdim,DummyArrayGrid-method",
        "refdim,RegularArrayGrid-method",
        "RegularArrayGrid",
        "RegularArrayGrid-class",
        "SafeArrayViewport",
        "SafeArrayViewport-class",
        "show,ArrayGrid-method",
        "show,ArrayViewport-method",
        "start,ArrayViewport-method",
        "width,ArrayViewport-method"
      ]
    },
    {
      "page": "abind",
      "title": "Combine multidimensional array-like objects",
      "topics": [
        "abind",
        "abind,ANY-method",
        "acbind",
        "acbind,ANY-method",
        "arbind",
        "arbind,ANY-method",
        "bind arrays",
        "bind-arrays"
      ]
    },
    {
      "page": "is_sparse",
      "title": "Check for sparse representation",
      "topics": [
        "is_sparse",
        "is_sparse,ANY-method",
        "is_sparse,CsparseMatrix-method",
        "is_sparse,RsparseMatrix-method",
        "is_sparse,TsparseMatrix-method",
        "is_sparse<-"
      ]
    },
    {
      "page": "read_block",
      "title": "Read array blocks",
      "topics": [
        "read_block",
        "read_block_as_dense",
        "read_block_as_dense,ANY-method"
      ]
    },
    {
      "page": "rowsum",
      "title": "Compute column/row sums of a matrix-like object, for groups of rows/columns",
      "topics": [
        "colsum",
        "colsum,ANY-method",
        "colsum,matrix-method",
        "rowsum"
      ]
    },
    {
      "page": "type",
      "title": "Get the type of the elements of an array-like object",
      "topics": [
        "type",
        "type,ANY-method",
        "type,DataFrame-method"
      ]
    },
    {
      "page": "write_block",
      "title": "Write array blocks",
      "topics": [
        "write_block",
        "write_block,ANY-method"
      ]
    }
  ],
  "_readme": "https://github.com/bioc/S4Arrays/raw/RELEASE_3_23/README.md",
  "_rundeps": [
    "abind",
    "BiocGenerics",
    "generics",
    "IRanges",
    "lattice",
    "Matrix",
    "S4Vectors"
  ],
  "_vignettes": [
    {
      "source": "S4Arrays_quick_overview.Rmd",
      "filename": "S4Arrays_quick_overview.html",
      "title": "A quick overview of the S4Arrays package",
      "author": "Hervé Pagès",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Installation",
        "The Array virtual class",
        "The extract_array() generic function",
        "Block processing of array-like objects",
        "Other functionalities",
        "Session information"
      ],
      "created": "2023-03-24 07:19:07",
      "modified": "2025-02-08 02:02:59",
      "commits": 8
    }
  ],
  "_score": 10.93145494510065,
  "_indexed": false,
  "_nocasepkg": "s4arrays",
  "_universes": [
    "bioc-release"
  ],
  "_indexurl": "https://bioc.r-universe.dev/S4Arrays",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-05-29T09:03:14.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "804dcaf21702d404a98a24ea7983e64a540b1fc13c3b11e8ae5cb5e19edc857d",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-05-29T09:03:31.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "afafcad40e65bfe7df2e375d39220adcd5ba7f2de3840b85253a7bac2b0c6502",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-05-29T09:03:10.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "50bbce4cb98541f874e68af39741462f511d07bdf67ad5ca195ddbe0699700e4",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-05-29T09:03:41.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "e78b1981f590bec0f2a2f96bdcbe42f604ca7588bc1a303191293d83defa53c9",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-05-29T10:56:05.000Z",
      "arch": "aarch64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "6de7b7f465eaaa21d48e2c08f027abd4bcf4b5fb42e2e871a92a571390795f61",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-05-29T09:40:57.000Z",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "b54ebe420e65355a2f214250baf080ca6577368a41ae3777ad2e822dba6ecd7b",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-05-29T10:54:35.000Z",
      "arch": "aarch64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "5e71bbfbd72d778053a15cb55b10e550f9ff56e34f2eea4c35802bf509fb9269",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-05-29T09:41:45.000Z",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "7fd667587437bdeffb4a579b790ab43b6f193754d60fe8e0cabc8ff67e20a73c",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.12.0",
      "date": "2026-05-29T09:03:06.000Z",
      "arch": "emscripten",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "715660901a893c268390236569cf28d9ae8ba306cb4344878fe001bd99695972",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-05-29T09:02:19.000Z",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "4b795f5f6bd7ac531763e8994d2e2538e02e5a04e86592af89907f4e35835031",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-05-29T09:02:39.000Z",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "8eacb1f64b158e9969cdec6f9bb004a83184dce2f65521c24b11eb934214f498",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-05-29T09:02:17.000Z",
      "arch": "x86_64",
      "commit": "b1246fd0b81ac137623ee1c0d6587a59e8ad1073",
      "fileid": "7913e266d18594998fb6820d2cdd8868c9a094c868ab4f14a0d560ece61e442b",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/bioc-release/actions/runs/26628083105"
    }
  ]
}