summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/parted/parted-3.1
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/parted/parted-3.1')
-rw-r--r--meta/recipes-extended/parted/parted-3.1/Makefile285
-rw-r--r--meta/recipes-extended/parted/parted-3.1/fix-deprecated-readline.patch34
-rw-r--r--meta/recipes-extended/parted/parted-3.1/fix-doc-mandir.patch20
-rw-r--r--meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch35
-rw-r--r--meta/recipes-extended/parted/parted-3.1/fix-git-version-gen.patch43
-rw-r--r--meta/recipes-extended/parted/parted-3.1/no_check.patch20
-rw-r--r--meta/recipes-extended/parted/parted-3.1/run-ptest3
-rw-r--r--meta/recipes-extended/parted/parted-3.1/syscalls.patch55
8 files changed, 495 insertions, 0 deletions
diff --git a/meta/recipes-extended/parted/parted-3.1/Makefile b/meta/recipes-extended/parted/parted-3.1/Makefile
new file mode 100644
index 0000000000..ee90be0814
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/Makefile
@@ -0,0 +1,285 @@
1am__tty_colors_dummy = \
2 mgn= red= grn= lgn= blu= brg= std=; \
3 am__color_tests=no
4
5am__tty_colors = \
6$(am__tty_colors_dummy); \
7test "X$(AM_COLOR_TESTS)" != Xno \
8&& test "X$$TERM" != Xdumb \
9&& { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \
10&& { \
11 am__color_tests=yes; \
12 red=''; \
13 grn=''; \
14 lgn=''; \
15 blu=''; \
16 mgn=''; \
17 brg=''; \
18 std=''; \
19}
20
21am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
22am__vpath_adj = case $$p in \
23 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
24 *) f=$$p;; \
25 esac;
26am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
27am__rst_section = { sed 'p;s/./=/g;' && echo; }
28am__sh_e_setup = case $$- in *e*) set +e;; esac
29
30am__common_driver_flags = \
31 --color-tests "$$am__color_tests" \
32 --enable-hard-errors "$$am__enable_hard_errors" \
33 --expect-failure "$$am__expect_failure"
34am__check_pre = \
35$(am__sh_e_setup); \
36$(am__vpath_adj_setup) $(am__vpath_adj) \
37$(am__tty_colors); \
38srcdir=$(srcdir); export srcdir; \
39am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`; \
40test "x$$am__odir" = x. || $(MKDIR_P) "$$am__odir" || exit $$?; \
41if test -f "./$$f"; then dir=./; \
42elif test -f "$$f"; then dir=; \
43else dir="$(srcdir)/"; fi; \
44tst=$$dir$$f; log='$@'; \
45if test -n '$(DISABLE_HARD_ERRORS)'; then \
46 am__enable_hard_errors=no; \
47else \
48 am__enable_hard_errors=yes; \
49fi; \
50$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
51
52am__set_TESTS_bases = \
53 bases='$(TEST_LOGS)'; \
54 bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
55 bases=`echo $$bases`
56
57RECHECK_LOGS = $(TEST_LOGS)
58TEST_SUITE_LOG = test-suite.log
59am__test_logs1 = $(TESTS:=.log)
60am__test_logs2 = $(am__test_logs1:.log=.log)
61TEST_LOGS = $(am__test_logs2:.sh.log=.log)
62SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
63SH_LOG_COMPILE = $(SH_LOG_COMPILER)
64
65am__set_b = \
66 case '$@' in \
67 */*) \
68 case '$*' in \
69 */*) b='$*';; \
70 *) b=`echo '$@' | sed 's/\.log$$//'`; \
71 esac;; \
72 *) \
73 b='$*';; \
74 esac
75
76MKDIR_P = /bin/mkdir -p
77SHELL = /bin/bash
78VERSION = 3.1
79PACKAGE_STRING = GNU parted 3.1
80PACKAGE_BUGREPORT = bug-parted@gnu.org
81abs_srcdir = $(PWD)
82abs_top_builddir = $(PWD)/..
83abs_top_srcdir = $(PWD)/..
84srcdir = .
85top_srcdir = ..
86subdir = tests
87SH_LOG_COMPILER = $(SHELL)
88
89TESTS = \
90 help-version.sh \
91 t0000-basic.sh \
92 t0001-tiny.sh \
93 t0010-script-no-ctrl-chars.sh \
94 t0100-print.sh \
95 t0101-print-empty.sh \
96 t0200-gpt.sh \
97 t0201-gpt.sh \
98 t0202-gpt-pmbr.sh \
99 t0203-gpt-tiny-device-abort.sh \
100 t0203-gpt-shortened-device-primary-valid.sh \
101 t0205-gpt-list-clobbers-pmbr.sh \
102 t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh \
103 t0207-IEC-binary-notation.sh \
104 t0208-mkpart-end-in-IEC.sh \
105 t0209-gpt-pmbr_boot.sh \
106 t0210-gpt-resized-partition-entry-array.sh \
107 t0211-gpt-rewrite-header.sh \
108 t0212-gpt-many-partitions.sh \
109 t0220-gpt-msftres.sh \
110 t0250-gpt.sh \
111 t0280-gpt-corrupt.sh \
112 t0300-dos-on-gpt.sh \
113 t0400-loop-clobber-infloop.sh \
114 t0500-dup-clobber.sh \
115 t0501-duplicate.sh \
116 t1100-busy-label.sh \
117 t1101-busy-partition.sh \
118 t1700-probe-fs.sh \
119 t2200-dos-label-recog.sh \
120 t2201-pc98-label-recog.sh \
121 t2300-dos-label-extended-bootcode.sh \
122 t2310-dos-extended-2-sector-min-offset.sh \
123 t2400-dos-hfs-partition-type.sh \
124 t2500-probe-corrupt-hfs.sh \
125 t3000-resize-fs.sh \
126 t3200-type-change.sh \
127 t3300-palo-prep.sh \
128 t3310-flags.sh \
129 t3400-whole-disk-FAT-partition.sh \
130 t4000-sun-raid-type.sh \
131 t4001-sun-vtoc.sh \
132 t4100-msdos-partition-limits.sh \
133 t4100-dvh-partition-limits.sh \
134 t4100-msdos-starting-sector.sh \
135 t4200-partprobe.sh \
136 t4300-nilfs2-tiny.sh \
137 t5000-tags.sh \
138 t6000-dm.sh \
139 t6001-psep.sh \
140 t6100-mdraid-partitions.sh \
141 t7000-scripting.sh \
142 t8000-loop.sh \
143 t8001-loop-blkpg.sh \
144 t9010-big-sector.sh \
145 t9020-alignment.sh \
146 t9021-maxima.sh \
147 t9022-one-unit-snap.sh \
148 t9023-value-lt-one.sh \
149 t9030-align-check.sh \
150 t9040-many-partitions.sh \
151 t9041-undetected-in-use-16th-partition.sh \
152 t9042-dos-partition-limit.sh \
153 t9050-partition-table-types.sh
154
155TESTS_ENVIRONMENT = \
156 export \
157 abs_top_builddir='$(abs_top_builddir)' \
158 abs_top_srcdir='$(abs_top_srcdir)' \
159 abs_srcdir='$(abs_srcdir)' \
160 built_programs=parted \
161 srcdir='$(srcdir)' \
162 top_srcdir='$(top_srcdir)' \
163 VERSION=$(VERSION) \
164 ; 9>&2
165
166.SUFFIXES: .log
167
168$(TEST_SUITE_LOG): $(TEST_LOGS)
169 @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
170 ws='[ ]'; \
171 results=`for b in $$bases; do echo $$b.trs; done`; \
172 test -n "$$results" || results=/dev/null; \
173 all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
174 pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
175 fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
176 skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
177 xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
178 xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
179 error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
180 if test `expr $$fail + $$xpass + $$error` -eq 0; then \
181 success=true; \
182 else \
183 success=false; \
184 fi; \
185 br='==================='; br=$$br$$br$$br$$br; \
186 result_count () \
187 { \
188 if test x"$$1" = x"--maybe-color"; then \
189 maybe_colorize=yes; \
190 elif test x"$$1" = x"--no-color"; then \
191 maybe_colorize=no; \
192 else \
193 echo "$@: invalid 'result_count' usage" >&2; exit 4; \
194 fi; \
195 shift; \
196 desc=$$1 count=$$2; \
197 if test $$maybe_colorize = yes && test $$count -gt 0; then \
198 color_start=$$3 color_end=$$std; \
199 else \
200 color_start= color_end=; \
201 fi; \
202 echo "$${color_start}# $$desc $$count$${color_end}"; \
203 }; \
204 create_testsuite_report () \
205 { \
206 result_count $$1 "TOTAL:" $$all "$$brg"; \
207 result_count $$1 "PASS: " $$pass "$$grn"; \
208 result_count $$1 "SKIP: " $$skip "$$blu"; \
209 result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
210 result_count $$1 "FAIL: " $$fail "$$red"; \
211 result_count $$1 "XPASS:" $$xpass "$$red"; \
212 result_count $$1 "ERROR:" $$error "$$mgn"; \
213 }; \
214 { \
215 echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
216 $(am__rst_title); \
217 create_testsuite_report --no-color; \
218 echo; \
219 echo ".. contents:: :depth: 2"; \
220 echo; \
221 for i in $$bases; do \
222 if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$i.trs \
223 >/dev/null; then continue; \
224 fi; \
225 glob_res=`sed -n -e "s/$$ws*$$//" \
226 -e "s/^$$ws*:global-test-result:$$ws*//p" \
227 $$i.trs`; \
228 test -n "$$glob_res" || glob_res=RUN; \
229 echo "$$glob_res: $$i" | $(am__rst_section); \
230 if test ! -r $$i.log; then \
231 echo "fatal: making $@: $$i.log is unreadable" >&2; \
232 exit 1; \
233 fi; \
234 cat $$i.log; echo; \
235 done; \
236 } >$(TEST_SUITE_LOG).tmp; \
237 mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
238 if $$success; then \
239 col="$$grn"; \
240 else \
241 col="$$red"; \
242 test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
243 fi; \
244 echo "$${col}$$br$${std}"; \
245 echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
246 echo "$${col}$$br$${std}"; \
247 create_testsuite_report --maybe-color; \
248 echo "$$col$$br$$std"; \
249 if $$success; then :; else \
250 echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
251 if test -n "$(PACKAGE_BUGREPORT)"; then \
252 echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
253 fi; \
254 echo "$$col$$br$$std"; \
255 fi; \
256 $$success || exit 1
257
258check-TESTS:
259 @if test $@ != recheck; then \
260 list='$(RECHECK_LOGS)'; \
261 test -z "$$list" || rm -f $$list; \
262 fi
263 @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
264 @ws='[ ]'; \
265 log_list='' trs_list=''; $(am__set_TESTS_bases); \
266 for i in $$bases; do \
267 if test -z "$$log_list"; then \
268 log_list="$$i.log"; \
269 else \
270 log_list="$$log_list $$i.log"; \
271 fi; \
272 if test -z "$$trs_list"; then \
273 trs_list="$$i.trs"; \
274 else \
275 trs_list="$$trs_list $$i.trs"; \
276 fi; \
277 done; \
278 $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"
279
280.sh.log:
281 @p='$<'; \
282 $(am__set_b); \
283 $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
284 --log-file $$b.log --trs-file $$b.trs \
285 $(am__common_driver_flags) -- $(SH_LOG_COMPILE) "$$tst"
diff --git a/meta/recipes-extended/parted/parted-3.1/fix-deprecated-readline.patch b/meta/recipes-extended/parted/parted-3.1/fix-deprecated-readline.patch
new file mode 100644
index 0000000000..c4ca06d407
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/fix-deprecated-readline.patch
@@ -0,0 +1,34 @@
1
2From: Gustavo Zacarias
3Subject: bug#16929: [PATCH] ui: switch to new-style readline typedef
4Date: Mon, 3 Mar 2014 10:40:08 -0300
5
6The CPPFunction typedef (among others) have been deprecated in favour of
7specific prototyped typedefs since readline 4.2 (circa 2001).
8It's been working since because compatibility typedefs have been in
9place until they where removed in the recent readline 6.3 release.
10Switch to the new style to avoid build breakage.
11
12Signed-off-by: Gustavo Zacarias <address@hidden>
13
14Upstream-Status: Backport
15
16Signed-off-by: Saul Wold <sgw@linux.intel.com>
17
18---
19 parted/ui.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/parted/ui.c b/parted/ui.c
23index 786deed..b33f6fc 100644
24--- a/parted/ui.c
25+++ b/parted/ui.c
26@@ -1470,7 +1470,7 @@ init_readline (void)
27 #ifdef HAVE_LIBREADLINE
28 if (!opt_script_mode) {
29 rl_initialize ();
30- rl_attempted_completion_function = (CPPFunction*) complete_function;
31+ rl_attempted_completion_function = (rl_completion_func_t *) complete_function;
32 readline_state.in_readline = 0;
33 }
34 #endif
diff --git a/meta/recipes-extended/parted/parted-3.1/fix-doc-mandir.patch b/meta/recipes-extended/parted/parted-3.1/fix-doc-mandir.patch
new file mode 100644
index 0000000000..0711d4e297
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/fix-doc-mandir.patch
@@ -0,0 +1,20 @@
1Upstream-Status: Submitted [bug-parted@gnu.org]
2
3| for po in `ls -1 ./*.pt_BR.po 2>/dev/null`; do \
4| make $(basename ${po%.pt_BR.po}); \
5| done
6| Makefile:904: *** Recursive variable `mandir' references itself (eventually). Stop.
7
8Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
9
10--- parted-3.1/doc/po4a.mk.orig 2012-03-15 14:09:11.555831872 +0100
11+++ parted-3.1/doc/po4a.mk 2012-03-15 14:10:44.243830985 +0100
12@@ -23,7 +23,7 @@
13 # threshold is 80%), it won't be distributed, and the build won't fail.
14 #
15
16-mandir = $(mandir)/$(lang)
17+mandir := $(mandir)/$(lang)
18
19 # Inform automake that we want to install some man pages in section 1, 5
20 # and 8.
diff --git a/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
new file mode 100644
index 0000000000..b1eae97988
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
@@ -0,0 +1,35 @@
1Upstream-Status: Pending
2
3Signed-off-by: Ming Liu <ming.liu@windriver.com>
4---
5 dvh.h | 10 +++++-----
6 1 file changed, 5 insertions(+), 5 deletions(-)
7
8Index: parted-3.1/libparted/labels/dvh.h
9===================================================================
10--- parted-3.1.orig/libparted/labels/dvh.h 2013-02-25 10:46:13.204477586 +0800
11+++ parted-3.1/libparted/labels/dvh.h 2013-02-25 10:47:20.954477065 +0800
12@@ -112,8 +112,8 @@ struct device_parameters {
13
14 struct volume_directory {
15 char vd_name[VDNAMESIZE]; /* name */
16- int vd_lbn; /* logical block number */
17- int vd_nbytes; /* file length in bytes */
18+ unsigned int vd_lbn; /* logical block number */
19+ unsigned int vd_nbytes; /* file length in bytes */
20 };
21
22 /*
23@@ -125,9 +125,9 @@ struct volume_directory {
24 * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED
25 */
26 struct partition_table { /* one per logical partition */
27- int pt_nblks; /* # of logical blks in partition */
28- int pt_firstlbn; /* first lbn of partition */
29- int pt_type; /* use of partition */
30+ unsigned int pt_nblks; /* # of logical blks in partition */
31+ unsigned int pt_firstlbn; /* first lbn of partition */
32+ int pt_type; /* use of partition */
33 };
34
35 #define PTYPE_VOLHDR 0 /* partition is volume header */
diff --git a/meta/recipes-extended/parted/parted-3.1/fix-git-version-gen.patch b/meta/recipes-extended/parted/parted-3.1/fix-git-version-gen.patch
new file mode 100644
index 0000000000..a9f26e9781
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/fix-git-version-gen.patch
@@ -0,0 +1,43 @@
1Upstream-Status: Accepted [Expected to be included in parted versions > 3.1]
2Upstream-URL: http://git.savannah.gnu.org/cgit/gnulib.git/patch/?id=cbc11ff0020eb9c04caea6b3e7dc4e4281dff1f9
3
4From cbc11ff0020eb9c04caea6b3e7dc4e4281dff1f9 Mon Sep 17 00:00:00 2001
5From: Andreas Oberritter <obi@opendreambox.org>
6Date: Sun, 18 Mar 2012 17:39:14 +0000
7Subject: git-version-gen: don't let "prefix" envvar cause trouble
8
9* build-aux/git-version-gen (prefix): Initialize properly,
10so as not to use a value specified via the environment.
11Details here: http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10810
12---
13diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
14index d5542a2..0fa9063 100755
15--- a/build-aux/git-version-gen
16+++ b/build-aux/git-version-gen
17@@ -1,6 +1,6 @@
18 #!/bin/sh
19 # Print a version string.
20-scriptversion=2012-01-06.07; # UTC
21+scriptversion=2012-03-18.17; # UTC
22
23 # Copyright (C) 2007-2012 Free Software Foundation, Inc.
24 #
25@@ -92,6 +92,8 @@ Options:
26
27 Running without arguments will suffice in most cases."
28
29+prefix=v
30+
31 while test $# -gt 0; do
32 case $1 in
33 --help) echo "$usage"; exit 0;;
34@@ -120,7 +122,6 @@ if test -z "$tarball_version_file"; then
35 fi
36
37 tag_sed_script="${tag_sed_script:-s/x/x/}"
38-prefix="${prefix:-v}"
39
40 nl='
41 '
42--
43cgit v0.9.0.2
diff --git a/meta/recipes-extended/parted/parted-3.1/no_check.patch b/meta/recipes-extended/parted/parted-3.1/no_check.patch
new file mode 100644
index 0000000000..58d8db4426
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/no_check.patch
@@ -0,0 +1,20 @@
1Upstream-Status: Inappropriate [configuration]
2
3If check is detected, it makes the builds non-determinstic so just force
4it to be disabled.
5
6RP - 4/11/08
7
8Index: parted-1.9.0/configure.ac
9===================================================================
10--- parted-1.9.0.orig/configure.ac 2009-07-23 18:52:08.000000000 +0100
11+++ parted-1.9.0/configure.ac 2010-02-02 14:13:56.013905093 +0000
12@@ -477,7 +477,7 @@
13 AM_CONDITIONAL([BUILD_LINUX], [test "$OS" = linux])
14
15 dnl check for "check", unit testing library/header
16-PKG_CHECK_MODULES([CHECK], [check >= 0.9.3], have_check=yes, have_check=no)
17+have_check=no
18 if test "$have_check" != "yes"; then
19 AC_MSG_RESULT([Unable to locate check version 0.9.3 or higher: not building])
20 fi
diff --git a/meta/recipes-extended/parted/parted-3.1/run-ptest b/meta/recipes-extended/parted/parted-3.1/run-ptest
new file mode 100644
index 0000000000..695c5e8a7b
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/run-ptest
@@ -0,0 +1,3 @@
1#!/bin/sh
2
3make -C tests check-TESTS
diff --git a/meta/recipes-extended/parted/parted-3.1/syscalls.patch b/meta/recipes-extended/parted/parted-3.1/syscalls.patch
new file mode 100644
index 0000000000..e9bbe9a956
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/syscalls.patch
@@ -0,0 +1,55 @@
1Upstream-Status: Pending
2
3---
4 libparted/arch/linux.c | 13 +++++++++++++
5 1 file changed, 13 insertions(+)
6
7Index: parted-1.9.0/libparted/arch/linux.c
8===================================================================
9--- parted-1.9.0.orig/libparted/arch/linux.c 2009-07-23 18:52:08.000000000 +0100
10+++ parted-1.9.0/libparted/arch/linux.c 2010-02-02 14:14:16.523904768 +0000
11@@ -17,6 +17,8 @@
12
13 #define PROC_DEVICES_BUFSIZ 16384
14
15+#include <linux/version.h>
16+
17 #include <config.h>
18 #include <arch/linux.h>
19
20@@ -1477,12 +1479,14 @@
21
22 #if SIZEOF_OFF_T < 8
23
24+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
25 static _syscall5(int,_llseek,
26 unsigned int, fd,
27 unsigned long, offset_high,
28 unsigned long, offset_low,
29 loff_t*, result,
30 unsigned int, origin)
31+#endif
32
33 loff_t
34 llseek (unsigned int fd, loff_t offset, unsigned int whence)
35@@ -1490,11 +1494,20 @@
36 loff_t result;
37 int retval;
38
39+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
40 retval = _llseek(fd,
41 ((unsigned long long)offset) >> 32,
42 ((unsigned long long)offset) & 0xffffffff,
43 &result,
44 whence);
45+#else
46+ retval = syscall(__NR__llseek, fd,
47+ ((unsigned long long)offset) >> 32,
48+ ((unsigned long long)offset) & 0xffffffff,
49+ &result,
50+ whence);
51+#endif
52+
53 return (retval==-1 ? (loff_t) retval : result);
54 }
55