summaryrefslogtreecommitdiff
path: root/ext/tcltklib
AgeCommit message (Collapse)Author
2004-08-20* ext/tcltklib/extconf.rb (find_tcl, find_tk): find stub library.nobu
* lib/mkmf.rb (arg_config, with_config): deal with '-' and '_' uniformly. [ruby-dev:24118] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-18* ext/tcltklib/stubs.c (ruby_tcltk_stubs): need to calleban
Tcl_FindExecutable() for Tcl/Tk 8.4. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-30* ext/tcltklib/tcltklib.c(lib_fromUTF8_core): raise ArgumentError whennagai
the unknown encoding name is given. * ext/tcltklib/tcltklib.c(lib_toUTF8_core): ditto. * ext/tk/lib/tk.rb(Tk::Encoding.encoding_convertfrom): bug fix. * ext/tk/lib/tk.rb(Tk::Encoding.encoding_convertto): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-15* ext/tk/, ext/tcltklib/: bug fixnagai
* ext/tk/lib/tk.rb: better operation for SIGINT when processing callbacks. * ext/tk/lib/tk/msgcat.rb: ditto. * ext/tk/lib/tk/variable.rb: ditto. * ext/tk/lib/tk/timer.rb: ditto. * ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd() to define validatecommand methods easier * ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext classes * ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type check for items (e.g. canvas items; depends on the class) to avoid some troubles on Tk extension widget class definition. * ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support * ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-06* ext/tk/lib : improve framework of developping Tcl/Tk extension wrappersnagai
* BWidget extension support on Ruby/Tk git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-01This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.(no author)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-01* ext/tk/lib/tcltklib : bug fixnagai
* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-12* ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) supportnagai
* ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and eliminate warning about instance variable access * ext/tk/lib/tk/menubar.rb: improve supported menu_spec * ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library * ext/tk/lib/tk/root.rb: add menu_spec support * ext/tk/lib/tk/text.rb: bug fix * ext/tk/lib/tk/toplevel.rb: add menu_spec support * ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-24* ext/tcltklib/extconf.rb: add --enable-tcl-thread configure option andnagai
--with-tclConfig-file=<path of tclConfig.sh> configure option git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-01This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.(no author)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-01* renewal Ruby/Tknagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-05* eval.c (top_include): include in the wrapped load is done formatz
the wrapper, not for a singleton class for wrapped main. [ruby-dev:23305] * bignum.c (rb_big_eq): use temporary double variable to save the result (internal float register may be bigger than 64 bits, for example, 80 bits on x86). [ruby-dev:23311] * eval.c (block_pass): should generate unique identifier of the pushing block. [ruby-talk:96363] * ext/socket/socket.c (make_hostent): fix memory leak, based on the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-26* ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7nagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-20* eval.c (rb_with_disable_interrupt): prohibit thread contextmatz
switch during proc execution. [ruby-dev:21899] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-25* ext/tcltklib/README.1st: edit.nagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22* ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkCompositenagai
* ext/tk/lib/tkafter.rb: bug fix * ext/tk/sample/tkcombobox.rb: new sample script * ext/tcltklib/tcltklib.c: add native thread check git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-14* ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)nagai
* ext/tk/lib/tkdialog.rb: TkDialog.new accepts the parent widget [ruby-talk:85066] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-07* ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,nagai
TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only (queueing a handler to the EventQueue). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-05configure.in, eval.c, signal.c: : add '--with-pthread-ext' optionnagai
to fix the pthread trouble on 'tcltklib' ext/tcltklib/README.1st: add the description of '--with-pthread-ext' ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste to support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's tk_menuSetFocus git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-29* ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is notusa
defined and TCL_MAJOR_VERSION >= 8. * ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc, rb_threadVwaitProc): use CONST84 instead of CONST. * ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand, ip_rb_threadTkWaitCommand): use CONST84 always. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-28* ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,usa
WaitVariableProc, WaitVisibilityProc, WaitWindowProc, ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc, rb_threadWaitVisibilityProc, rb_threadWaitWindowProc, ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype; avoid VC++ warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-26bug fix on Win : hang-up when calling 'exit' in the Tk callbacknagai
procedure. [ruby-list:38656] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-17add some documentsnagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-14ext/tcltklib/tcltklib.c:nagai
* replace Tcl/Tk's vwait and tkwait to switch on threads smoothly and avoid seg-fault. * add TclTkIp._thread_vwait and _thread_tkwait for waiting on a thread. ( Because Tcl/Tk's vwait and tkwait command wait on a eventloop. ) ext/tk/lib/multi-tk.rb: * support TclTkIp._thread_vwait and _thread_tkwait ext/tk/lib/tk.rb: * now, TkVariable#wait has 2 arguments. If 1st argument is true, waits on a thread. If false, waits on an eventloop. If 2nd argument is true, checks existence of rootwidgets. If false, doesn't. Default is wait(true, false). * add TkVariable#tkwait(arg) which is equal to TkVariable#wait(arg, true) * wait_visibility and wait_destroy have an argument for waiting on a thread or an eventloop. * improve of accessing Tcl/Tk's special variables ext/tk/lib/tkafter.rb: * support 'wait on a thread' and 'wait on an eventloop' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-07* tcltklib.c (lib_mainloop_core): fixed signal-trap bugnagai
* multi-tk.rb, tk.rb, tkafter.rb, tkcanvas.rb, tkfont.rb, tktext.rb, tkvirtevent.rb : Ruby/Tk works at $SAFE == 4 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-02* ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exceptionnagai
* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} : bug fix and improvement of font control git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-29* doc/ChangeLog-1.8.0: add changes of Ruby/Tknagai
* ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP * ext/tcltklib/tcltklib.c : can create a interpreter without Tk * ext/tcltklib/tcltklib.c : bug fix on handling exceptions * ext/tcltklib/MANUAL.euc : modify * ext/tk/lib/tk.rb : freeze some core modules * ext/tk/lib/multi-tk.rb : more secure * ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the Tk's list * ext/tk/lib/tk.rb: improve accessibility of TkVariable object * ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tktext.rb : fix bug of font handling * ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts * process.c: bug fix * process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys} * process.c: deny handling IDs during evaluating the block given to the Process::{UID,GID}.switch method git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-18* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): Mac OS X standardnobu
headers are inconsistent at this macro. [ruby-core:01432] * ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks. * ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers winspool.h * instruby.rb: make list at first instead of iterator. [ruby-talk:79347] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-17* ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03*bug fix ( NOT MAINTAINED : only for running 'line2.rb' demo. )nagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30* additional check of Tk interpreters' status for a little more safetynagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29* bug fixnagai
* change mainloop_abort_on_no_widget_cmd => mainloop_abort_on_exception ( to avoid thread timing trouble on accessing destroyed widgets ) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29tcltklib.c : use RTEST()nagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29tcltklib.c : bug fixnagai
multi-tk.rb : bug fix and pack options are pssed to the safeTk container sample/safe-tk.rb : add example for pack options of safeTk container git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-28tcltklib.c : *bug fixnagai
multi-tk.rb : *bug fix *add methods depend on Tcl's 'interp' command *suppot to control safe-level of each interpreter git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-27multi-tk.rb : (new) library to support multiple Tk interpreters (high level)nagai
tcltklib.c : add some methods to support multiple interpreters (low level) MANUAL.euc : modify descriptions tcltklib/sample/safeTk.rb : (new) sample : how to use safeTk interpreter tk/sample/safe-tk.rb : (new) sample : how to use multi-tk.rb tk.rb, tkafter.rb : bug fix and add feature to supprt multi-tk git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-25tcltklib.c : add TclTkIp#create_slave , TclTkIp#_make_safe and TclTkIp#safe?nagai
MANUAL.euc : modify descriptions tk.rb : bug fix [ruby-talk:76980] and modify to support multi Tk IPs tkafter.rb : modify to support multi Tk IPs git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24* gcc -Wall clean-up.matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23* ext/tcltklib/tcltklib.c (ip_init): need at least one statement after label.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23process.c : unify indentationnagai
configure.in : add --enable-setreuid option tcltklib.c : TclTkIp.new accepts 'ip-name' and 'options' ( e.g. TclTkIp.new('FOO', '-geometry 500x200 -use 0x2200009') ) tk.rb : support arguments of TclTkIp.new ( see TkCore::IP_NAME, TkCore::IP_OPTS ) tk*.rb : preparations for multi-Tk interpreter support git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-01tk.rb :nagai
* TkWindow include TkWinfo * treat unknown widget classes as subclasses of TkWindow git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-21Ruby/Tk libraries except tk.rb :nagai
* remove direct-accesses to a TkComm::INTERP * remove direct-accesses to a TkComm::INITIALIZE_TARGETS * use TkINTERP_SETUP_SCRIPTS constant for setting up the interpreter tcltklib.c : * support to create a safe interpreter with safe-Tk ( Tk8.x ) you can test it by the following --------------------------------------------- require 'tk' safeip = Tk::INTERP._eval('::safe::interpCreate') Tk::INTERP._eval('::safe::loadTk ' + safeip) Tk::INTERP._eval(safeip + ' eval button .b -text SlaveIP -command exit') Tk::INTERP._eval(safeip + ' eval pack .b') Tk.mainloop --------------------------------------------- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-20tcltklib.c :nagai
* Tk interpreter returns TAINTED strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-19tcltklib.c :nagai
* lib_do_one_event() : change default value of the argument * lib_do_one_event() : returns true/false * add TclTkLib::EventFlag::NONE ( == 0 ) * add set_no_event_wait() and get_no_event_wait() * modify MANUAL.euc and README.euc tk.rb : * change default value of TkCore.do_one_event argument * add TkCore.set_no_event_wait(wait) and TkCore.get_no_event_wait * add Tk.exit ( == destroy root widget ) tkafter.rb : * rename TkAfter => TkTimer ( TkAfter is an alias name now. ) * set_callback returns self * continue() raises an exception, if already running or no procedure. * skip() raises an exception, if not running. sample/tktimer2.rb * new sample for TkTimer class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-18tk.rb :nagai
* small bug fix * rename 'no_create' option to 'without_creating' * add TkWindow#pack_in, TkWindow#grid_in, TkWindow#place_in * add TkWindow#bind_class and TkWindow#database_class If defined specific_class (@db_class), bind_class returns @db_class. In other case, bind_class returns TkWinow#class(). It is useful for binding. TkWindow#database_class is defined for querying the option database. It's same to TkWinfo.classname(self). * add TkBindTag.new_by_name and TkDatabaseClass for binding to database class * check varname whether already exsist or not. (TkVarAccess.new) * TkTextWin#bbox returns an array of four numbers * autoload TkDialog2, TkWarning2 * scan event callback arguments and convert to proper type * TkBindTag.new accepts a block ( TkBindTag.new(context){callback} ) * If given taglist, TkWindow#bindtags(taglist) returns taglist * add TkWindow#bindtags=(taglist) * Tk.focue and Tk.focus_lastfor return nil if there is no target widget. * Tk::Wm.client returns the argument string when setting name * TkGrid.columnconfiginfo and rowconfiginfo given a slot return a number. * TkWindow.grid_columnconfiginfo and grid_rowconfiginfo :: ditto * rename and define alias :: TkOption ==> TkOptionDB * define alias :: TkTimer ==> TkAfter * some instance methods change from public to private * some TkComm methods change to module functions (help to treat return values from Tk) * add support for -displayof option to some TkWinfo methods * bind, bind_append and bind_remove :: returns the target of event-binding * add Tk8.4 features * add TkPaneWindow tkdialog.rb: * classes without showing at initialize : TkDialog2, TkWarning2 * add show method to reuse TkDialog object * some instance methods change from public to private * add new features for configuration tktext.rb : * small bug fix * some methods return self * add TkTextMark#+(mod) and TkTextMark#-(mod) (e.g. mark + '3 chars') * add some methods tkcanvas.rb : * small bug fix * some methods return self tkentry.rb : * some methods return self * TkEntry#bbox returns an array of four numbers * scan validatecommand arguments and convert to proper type tkbgerror.rb : * support to define a error handler by user tcltklib.rb : * reported by Ferenc Engard <engard@all.hu> on [ruby-talk:60759] ... and so on git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-09fix : 100% CPU problem of Tk.mainloopnagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-09renew Tk.mainloopnagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-05-23* eval.c (ruby_finalize): turn off ruby_debug flag before callingmatz
at_exit procs and finalizers. (ruby-bugs-ja:PR473) * ext/tcltklib/tcltklib.c (lib_mainloop_core): OK to block if there's no other thread. (ruby-bugs:PR#861) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-20* eval.c (load_dyna): clear ruby_errinfo. (ruby-bugs-ja PR#409)matz
* io.c (read_all): make str empty if given. (ruby-bugs-ja PR#408) * io.c (io_read): ditto. * io.c (rb_io_sysread): ditto. * range.c: do not override min and max. * sprintf.c (remove_sign_bits): octal left most digit for negative numbers may be '3'. (ruby-bugs-ja PR#407) * sprintf.c (rb_f_sprintf): should prefix sign bits if bignum is negative, using sign_bits(). * eval.c (avalue_to_mrhs): split argument passing and assignment conversion. * eval.c (svalue_to_mrhs): ditto. * eval.c (avalue_to_svalue): avalue_to_svalue([[1,2]]) should be [[1,2]], not [1,2] to wrap-around. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-07* ext/tcltklib/extconf.rb (find_tcl, find_tk): return true ifnobu
non-versioned found. [ruby-dev:19759] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e