Subject: strtonum(3) in our libc
To: None <tech-userlevel@NetBSD.org>
From: Mindaugas <unex@linija.org>
List: tech-userlevel
Date: 06/03/2006 03:16:12
This is a multi-part message in MIME format.
--Multipart=_Sat__3_Jun_2006_03_16_12_+0300_S=ETRCv/d/BVOJke
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hi,
some time ago OpenBSD developers implemented strtonum(3) function which
is safer implementation of atoi(3) and strtol(3) - it does bounds
checking, error detection, etc. They use it several applications (e.g.
OpenSSH has native implementation).
This function doesn't conform to POSIX or any other standard, but it
might be useful. FreeBSD also made decision to import this function into
the libc.
If there is some questions about this, to don't discuss it twice,
checkout discussion in FreeBSD mailing list with OpenBSD folks:
http://lists.freebsd.org/pipermail/freebsd-current/2005-April/048655.html
If there will be decision to import it, I attached patch and source with
manual, which goes to src/lib/libc/stdlib :) Please review.
--
Best regards,
Mindaugas
--Multipart=_Sat__3_Jun_2006_03_16_12_+0300_S=ETRCv/d/BVOJke
Content-Type: application/octet-stream;
name="strtonum.3"
Content-Disposition: attachment;
filename="strtonum.3"
Content-Transfer-Encoding: base64
LlwiICROZXRCU0QkCi5cIiAkT3BlbkJTRDogc3RydG9udW0uMyx2IDEuMTMgMjAwNi8wNC8yNSAw
NToxNTo0MiB0ZWR1IEV4cCAkCi5cIgouXCIgQ29weXJpZ2h0IChjKSAyMDA0IFRlZCBVbmFuZ3N0
Ci5cIgouXCIgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUg
dGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci5cIiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMg
aGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi5cIiBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgouXCIK
LlwiIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NM
QUlNUyBBTEwgV0FSUkFOVElFUwouXCIgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNM
VURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgouXCIgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IKLlwiIEFO
WSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1Ig
QU5ZIERBTUFHRVMKLlwiIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERB
VEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTgouXCIgQUNUSU9OIE9GIENPTlRSQUNULCBORUdM
SUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YKLlwiIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUu
Ci5cIgouRGQgQXByaWwgMjksIDIwMDQKLkR0IFNUUlRPTlVNIDMKLk9zCi5TaCBOQU1FCi5ObSBz
dHJ0b251bQouTmQgInJlbGlhYmx5IGNvbnZlcnQgc3RyaW5nIHZhbHVlIHRvIGFuIGludGVnZXIi
Ci5TaCBTWU5PUFNJUwouRmQgI2luY2x1ZGUgPHN0ZGxpYi5oPgouRnQgbG9uZyBsb25nCi5GbyBz
dHJ0b251bQouRmEgImNvbnN0IGNoYXIgKm5wdHIiCi5GYSAibG9uZyBsb25nIG1pbnZhbCIKLkZh
ICJsb25nIGxvbmcgbWF4dmFsIgouRmEgImNvbnN0IGNoYXIgKiplcnJzdHIiCi5GYwouU2ggREVT
Q1JJUFRJT04KVGhlCi5GbiBzdHJ0b251bQpmdW5jdGlvbiBjb252ZXJ0cyB0aGUgc3RyaW5nIGlu
Ci5GYSBucHRyCnRvIGEKLkxpIGxvbmcgbG9uZwp2YWx1ZS4KVGhlCi5GbiBzdHJ0b251bQpmdW5j
dGlvbiB3YXMgZGVzaWduZWQgdG8gZmFjaWxpdGF0ZSBzYWZlLCByb2J1c3QgcHJvZ3JhbW1pbmcK
YW5kIG92ZXJjb21lIHRoZSBzaG9ydGNvbWluZ3Mgb2YgdGhlCi5YciBhdG9pIDMKYW5kCi5YciBz
dHJ0b2wgMwpmYW1pbHkgb2YgaW50ZXJmYWNlcy4KLlBwClRoZSBzdHJpbmcgbWF5IGJlZ2luIHdp
dGggYW4gYXJiaXRyYXJ5IGFtb3VudCBvZiB3aGl0ZXNwYWNlCihhcyBkZXRlcm1pbmVkIGJ5Ci5Y
ciBpc3NwYWNlIDMgKQpmb2xsb3dlZCBieSBhIHNpbmdsZSBvcHRpb25hbAouUWwgKwpvcgouUWwg
LQpzaWduLgouUHAKVGhlIHJlbWFpbmRlciBvZiB0aGUgc3RyaW5nIGlzIGNvbnZlcnRlZCB0byBh
Ci5MaSBsb25nIGxvbmcKdmFsdWUgYWNjb3JkaW5nIHRvIGJhc2UgMTAuCi5QcApUaGUgdmFsdWUg
b2J0YWluZWQgaXMgdGhlbiBjaGVja2VkIGFnYWluc3QgdGhlIHByb3ZpZGVkCi5GYSBtaW52YWwK
YW5kCi5GYSBtYXh2YWwKYm91bmRzLgpJZgouRmEgZXJyc3RyCmlzIG5vbi1udWxsLAouRm4gc3Ry
dG9udW0Kc3RvcmVzIGFuIGVycm9yIHN0cmluZyBpbgouRmEgKmVycnN0cgppbmRpY2F0aW5nIHRo
ZSBmYWlsdXJlLgouU2ggUkVUVVJOIFZBTFVFUwpUaGUKLkZuIHN0cnRvbnVtCmZ1bmN0aW9uIHJl
dHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29udmVyc2lvbiwKdW5sZXNzIHRoZSB2YWx1ZSB3b3Vs
ZCBleGNlZWQgdGhlIHByb3ZpZGVkIGJvdW5kcyBvciBpcyBpbnZhbGlkLgpPbiBlcnJvciwgMCBp
cyByZXR1cm5lZCwKLlZhIGVycm5vCmlzIHNldCwgYW5kCi5GYSBlcnJzdHIKd2lsbCBwb2ludCB0
byBhbiBlcnJvciBtZXNzYWdlLgouRmEgKmVycnN0cgp3aWxsIGJlIHNldCB0bwouRHYgTlVMTApv
biBzdWNjZXNzOwp0aGlzIGZhY3QgY2FuIGJlIHVzZWQgdG8gZGlmZmVyZW50aWF0ZQphIHN1Y2Nl
c3NmdWwgcmV0dXJuIG9mIDAgZnJvbSBhbiBlcnJvci4KLlNoIEVYQU1QTEVTClVzaW5nCi5GbiBz
dHJ0b251bQpjb3JyZWN0bHkgaXMgbWVhbnQgdG8gYmUgc2ltcGxlciB0aGFuIHRoZSBhbHRlcm5h
dGl2ZSBmdW5jdGlvbnMuCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudAppbnQgaXRlcmF0aW9u
czsKY29uc3QgY2hhciAqZXJyc3RyOwoKaXRlcmF0aW9ucyA9IHN0cnRvbnVtKG9wdGFyZywgMSwg
NjQsICZlcnJzdHIpOwppZiAoZXJyc3RyKQoJZXJyeCgxLCAibnVtYmVyIG9mIGl0ZXJhdGlvbnMg
aXMgJXM6ICVzIiwgZXJyc3RyLCBvcHRhcmcpOwouRWQKLlBwClRoZSBhYm92ZSBleGFtcGxlIHdp
bGwgZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIG9mIGl0ZXJhdGlvbnMgaXMgYmV0d2VlbgoxIGFu
ZCA2NCAoaW5jbHVzaXZlKS4KLlNoIEVSUk9SUwouQmwgLXRhZyAtd2lkdGggRXIKLkl0IEJxIEVy
IEVSQU5HRQpUaGUgZ2l2ZW4gc3RyaW5nIHdhcyBvdXQgb2YgcmFuZ2UuCi5JdCBCcSBFciBFSU5W
QUwKVGhlIGdpdmVuIHN0cmluZyBkaWQgbm90IGNvbnNpc3Qgc29sZWx5IG9mIGRpZ2l0IGNoYXJh
Y3RlcnMuCi5JdCBCcSBFciBFSU5WQUwKLkFyIG1pbnZhbAp3YXMgbGFyZ2VyIHRoYW4KLkFyIG1h
eHZhbCAuCi5FbAouUHAKSWYgYW4gZXJyb3Igb2NjdXJzLAouRmEgZXJyc3RyCndpbGwgYmUgc2V0
IHRvIG9uZSBvZiB0aGUgZm9sbG93aW5nIHN0cmluZ3M6Ci5QcAouQmwgLXRhZyAtd2lkdGggInRv
byBsYXJnZVhYIiAtY29tcGFjdAouSXQgdG9vIGxhcmdlClRoZSByZXN1bHQgd2FzIGxhcmdlciB0
aGFuIHRoZSBwcm92aWRlZCBtYXhpbXVtIHZhbHVlLgouSXQgdG9vIHNtYWxsClRoZSByZXN1bHQg
d2FzIHNtYWxsZXIgdGhhbiB0aGUgcHJvdmlkZWQgbWluaW11bSB2YWx1ZS4KLkl0IGludmFsaWQK
VGhlIHN0cmluZyBkaWQgbm90IGNvbnNpc3Qgc29sZWx5IG9mIGRpZ2l0IGNoYXJhY3RlcnMuCi5F
bAouU2ggU0VFIEFMU08KLlhyIGF0b2YgMyAsCi5YciBhdG9pIDMgLAouWHIgYXRvbCAzICwKLlhy
IGF0b2xsIDMgLAouWHIgc3NjYW5mIDMgLAouWHIgc3RydG9kIDMgLAouWHIgc3RydG9sIDMgLAou
WHIgc3RydG91bCAzCi5TaCBTVEFOREFSRFMKLkZuIHN0cnRvbnVtCmlzIGFuCi5PeApleHRlbnNp
b24uClRoZSBleGlzdGluZyBhbHRlcm5hdGl2ZXMsIHN1Y2ggYXMKLlhyIGF0b2kgMwphbmQKLlhy
IHN0cnRvbCAzICwKYXJlIGVpdGhlciBpbXBvc3NpYmxlIG9yIGRpZmZpY3VsdCB0byB1c2Ugc2Fm
ZWx5LgouU2ggSElTVE9SWQpUaGUKLkZuIHN0cnRvbnVtCmZ1bmN0aW9uIGZpcnN0IGFwcGVhcmVk
IGluCi5PeCAzLjYgLgo=
--Multipart=_Sat__3_Jun_2006_03_16_12_+0300_S=ETRCv/d/BVOJke
Content-Type: application/octet-stream;
name="strtonum.c"
Content-Disposition: attachment;
filename="strtonum.c"
Content-Transfer-Encoding: base64
LyoJJE5ldEJTRCQJKi8KLyoJJE9wZW5CU0Q6IHN0cnRvbnVtLmMsdiAxLjYgMjAwNC8wOC8wMyAx
OTozODowMSBtaWxsZXJ0IEV4cCAkCSovCgovKgogKiBDb3B5cmlnaHQgKGMpIDIwMDQgVGVkIFVu
YW5nc3QgYW5kIFRvZGQgTWlsbGVyCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFBlcm1p
c3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUg
Zm9yIGFueQogKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCiAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCiAqCiAqIFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElF
UwogKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBX
QVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCiAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKICogV0hBVFNP
RVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVS
IElOIEFOCiAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9V
UyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCiAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNF
IE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiAqLwoKI2luY2x1ZGUgPHN5cy9jZGVm
cy5oPgojaWYgZGVmaW5lZChMSUJDX1NDQ1MpICYmICFkZWZpbmVkKGxpbnQpCl9fUkNTSUQoIiRO
ZXRCU0QkIik7CiNlbmRpZiAvKiBMSUJDX1NDQ1MgYW5kIG5vdCBsaW50ICovCgojaW5jbHVkZSA8
ZXJybm8uaD4KI2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVkZSA8c3RkbGliLmg+CgojZGVmaW5l
IElOVkFMSUQgCTEKI2RlZmluZSBUT09TTUFMTCAJMgojZGVmaW5lIFRPT0xBUkdFIAkzCgpsb25n
IGxvbmcKc3RydG9udW0oY29uc3QgY2hhciAqbnVtc3RyLCBsb25nIGxvbmcgbWludmFsLCBsb25n
IGxvbmcgbWF4dmFsLAogICAgY29uc3QgY2hhciAqKmVycnN0cnApCnsKCWxvbmcgbG9uZyBsbCA9
IDA7CgljaGFyICplcDsKCWludCBlcnJvciA9IDA7CglzdHJ1Y3QgZXJydmFsIHsKCQljb25zdCBj
aGFyICplcnJzdHI7CgkJaW50IGVycjsKCX0gZXZbNF0gPSB7CgkJeyBOVUxMLAkJMCB9LAoJCXsg
ImludmFsaWQiLAlFSU5WQUwgfSwKCQl7ICJ0b28gc21hbGwiLAlFUkFOR0UgfSwKCQl7ICJ0b28g
bGFyZ2UiLAlFUkFOR0UgfSwKCX07CgoJZXZbMF0uZXJyID0gZXJybm87CgllcnJubyA9IDA7Cglp
ZiAobWludmFsID4gbWF4dmFsKQoJCWVycm9yID0gSU5WQUxJRDsKCWVsc2UgewoJCWxsID0gc3Ry
dG9sbChudW1zdHIsICZlcCwgMTApOwoJCWlmIChudW1zdHIgPT0gZXAgfHwgKmVwICE9ICdcMCcp
CgkJCWVycm9yID0gSU5WQUxJRDsKCQllbHNlIGlmICgobGwgPT0gTExPTkdfTUlOICYmIGVycm5v
ID09IEVSQU5HRSkgfHwgbGwgPCBtaW52YWwpCgkJCWVycm9yID0gVE9PU01BTEw7CgkJZWxzZSBp
ZiAoKGxsID09IExMT05HX01BWCAmJiBlcnJubyA9PSBFUkFOR0UpIHx8IGxsID4gbWF4dmFsKQoJ
CQllcnJvciA9IFRPT0xBUkdFOwoJfQoJaWYgKGVycnN0cnAgIT0gTlVMTCkKCQkqZXJyc3RycCA9
IGV2W2Vycm9yXS5lcnJzdHI7CgllcnJubyA9IGV2W2Vycm9yXS5lcnI7CglpZiAoZXJyb3IpCgkJ
bGwgPSAwOwoKCXJldHVybiAobGwpOwp9Cg==
--Multipart=_Sat__3_Jun_2006_03_16_12_+0300_S=ETRCv/d/BVOJke
Content-Type: application/octet-stream;
name="strtonum.diff"
Content-Disposition: attachment;
filename="strtonum.diff"
Content-Transfer-Encoding: base64
SW5kZXg6IE1ha2VmaWxlLmluYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvbGli
L2xpYmMvc3RkbGliL01ha2VmaWxlLmluYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42NQpkaWZm
IC1iIC11IC1yMS42NSBNYWtlZmlsZS5pbmMKLS0tIE1ha2VmaWxlLmluYwkyMiBNYXIgMjAwNiAy
MjowMzo1OCAtMDAwMAkxLjY1CisrKyBNYWtlZmlsZS5pbmMJMiBKdW4gMjAwNiAyMToyMzowOCAt
MDAwMApAQCAtMTQsOSArMTQsOSBAQAogCW5yYW5kNDguYyBwdXRlbnYuYyBxYWJzLmMgcWRpdi5j
IHFzb3J0LmMgcG9zaXhfb3BlbnB0LmMgcHR5LmMgXAogCXJhZGl4c29ydC5jIHJhbmQuYyByYW5k
X3IuYyByYW5kb20uYyByZW1xdWUuYyBcCiAJc2VlZDQ4LmMgc2V0ZW52LmMgc3JhbmQ0OC5jIHN0
cnN1ZnRvbGwuYyBcCi0Jc3RydG9pbWF4LmMgc3RydG9sLmMgc3RydG9sbC5jIHN0cnRvcS5jIHN0
cnRvdWwuYyBzdHJ0b3VsbC5jIFwKLQlzdHJ0b3VtYXguYyBzdHJ0b3VxLmMgc3lzdGVtLmMgdGRl
bGV0ZS5jIHRmaW5kLmMgdHNlYXJjaC5jIHR3YWxrLmMgXAotCXVuc2V0ZW52LmMgc3RyZm1vbi5j
CisJc3RydG9pbWF4LmMgc3RydG9sLmMgc3RydG9sbC5jIHN0cnRvbnVtLmMgc3RydG9xLmMgc3Ry
dG91bC5jIFwKKwlzdHJ0b3VsbC5jIHN0cnRvdW1heC5jIHN0cnRvdXEuYyBzeXN0ZW0uYyB0ZGVs
ZXRlLmMgdGZpbmQuYyBcCisJdHNlYXJjaC5jIHR3YWxrLmMgdW5zZXRlbnYuYyBzdHJmbW9uLmMK
IAogIyBtYWNoaW5lLWRlcGVuZGVudCBzdGRsaWIgc291cmNlcwogIyBtLWQgTWFrZWZpbGUuaW5j
IG11c3QgaW5jbHVkZSBzb3VyY2VzIGZvcjoKQEAgLTMwLDggKzMwLDggQEAKIAltYWxsb2MuMyBt
ZW1vcnkuMyBcCiAJcG9zaXhfb3BlbnB0LjMgcHRzbmFtZS4zIHFhYnMuMyBcCiAJcWRpdi4zIHFz
b3J0LjMgcmFkaXhzb3J0LjMgcmFuZDQ4LjMgcmFuZC4zIHJhbmRvbS4zIFwKLQlzdHJzdWZ0b2xs
LjMgc3RydG9kLjMgc3RydG9sLjMgc3RydG91bC4zIHN5c3RlbS4zIHRzZWFyY2guMyB1bmxvY2tw
dC4zIFwKLQlzdHJmbW9uLjMKKwlzdHJzdWZ0b2xsLjMgc3RydG9kLjMgc3RydG9udW0uMyBzdHJ0
b2wuMyBzdHJ0b3VsLjMgc3lzdGVtLjMgXAorCXRzZWFyY2guMyB1bmxvY2twdC4zIHN0cmZtb24u
MwogCiBNTElOS1MrPWE2NGwuMyBsNjRhLjMKIE1MSU5LUys9YTY0bC4zIGw2NGFfci4zCkluZGV4
OiBzdGRsaWIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvaW5jbHVkZS9zdGRs
aWIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43NgpkaWZmIC1iIC11IC1yMS43NiBzdGRsaWIu
aAotLS0gc3RkbGliLmgJMTUgTWFyIDIwMDYgMTc6MzU6MTcgLTAwMDAJMS43NgorKysgc3RkbGli
LmgJMiBKdW4gMjAwNiAyMTo0OTowMyAtMDAwMApAQCAtMjE0LDYgKzIxNCw5IEBACiAvKiBMT05H
TE9ORyAqLwogdW5zaWduZWQgbG9uZyBsb25nIGludAogCQlzdHJ0b3VsbChjb25zdCBjaGFyICog
X19yZXN0cmljdCwgY2hhciAqKiBfX3Jlc3RyaWN0LCBpbnQpOworLyogTE9OR0xPTkcgKi8KK3Vu
c2lnbmVkIGxvbmcgbG9uZworCQlzdHJ0b251bShjb25zdCBjaGFyICosIGxvbmcgbG9uZywgdW5z
aWduZWQgbG9uZyBsb25nLCBjb25zdCBjaGFyICoqKTsKIGZsb2F0CQlzdHJ0b2YoY29uc3QgY2hh
ciAqIF9fcmVzdHJpY3QsIGNoYXIgKiogX19yZXN0cmljdCk7CiBsb25nIGRvdWJsZQlzdHJ0b2xk
KGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LCBjaGFyICoqIF9fcmVzdHJpY3QpOwogI2VuZGlmCg==
--Multipart=_Sat__3_Jun_2006_03_16_12_+0300_S=ETRCv/d/BVOJke--