summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2008-05-29* ext/zlib/extconf.rb: search zlib1, and regard mswin32 later than VC6nobu
as WIN32. [ruby-core:16984] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-28* ext/purelib.rb: get rid of recent feature. [ruby-dev:34864]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27* ext/stringio/stringio.c (strio_each_char, Init_stringio): Addknu
StringIO#{each_char,chars}. (Init_stringio): Fix StringIO#bytes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27* ext/stringio/stringio.c (strio_each_byte): Return self insteadknu
of nil as the rdoc says. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-21* ext/nkf/nkf-utf8/nkf.c (nkf_str_caseeql): added.naruse
* ext/nkf/nkf-utf8/nkf.c (nkf_enc_find_index): use nkf_str_caseeql. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-21* ext/nkf/nkf-utf8/nkf.c (nkf_enc_find_index):naruse
use strcasecmp. [ruby-dev:34787] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-20* ext/nkf/nkf-utf8/nkf.c (rb_nkf_convert) (nkf_enc_without_bom):naruse
reverted. nkf-utf8/nkf.c should be independent of ruby. * ext/nkf/nkf.c (options): moved from nkf-utf8/nkf.c. override nkf's original settings for Unicode BOM. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-20* ext/nkf/nkf.c (rb_nkf_convert), ext/nkf/nkf-utf8/nkf.cnobu
(nkf_enc_without_bom): BOM is not a part of encodings. * ext/nkf/nkf.c (Init_nkf), ext/nkf/nkf-utf8/nkf.c (options): UTF-{16,32} without endian have no sense. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-19* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): Fix the typeknu
of md; pointed out by Takahiro Kambe <taca at back-street.net> in [ruby-dev:34748]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-15* ext/openssl/openssl_missing.c (HMAC_CTX_copy): adopted tomatz
prototype change in openssl bundled with newer OpenBSD. a patch from Takahiro Kambe <taca at back-street.net> in [ruby-dev:34691]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-12* re.c (rb_reg_prepare_re): made non static with small refactoring.matz
* ext/strscan/strscan.c (strscan_do_scan): should adjust encoding before regex searching. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-08* common.mk, ext/extmk.rb, lib/mkmf.rb: use absolute path for RUBYOPT.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-08* common.mk, ext/extmk.rb, lib/mkmf.rb: removed RUBYOPT.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-08* configure.in (MINIRUBY), common.mk (RUBYOPT): add purelib.rb.nobu
[ruby-core:16642] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-06* ext/zlib/zlib.c (gzreader_gets): may cause infinite loop.matz
[ruby-reference-manual:762] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22* ext/nkf/nkf-utf8/nkf.c (score_table_A0, score_table_F0):naruse
type of content is unsigned char. * ext/nkf/nkf-utf8/nkf.c (push_broken_buf): 'c' is nkf_char. * ext/nkf/nkf-utf8/nkf.c (push_broken_buf): enc is 0 or pointer. * ext/nkf//nkf.c (options): type of option is unsigned char. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22* ext/nkf/nkf-utf8/nkf.c (z_conv): characters must be nkf_char.naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22 * ext/win32ole/win32ole.c: avoid warnings.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-21 * ext/dbm/dbm.c (fdbm_each_value, fdbm_each_key, fdbm_each_pair):knu
GDBM#{each,each_pair,each_key,each_value}: Return an enumerator if no block is given. * ext/gdbm/gdbm.c (fgdbm_each_value, fgdbm_each_key, fgdbm_each_pair): GDBM#{each,each_pair,each_key,each_value}: Return an enumerator if no block is given. * ext/openssl/ossl_config.c (ossl_config_each): OpenSSL::Config#each: Return an enumerator if no block is given. * ext/readline/readline.c (hist_each): Readline::HISTORY#each: Return an enumerator if no block is given. * ext/sdbm/init.c (fsdbm_each_value, fsdbm_each_key, fsdbm_each_pair): SDBM#{each,each_pair,each_key,each_value}: Return an enumerator if no block is given. * ext/stringio/stringio.c (strio_each_byte, strio_each): StringIO#{each,each_line,each_byte}: Return an enumerator if no block is given. * ext/stringio/stringio.c (Init_stringio): Add #lines and #bytes, which are aliases to #each_line and #each_byte, respectively. * ext/win32ole/win32ole.c (fole_each): WIN32OLE#each: Return an enumerator if no block is given. * ext/zlib/zlib.c (rb_gzreader_each_byte, rb_gzreader_each): Zlib::GzipReader#{each,each_line,each_byte}: Return an enumerator if no block is given. * ext/zlib/zlib.c (Init_zlib): Add Zlib::GzipReader#lines and #bytes, which are aliases to #each_line and #each_byte, respectively. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20* ext/openssl/ossl_ssl.c: Switch stats hash key from string to symbol.technorama
New method SSLContext#setup to aid C extension writers. * test/openssl/test_ssl.rb: Add tests for new method and sessions. Use threads for ssl server instead of forking. * ext/openssl/ossl_version.h: Bump version. * ext/openssl/ossl_x509ext.c: Fix warnings. * test/openssl/utils.rb: Fix warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-17* enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): addmame
parentheses to remove warnings of gcc. * io.c (rb_io_getc): remove unused variables. * compile.c (NODE_NEXT, NODE_REDO): remove unused labels. * ext/nkf/nkf.c (rb_nkf_convert): remove unused variables. * ext/syck/rubyext.c (syck_resolver_initialize, syck_resolver_detect_implicit, syck_emitter_emit): remove unused variables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31* lib/resolv.rb (Resolv::Config.default_config_hash): requiresnobu
win32/resolv to use Win32::Resolv. [ruby-dev:34138] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30revert git backfire in r15860; sorrymatz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30* proc.c (proc_dup): should copy is_lambda attribute as well.matz
[ruby-talk:296244] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-29* ext/tk/sample/ttk_wrapper.rb: minor bug fix.nagai
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-29* ext/tk/*: full update Ruby/Tk to support Ruby(1.9|1.8) and Tc/Tk8.5.nagai
* ext/tk/lib/tkextlib/tile.rb: [incompatible] remove TileWidgets' instate/state/identify method to avoid the conflict with standard widget options. Those methods are renamed to ttk_instate/ttk_state/ ttk_identify (tile_instate/tile_state/tile_identify are available too). Although I don't recommend, if you realy need old methods, please define "Tk::USE_OBSOLETE_TILE_STATE_METHOD = true" before "require 'tkextlib/tile'". * ext/tk/lib/tkextlib/tile.rb: "Tk::Tile::__Import_Tile_Widgets__!" is obsolete. It outputs warning. To control default widget set, use "Tk.default_widget_set = :Ttk". * ext/tk/lib/tk.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__ method and __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method are defind as module methods of TkConfigMethod. It may help users to wrap old Ruby/Tk scripts (use standard widgets) to force to use Ttk widgets. Ttk widgets don't have some options of standard widgets which are control the view of widgets. When set ignore-mode true, configure method tries to ignoure such unknown options with no exception. Of course, it may raise other troubles on the GUI design. So, those are a little danger methods. * ext/tk/lib/tk/itemconfig.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__ method and __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method are defind as module methods of TkItemConfigMethod as the same purpose as TkConfigMethod's ones. * ext/tk/sample/ttk_wrapper.rb: A new example. This is a tool for wrapping old Ruby/Tk scripts (which use standard widgets) to use Ttk (Tile) widgets as default. * ext/tk/sample/tkextlib/tile/demo.rb: use ttk_instate/ttk_state method instead of instate/state method. * ext/tk/lib/tk/root, ext/tk/lib/tk/namespace.rb, ext/tk/lib/tk/text.rb, ext/tk/lib/tkextlib/*: some 'instance_eval's are replaced to "instance_exec(self)". * ext/tk/lib/tk/event.rb: bug fix on KEY_TBL and PROC_TBL (?x is not a character code on Ruby1.9). * ext/tk/lib/tk/variable.rb: support new style of operation argument on Tcl/Tk's 'trace' command for variables. * ext/tk/sample/demos-jp/widget, ext/tk/sample/demos-en/widget: bug fix * ext/tk/sammple/demos-jp/textpeer.rb, ext/tk/sammple/demos-en/textpeer.rb: new widget demo. * ext/tk/tcltklib.c: decrase SEGV troubles (probably) * ext/tk/lib/tk.rb: remove Thread.critical access if Ruby1.9 * ext/tk/lib/tk/multi-tk.rb: support Ruby1.9 (probably) * ext/tk/lib/tkextlib/tile.rb: add method to define Tcl/Tk command to make Tcl/Tk theme sources (based on different version of Tile extension) available. (Tk::Tile::__define_LoadImages_proc_for_comaptibility__) * ext/tk/lib/tk.rb, ext/tk/lib/tk/wm.rb: support dockable frames (Tcl/Tk8.5 feature). 'wm' command can treat many kinds of widgets as toplevel widgets. * ext/tk/lib/tkextlib/tile/style.rb: ditto. (Tk::Tile::Style.__define_wrapper_proc_for_compatibility__) * ext/tk/lib/tk/font.rb: add actual_hash and metrics_hash to get properties as a hash. metrics_hash method returns a boolean value for 'fixed' option. But metrics method returns numeric value (0 or 1) for 'fixed' option, because of backward compatibility. * ext/tk/lib/tk/timer.rb: somtimes fail to set callback procedure. * ext/tk/lib/tk.rb: add Tk.sleep and Tk.wakeup method. Tk.sleep doesn't block the eventloop. It will be better to use the method in event callbacks. * ext/tk/sample/tksleep_sample.rb: sample script about Tk.sleep. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-21* lib/resolv.rb (Resolv::Hosts): should not use win32/resolv on cygwin.nobu
[ruby-dev:29945], [ruby-dev:34095] * lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased name too for cygwin. [ruby-dev:29945] * lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-21* lib/ipaddr.rb: Say that I am the current maintainer.knu
* lib/set.rb: Ditto. * lib/shellwords.rb: Ditto. * ext/syslog/syslog.txt: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-14* include/ruby/ruby.h (inttypes.h): includes always if available.nobu
* string.c, ext/digest/defs.h: moved inttypes.h to ruby.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-14* ext/digest/defs.h: inttypes.h is still needed.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-14* configure.in (int8_t, uint8_t, int16_t, uint16_t int32_t,naruse
uint32_t int64_t, uint64_t, int128_t, uint128_t, intptr_t, uintptr_t): check if defined. * win32/Makefile.sub: follow configure.in. * ext/digest/defs.h: remove checks for uint8_t, uint32_t and uint64_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-28* ext/tk/lib/tk.rb: forgot to update RELEASE_DATEnagai
* ext/tk/lib/tk.rb, ext/tk/lib/tk/text.rb, ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: remove adhoc check of Ruby's features (use existence of some classes instead of comparing with RUBY_VERSION) * ext/tk/lib/tk/root.rb, ext/tk/lib/tk/autoload.rb: make TkRoot (Tk::Root) unswitchable * ext/tk/lib/multi-tk.rb: partial bug fix (still not work!!) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-27* ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set nagai
switchable between Tk (standard Tcl/Tk widget set) and Ttk (Tile). Initial default widget set is Tk. Now, toplevel widget classes are removed and defined as aliases. For example, "TkButton" is an alias of the "Tk::Button" class. Those aliases are replaced when switching default widget set. "Tk.default_widget_set=" is the method for switching default widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile) widget set as default. It means that "TkButton" denotes "Tk::Tile::Button" class. And then, "TkButton.new" creates a Tk::Tile::Button widget. Of course, you can back to use standard Tk widgets as the default widget set by calling "Tk.default_widget_set = :Tk", whenever you want. Based on thie feature, you can use Ttk widget styling engine on your old Ruby/Tk application without modifying its source, if you don'tuse widget options unsupported on Ttk widgets (At first, call "Tk.default_widget_set = :Ttk", and next load and run your application). This is one step for supporting Tcl/Tk8.5 features. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-26* ext/extmk.rb, enc/make_encmake.rb: load current mkmf.rb even ifnobu
cross-compiling. * ext/extmk.rb, enc/make_encmake.rb, lib/mkmf.rb: need to be 1.8 compatible for cross-compiling. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-26* ext/openssl/ossl_{ec,dh,dsa,rsa}.c: Remove useless warnings.technorama
* ext/openssl/ossl_asn1.c: Simplify code. * ext/openssl/ossl_ssl_session.c Fix compiler warnings. Undefine #id if SSL_SESSION_get_id is not supported. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-25* ext/openssl/digest.c ext/openssl/lib/openssl/digest.rb:technorama
Commit patch #9280 from Akinori MUSHA. Simplify the OpenSSL::Digest class and make use of the existing Digest framework. Enhance performance. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-23 * ext/win32ole/win32ole.c (ole_init_cp): should return value.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-23* ext/win32ole/win32ole.c (ole_encoding2cp): remove US-ASCIIsuke
mapping. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-20 * ext/readline/extconf.rb (rl_event_hook): workaround for nativeusa
windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-19* ext/readline/readline.c (readline_event): prevent polling. based onnobu
a patch from error errorsson in [ruby-Bugs-17675]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-18* ext/pty/lib/expect.rb (IO#expect): check if peer is closed.nobu
[ruby-Bugs-17940] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-15* ext/win32ole/win32ole.c (ole_init_cp): initialize WIN32OLE.codepagesuke
according to Encoding.default_external. * test/win32ole/test_win32ole.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-15* ext/iconv/iconv.c (iconv_convert): check upper bound. a patch fromnobu
Daniel Luz at [ruby-Bugs-17910]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-12* ext/json/lib/json/pure/generator.rb,naruse
ext/json/lib/json/pure/parser.rb, ext/openssl/lib/openssl/x509.rb, ext/win32ole/sample/olegen.rb, lib/date/format.rb, lib/irb/context.rb, lib/irb/workspace.rb, lib/net/http.rb, lib/net/imap.rb, lib/rdoc/generator.rb, lib/rdoc/markup/to_html.rb, lib/rdoc/markup/to_latex.rb, lib/rdoc/parsers/parse_c.rb, lib/rdoc/ri/formatter.rb, lib/rexml/parsers/baseparser.rb, lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rss/parser.rb, lib/uri/common.rb, lib/uri/generic.rb, lib/webrick/httpresponse.rb, lib/webrick/httpservlet/filehandler.rb, lib/yaml/baseemitter.rb, lib/yaml/encoding.rb: performance tuning arround String#gsub. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-12* numeric.c (rb_num_coerce_bin): add ID argument to specifymatz
caller's method name. [ruby-dev:33663] * numeric.c (rb_num_coerce_cmp): ditto. * numeric.c (rb_num_coerce_relop): ditto. * ext/bigdecimal/bigdecimal.c (DoSomeOne): add function name argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09* ext/bigdecimal/extconf.rb: simplified the condition.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for morenobu
precision. [ruby-talk:290296] * ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant. * ext/bigdecimal/extconf.rb: ditto. [ruby-dev:33658] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-08* ext/iconv/iconv.c (rb_str_derive): uses rb_str_subseq() for bytenobu
length. [ruby-dev:33653] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-08* ext/iconv/iconv.c (iconv_convert): added toidx argument to setnobu
encoding of successfully converted string. [ruby-dev:33221] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-07* ext/nkf/nkf-utf8/nkf.c (nkf_enc_from_index): BINARY does notmatz
have in-bound encoding index. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e