View previous topic :: View next topic |
Author |
Message |
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2056 Location: United Kingdom
|
Posted: Mon Jul 08, 2019 10:39 pm Post subject: |
|
|
MrBrutico,
From the output you posted, the problem is this:
Code: | * multilib-strict check failed! |
I'm not sure, but you could try the following:
Code: | FEATURES="-multilib-strict" USE="mx920" emerge =cnijfilter-3.90-r2 |
_________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC systemd-utils[udev] elogind KDE on both.
My blog |
|
Back to top |
|
|
MrBrutico n00b
Joined: 01 Jan 2015 Posts: 53
|
Posted: Mon Jul 15, 2019 7:11 pm Post subject: |
|
|
Thank you! installed but does not print anything
It marks me this error in administardor of printers cupsd "/usr/libexec/cups/filter/pstocanonij" |
|
Back to top |
|
|
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2056 Location: United Kingdom
|
Posted: Tue Jul 16, 2019 10:15 am Post subject: |
|
|
MrBrutico,
Do you mean that the error message is telling you that /usr/libexec/cups/filter/pstocanonij does not exist? What precisely is the error message?
If the error message is indeed telling you that /usr/libexec/cups/filter/pstocanonij does not exist, have you checked if pstocanonij exists in a different directory? If it does, you could try copying it into the directory /usr/libexec/cups/filter/ to see if the driver then works.
EDIT: Looking at the USE flags for that overlay's ebuild cnijfilter-3.90-r2.ebuild listed on https://gpo.zugaina.org/net-print/cnijfilter , another thing to try would be:
Code: | FEATURES="-multilib-strict" USE="canon_printers_mx920 cups -servicetools" emerge =cnijfilter-3.90-r2 |
_________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC systemd-utils[udev] elogind KDE on both.
My blog |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
|
Back to top |
|
|
Anon-E-moose Watchman
Joined: 23 May 2008 Posts: 6150 Location: Dallas area
|
Posted: Sat Mar 14, 2020 11:37 am Post subject: |
|
|
Have you tried gutenprint? They say (website) that the mx9** series is experimental, but they might work.
I have an old mg8200 series and this is what I have installed
net-print/cups-2.2.13
net-print/cups-bjnp-2.0
net-print/cups-filters-1.25.11
net-print/gutenprint-5.3.3
Edit to add: are you printing to this printer locally (usb/?) or network? _________________ UM780, 6.1 zen kernel, gcc 13, profile 17.0 (custom bare multilib), openrc, wayland |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Sun Mar 15, 2020 8:25 am Post subject: |
|
|
gutenprint would be an alternative, I tried that years ago. But it was always lower quality and speed compared to the manufacturers drivers. And because those are working well on the other OpenSuse system, I would prefer them. Is there no official ebuild installing the Canon drivers? _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Fri Mar 20, 2020 9:52 am Post subject: |
|
|
I tried to make a copy of the cnijfilter-3.80.ebuild from the calculate overlay, renamed it to 3.90, adapted SRC_URI, disabled the local patches:
Code: |
SRC_URI="http://gdlp01.c-wss.com/gds/1/0100005171/01/${PN}-source-${PV}-1.tar.gz"
|
It loads the tar ball, but fails at building: Code: | ...
make[2]: Leaving directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/pstocanonij/filter'
make[2]: Entering directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/pstocanonij'
make[2]: Leaving directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/pstocanonij'
make[1]: Leaving directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/pstocanonij'
>>> Working in: backend
make -j10 -l8
make all-recursive
make[1]: Entering directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/backend'
Making all in src
make[2]: Entering directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/backend/src'
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -c -o cnij_backend_common.o cnij_backend_common.c
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -c -o cnij_usb.o cnij_usb.c
cnij_backend_common.c: In function ‘make_lgmon_command’:
cnij_backend_common.c:161:2: error: unknown type name ‘ppd_file_t’; did you mean ‘cups_file_t’?
161 | ppd_file_t *p_ppd;
| ^~~~~~~~~~
| cups_file_t
cnij_backend_common.c:165:15: warning: implicit declaration of function ‘ppdOpenFile’ [-Wimplicit-function-declaration]
165 | if( (p_ppd = ppdOpenFile(p_ppd_name)) == NULL )
| ^~~~~~~~~~~
cnij_backend_common.c:165:13: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
165 | if( (p_ppd = ppdOpenFile(p_ppd_name)) == NULL )
| ^
cnij_backend_common.c:168:11: error: request for member ‘model_number’ in something not a structure or union
168 | if( p_ppd->model_number < 356 ) add_direct = 0;
| ^~
cnij_backend_common.c:169:67: error: request for member ‘model_number’ in something not a structure or union
169 | fprintf(stderr,"DEBUG: (cnijusb)p_ppd->model_number=(%d)\n",p_ppd->model_number);
| ^~
cnij_backend_common.c:170:2: warning: implicit declaration of function ‘ppdClose’; did you mean ‘pclose’? [-Wimplicit-function-declaration]
170 | ppdClose(p_ppd);
| ^~~~~~~~
| pclose
cnij_backend_common.c: In function ‘get_model_name’:
cnij_backend_common.c:215:2: error: unknown type name ‘ppd_file_t’; did you mean ‘cups_file_t’?
215 | ppd_file_t *p_file ;
| ^~~~~~~~~~
| cups_file_t
cnij_backend_common.c:219:17: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
219 | if ( ( p_file = ppdOpenFile( getenv( "PPD" ) ) ) != NULL ) {
| ^
cnij_backend_common.c:221:23: error: request for member ‘product’ in something not a structure or union
221 | if ( strlen( p_file->product ) > 0 ) {
| ^~
cnij_backend_common.c:227:28: error: request for member ‘product’ in something not a structure or union
227 | strncpy( product, p_file->product, MODEL_NAME_STR_LEN - 1 ) ;
| ^~
make[2]: *** [Makefile:407: cnij_backend_common.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/backend/src'
make[1]: *** [Makefile:397: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/net-print/cnijfilter-3.90/work/cnijfilter-source-3.90-1/backend'
make: *** [Makefile:329: all] Error 2
* ERROR: net-print/cnijfilter-3.90::portage_local failed (compile phase): |
_________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Fri Mar 20, 2020 10:03 am Post subject: |
|
|
Fitzcarraldo wrote: | Code: | FEATURES="-multilib-strict" USE="canon_printers_mx920 cups -servicetools" emerge =cnijfilter-3.90-r2 |
| That one has disappeared? Can't find it anymore in any 'eix-remote update1; eix -R cnij'. _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Fri Mar 20, 2020 10:22 am Post subject: |
|
|
I tried all the ipp urls and using the 3.90 .ppd file, 'printer' resolves to the printers IP here:
ipp://printer/ipp/print
lpd://printer/queue
Also http://printer/ipp like mentioned in https://oip.manual.canon/USRMA-0228-zz-SS-enUS/contents/09030040_060.html .
None is working. _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Fri Mar 20, 2020 12:33 pm Post subject: |
|
|
I installed the sources from the cnijfilter-source-3.90-1.tar.gz from Canon:
Code: | ./autogen.sh --program-suffix=mx920
make
make install |
That has installed a new binary /usr/local/bin/cifmx920. What can I do now? The cnijnet:/<mac> is not provided yet in cups, even after restart, eventhough I have additionally installed net-print/cnijfilter-3.80 from the calculate overlay. _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Jallee n00b
Joined: 17 Oct 2010 Posts: 29 Location: Sweden
|
Posted: Fri Mar 20, 2020 7:45 pm Post subject: |
|
|
Massimo B. wrote: | I installed the sources from the cnijfilter-source-3.90-1.tar.gz from Canon:
Code: | ./autogen.sh --program-suffix=mx920
make
make install |
That has installed a new binary /usr/local/bin/cifmx920. What can I do now? The cnijnet:/<mac> is not provided yet in cups, even after restart, eventhough I have additionally installed net-print/cnijfilter-3.80 from the calculate overlay. |
Is net-print/cups-bjnp installed?
If i remember it right then it just to:
Code: |
cnijnetprn --search auto
|
And use that output to lpadmin like something like this:
Code: |
/usr/sbin/lpadmin -p MX920LAN -m canonmx920.ppd -v cnijnet:/XX-XX-XX-XX-XX-XX -E
|
|
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Mon Mar 23, 2020 10:51 am Post subject: |
|
|
Interesting, no I did not have that. is net-print/cups-bjnp always required additionally to cnijfilter? After installing, I get this result Code: | # cnijnetprn --search auto
network cnijnet:/F4-81-39-C0-64-40 "Canon MX920 series" "Canon-MX920-series_F4-81-39-C0-64-40"
|
However the device does not print with this configuration: /etc/cups/printers.conf: |
# Printer configuration file for CUPS v2.3.1
# Written by cupsd on 2020-03-23 11:47
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
NextPrinterId 4
<Printer Canon_Pixma_MX925>
PrinterId 3
UUID urn:uuid:96c00de4-89b6-3f28-4e6e-3a18f7751545
Info
Location Büro
MakeModel Canon PIXMA MX925 - CUPS+Gutenprint v5.3.3
DeviceURI cnijnet:/F4-81-39-C0-64-40
State Stopped
StateMessage page margins overlap
StateTime 1584960423
ConfigTime 1584960416
Reason paused
Type 8425500
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer> | I tried with both PPD, the Canon cnijfilter 3.90 and the gutenprint. No printing.
From the logs I see: /var/log/cups/error_log: | E [23/Mar/2020:11:46:42 +0100] [CGI] Unable to execute ippfind utility: No such file or directory
E [23/Mar/2020:11:47:02 +0100] [Job 15] cannot specify model number.
E [23/Mar/2020:11:47:03 +0100] [Job 15] page margins overlap |
_________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Mon Mar 23, 2020 11:08 am Post subject: |
|
|
The only combination I got some test page printed now is lpd://printer/queue and Gutenprint PPD. After switching to the Canon PPD, printing fails. Switching back to the Gutenprint PPD, test page printing now also fails with "page margins overlap". I need to delete the printer and re-add it. Anyway I remember Gutenprint was slower and worse quality than the manufacturer drivers.
How can I get those working? _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
nubiocicarini Tux's lil' helper
Joined: 20 Feb 2019 Posts: 80 Location: Brazil
|
Posted: Thu Jun 18, 2020 7:33 pm Post subject: |
|
|
Massimo B. wrote: | The only combination I got some test page printed now is lpd://printer/queue and Gutenprint PPD. After switching to the Canon PPD, printing fails. Switching back to the Gutenprint PPD, test page printing now also fails with "page margins overlap". I need to delete the printer and re-add it. Anyway I remember Gutenprint was slower and worse quality than the manufacturer drivers.
How can I get those working? |
I recently installed the gutenprint to replace the manufacturer's drive and did not notice any difference in print quality and speed. To make it work via the network I installed the avahi. _________________ Workers of the world, unite! |
|
Back to top |
|
|
charles17 Advocate
Joined: 02 Mar 2008 Posts: 3685
|
Posted: Fri Jun 19, 2020 5:33 am Post subject: |
|
|
nubiocicarini wrote: | I recently installed the gutenprint to ... |
Your printer does not support driverless printing? |
|
Back to top |
|
|
nubiocicarini Tux's lil' helper
Joined: 20 Feb 2019 Posts: 80 Location: Brazil
|
Posted: Sat Jun 27, 2020 2:53 am Post subject: |
|
|
charles17 wrote: | nubiocicarini wrote: | I recently installed the gutenprint to ... |
Your printer does not support driverless printing? |
You are right. I clean gutenprint and print normal with driveless. Than i said above only avahi was necessary. Thank you. _________________ Workers of the world, unite! |
|
Back to top |
|
|
The Main Man Veteran
Joined: 27 Nov 2014 Posts: 1171 Location: /run/user/1000
|
Posted: Sun Jun 28, 2020 2:21 pm Post subject: |
|
|
I have a problem with permissions, trying to use scanner and I just can't figure it out, looked at Wiki but that didn't help with permissions.
Code: | $ lsusb
Bus 001 Device 004: ID 04a9:1721 Canon, Inc. PIXMA MP210
$ sane-find-scanner
could not open USB device 0x04a9/0x1721 at 001:004: Access denied (insufficient permissions)
# sane-find-scanner
found USB scanner (vendor=0x04a9 [Canon], product=0x1721 [MP210 series]) at libusb:001:004
|
Configured sane-backends from the Wiki, scan app is simple-scan.
I'm in the groups scanner and usb
In short, if I run simple-scan as root it works, but if I run it as user it says that scanner is not detected.
Any help ?
EDIT: Found the solution on previous page with udev rules and that worked! |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Wed Apr 27, 2022 10:06 am Post subject: |
|
|
Massimo B. wrote: | Code: | E [23/Mar/2020:11:47:03 +0100] [Job 15] page margins overlap |
|
I still often get this failure after updates. Usually I solve it be re-modifying the printer from webinterface and re-selecting the same PPD file eventhough its version is still unchanged. _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2056 Location: United Kingdom
|
Posted: Mon Jan 15, 2024 3:36 am Post subject: |
|
|
If anyone with a Canon PIXMA printer used to use Canon's obsolete cnijfilter-3.20 driver but nowadays has to use the Gutenprint driver (net-print/gutenprint), I have updated the net-print/cnijfilter-3.20 ebuild to get it to build in my Gentoo Testing (~amd64) installation with a local overlay. I have created an additional patch and updated Rev. 3 of the ebuild. The ebuild has to be merged in conjunction with the ecnij.eclass file that user Evert produced in 2022. All necessary files (including ecnij.eclass) are in a tarball that can be downloaded from Gentoo Bugzilla Bug Report No. 130645 Comment 266. The files are listed below:
ecnij.eclass goes in directory /var/db/repos/local/eclass/
cnijfilter-3.20-r3.ebuild goes in directory /var/db/repos/local/net-print/cnijfilter/
The patch files to go in directory /var/db/repos/local/net-print/cnijfilter/files/ are:
cnijfilter-3.20-1-libdl.patch
cnijfilter-3.20-4-ppd.patch
cnijfilter-3.20-7-cups-1.6.patch
cnijfilter-3.40-4-libpng15.patch
cnijfilter-3.70-1-libexec-backend.patch
cnijfilter-3.70-1-libexec-cups.patch
cnijfilter-3.70-6-cups-1.6.patch
cnijfilter-3.70-6-headers.patch
cnijfilter-3.80-6-headers.patch
I am able to merge the ebuild in my Gentoo Testing (~amd64) installation and can print successfully to my PIXMA MP560. I have not tried merging the ebuild for the other models of printer this ebuild is supposed to support, so YMMV.
Code: | $ eix -I cnijfilter
[I] net-print/cnijfilter [1]
Available versions: (3) (~)3.20-r3(3/3.20)^m
{canon_printers_ip4700 canon_printers_mp250 canon_printers_mp270 canon_printers_mp490 canon_printers_mp550 canon_printers_mp560 canon_printers_mp640 +cups debug +net servicetools +usb ABI_X86="32"}
Installed versions: 3.20-r3(3/3.20)^m(18:04:57 14/01/24)(canon_printers_mp560 cups net usb -canon_printers_ip4700 -canon_printers_mp250 -canon_printers_mp270 -canon_printers_mp490 -canon_printers_mp550 -canon_printers_mp640 -debug -servicetools ABI_X86="32")
Homepage: https://support-asia.canon-asia.com/content/EN/0100084101.html
Description: Canon InkJet Printer Driver for Linux (Pixus/Pixma-Series)
[1] "local_overlay" /var/db/repos/local |
There is a lot of obsolete CUPS API source code in the Canon package cnijfilter-source-3.20-1.tar.gz dating from 2009, hence the number of patches. However, those existing patches do not cover deprecated CUPS API source code in the Canon package. Future versions of CUPS may drop support for that deprecated source code, so I do not know for how long it will be possible for this latest ebuild to be used. _________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC systemd-utils[udev] elogind KDE on both.
My blog |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Thu Jul 04, 2024 12:24 pm Post subject: |
|
|
Long time I had no issues with printing. Today after some updates I get in /var/log/cups/error_log: Code: | E [04/Jul/2024:14:19:36 +0200] [Client 11] Returning IPP client-error-document-format-not-supported for Print-Job (ipp://localhost:631/printers/Canon_Pixma_MX925) from localhost. |
Curiously it's complaining about ipp:// while my printer is configured like: lpd://printer/queue
What is broken?
I tried creating another printer with all possible protocols:All have the same error. Interesting, printing a test page from cups webinterface does not lead to this error in the error_log, but only says "file not found". Which file is missing?
I have set LogLevel debug in /etc/cups/cupsd.conf. Again searching for errors in /var/log/cups/error_log: Code: | E [04/Jul/2024:15:06:02 +0200] Unknown directive IdleExitTimeout on line 32 of /etc/cups/cupsd.conf.
...
E [04/Jul/2024:15:06:02 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/share/cups/banners": No such file or directory
...
D [04/Jul/2024:15:06:02 +0200] Queue Canon_Pixma_MX925 uses a printer driver, which is deprecated.
...
D [04/Jul/2024:15:06:02 +0200] FindDeviceById failed: org.freedesktop.ColorManager.NotFound:device id \'cups-Canon_Pixma_MX925\' does not exist
...
D [04/Jul/2024:15:06:52 +0200] CUPS-Get-Default
D [04/Jul/2024:15:06:52 +0200] CUPS-Get-Default client-error-not-found: Kein voreingestellter Drucker.
D [04/Jul/2024:15:06:52 +0200] [Client 2] Returning IPP client-error-not-found for CUPS-Get-Default (no URI) from localhost.
...
D [04/Jul/2024:15:06:52 +0200] [Client 1] CGI data ready to be sent.
D [04/Jul/2024:15:06:52 +0200] [Client 1] con->http=0x55c8da32b8f0
D [04/Jul/2024:15:06:52 +0200] [Client 1] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=2147483647, response=(nil)(), pipe_pid=21967, file=12
...
D [04/Jul/2024:15:06:52 +0200] [Client 2] Returning IPP successful-ok for CUPS-Get-Printers (no URI) from localhost.
...
D [04/Jul/2024:15:06:52 +0200] [Client 1] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=21967, file=12
D [04/Jul/2024:15:06:52 +0200] [Client 1] Waiting for CGI data.
D [04/Jul/2024:15:06:52 +0200] [Client 2] HTTP_STATE_WAITING Closing for error 32 (Broken pipe) |
_________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
Massimo B. Veteran
Joined: 09 Feb 2005 Posts: 1810 Location: PB, Germany
|
Posted: Tue Jul 09, 2024 7:20 am Post subject: |
|
|
Ok, I missed the news: Code: | [80] 2023-11-20 CUPS no longer directly depends on its filters | This was from last year, but I see some late depclean might have removed it recently… Code: | # genlop -u |grep cups-filters |tail -n 1
Fri Jun 14 07:29:40 2024 <<< net-print/cups-filters-2.0.0 |
It feels like the desktop profile is inconsitent and installing an incomplete cups: -> bug 935784 _________________ HP ZBook Power 15.6" G8 i7-11800H|HP EliteDesk 800G1 i7-4790|HP Compaq Pro 6300 i7-3770 |
|
Back to top |
|
|
|