Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
8b33dd8e
Kaydet (Commit)
8b33dd8e
authored
Ara 24, 2012
tarafından
Andrew Svetlov
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Use OESeeror instead of os.error (#16720)
Patch by Serhiy Storchaka.
üst
6a7a49c6
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
56 additions
and
56 deletions
+56
-56
cgi.py
Lib/cgi.py
+1
-1
os.py
Lib/os.py
+7
-7
test_bytes.py
Lib/test/test_bytes.py
+1
-1
test_os.py
Lib/test/test_os.py
+6
-6
test_pty.py
Lib/test/test_pty.py
+1
-1
bkfile.py
Tools/freeze/bkfile.py
+2
-2
freeze.py
Tools/freeze/freeze.py
+1
-1
byext.py
Tools/scripts/byext.py
+1
-1
byteyears.py
Tools/scripts/byteyears.py
+1
-1
checkpyc.py
Tools/scripts/checkpyc.py
+2
-2
copytime.py
Tools/scripts/copytime.py
+2
-2
finddiv.py
Tools/scripts/finddiv.py
+1
-1
findlinksto.py
Tools/scripts/findlinksto.py
+1
-1
fixcid.py
Tools/scripts/fixcid.py
+4
-4
ftpmirror.py
Tools/scripts/ftpmirror.py
+10
-10
linktree.py
Tools/scripts/linktree.py
+3
-3
pathfix.py
Tools/scripts/pathfix.py
+5
-5
pindent.py
Tools/scripts/pindent.py
+3
-3
treesync.py
Tools/scripts/treesync.py
+1
-1
untabify.py
Tools/scripts/untabify.py
+2
-2
which.py
Tools/scripts/which.py
+1
-1
No files found.
Lib/cgi.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -950,7 +950,7 @@ def print_directory():
try
:
pwd
=
os
.
getcwd
()
except
OSError
as
msg
:
print
(
"
os.e
rror:"
,
html
.
escape
(
str
(
msg
)))
print
(
"
OSE
rror:"
,
html
.
escape
(
str
(
msg
)))
else
:
print
(
html
.
escape
(
pwd
))
print
()
...
...
Lib/os.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -275,7 +275,7 @@ def removedirs(name):
while
head
and
tail
:
try
:
rmdir
(
head
)
except
e
rror
:
except
OS
rror
:
break
head
,
tail
=
path
.
split
(
head
)
...
...
@@ -302,7 +302,7 @@ def renames(old, new):
if
head
and
tail
:
try
:
removedirs
(
head
)
except
e
rror
:
except
OSE
rror
:
pass
__all__
.
extend
([
"makedirs"
,
"removedirs"
,
"renames"
])
...
...
@@ -372,10 +372,10 @@ def walk(top, topdown=True, onerror=None, followlinks=False):
# minor reason when (say) a thousand readable directories are still
# left to visit. That logic is copied here.
try
:
# Note that listdir
and error are globals
in this module due
# Note that listdir
is global
in this module due
# to earlier import-*.
names
=
listdir
(
top
)
except
e
rror
as
err
:
except
OSE
rror
as
err
:
if
onerror
is
not
None
:
onerror
(
err
)
return
...
...
@@ -477,7 +477,7 @@ if {open, stat} <= supports_dir_fd and {listdir, stat} <= supports_fd:
try
:
orig_st
=
stat
(
name
,
dir_fd
=
topfd
,
follow_symlinks
=
follow_symlinks
)
dirfd
=
open
(
name
,
O_RDONLY
,
dir_fd
=
topfd
)
except
e
rror
as
err
:
except
OSE
rror
as
err
:
if
onerror
is
not
None
:
onerror
(
err
)
return
...
...
@@ -572,7 +572,7 @@ def _execvpe(file, args, env=None):
fullname
=
path
.
join
(
dir
,
file
)
try
:
exec_func
(
fullname
,
*
argrest
)
except
e
rror
as
e
:
except
OSE
rror
as
e
:
last_exc
=
e
tb
=
sys
.
exc_info
()[
2
]
if
(
e
.
errno
!=
errno
.
ENOENT
and
e
.
errno
!=
errno
.
ENOTDIR
...
...
@@ -830,7 +830,7 @@ if _exists("fork") and not _exists("spawnv") and _exists("execv"):
elif
WIFEXITED
(
sts
):
return
WEXITSTATUS
(
sts
)
else
:
raise
e
rror
(
"Not stopped, signaled or exited???"
)
raise
OSE
rror
(
"Not stopped, signaled or exited???"
)
def
spawnv
(
mode
,
file
,
args
):
"""spawnv(mode, file, args) -> integer
...
...
Lib/test/test_bytes.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -773,7 +773,7 @@ class ByteArrayTest(BaseBytesTest):
finally
:
try
:
os
.
remove
(
tfn
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
def
test_reverse
(
self
):
...
...
Lib/test/test_os.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -1190,31 +1190,31 @@ if sys.platform != 'win32':
if
hasattr
(
os
,
'setuid'
):
def
test_setuid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
setuid
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
setuid
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setuid
,
1
<<
32
)
if
hasattr
(
os
,
'setgid'
):
def
test_setgid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
setgid
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
setgid
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setgid
,
1
<<
32
)
if
hasattr
(
os
,
'seteuid'
):
def
test_seteuid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
seteuid
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
seteuid
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
seteuid
,
1
<<
32
)
if
hasattr
(
os
,
'setegid'
):
def
test_setegid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
setegid
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
setegid
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setegid
,
1
<<
32
)
if
hasattr
(
os
,
'setreuid'
):
def
test_setreuid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
setreuid
,
0
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
setreuid
,
0
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setreuid
,
1
<<
32
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setreuid
,
0
,
1
<<
32
)
...
...
@@ -1228,7 +1228,7 @@ if sys.platform != 'win32':
if
hasattr
(
os
,
'setregid'
):
def
test_setregid
(
self
):
if
os
.
getuid
()
!=
0
:
self
.
assertRaises
(
os
.
e
rror
,
os
.
setregid
,
0
,
0
)
self
.
assertRaises
(
OSE
rror
,
os
.
setregid
,
0
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setregid
,
1
<<
32
,
0
)
self
.
assertRaises
(
OverflowError
,
os
.
setregid
,
0
,
1
<<
32
)
...
...
Lib/test/test_pty.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -187,7 +187,7 @@ class PtyTest(unittest.TestCase):
##debug("Reading from master_fd now that the child has exited")
##try:
## s1 = os.read(master_fd, 1024)
##except
os.e
rror:
##except
OSE
rror:
## pass
##else:
## raise TestFailed("Read from master_fd did not raise exception")
...
...
Tools/freeze/bkfile.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -7,11 +7,11 @@ class _BkFile:
self
.
__backup
=
file
+
'~'
try
:
os
.
unlink
(
self
.
__backup
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
try
:
os
.
rename
(
file
,
self
.
__backup
)
except
os
.
e
rror
:
except
OSE
rror
:
self
.
__backup
=
None
self
.
__file
=
_orig_open
(
file
,
mode
,
bufsize
)
self
.
closed
=
self
.
__file
.
closed
...
...
Tools/freeze/freeze.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -311,7 +311,7 @@ def main():
try
:
os
.
mkdir
(
odir
)
print
(
"Created output directory"
,
odir
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
usage
(
'
%
s: mkdir failed (
%
s)'
%
(
odir
,
str
(
msg
)))
base
=
''
if
odir
:
...
...
Tools/scripts/byext.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -25,7 +25,7 @@ class Stats:
self
.
addstats
(
"<dir>"
,
"dirs"
,
1
)
try
:
names
=
os
.
listdir
(
dir
)
except
os
.
e
rror
as
err
:
except
OSE
rror
as
err
:
sys
.
stderr
.
write
(
"Can't list
%
s:
%
s
\n
"
%
(
dir
,
err
))
self
.
addstats
(
"<dir>"
,
"unlistable"
,
1
)
return
...
...
Tools/scripts/byteyears.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -43,7 +43,7 @@ def main():
for
filename
in
sys
.
argv
[
1
:]:
try
:
st
=
statfunc
(
filename
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
sys
.
stderr
.
write
(
"can't stat
%
r:
%
r
\n
"
%
(
filename
,
msg
))
status
=
1
st
=
()
...
...
Tools/scripts/checkpyc.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -24,7 +24,7 @@ def main():
for
dirname
in
sys
.
path
:
try
:
names
=
os
.
listdir
(
dirname
)
except
os
.
e
rror
:
except
OSE
rror
:
print
(
'Cannot list directory'
,
repr
(
dirname
))
continue
if
not
silent
:
...
...
@@ -34,7 +34,7 @@ def main():
name
=
os
.
path
.
join
(
dirname
,
name
)
try
:
st
=
os
.
stat
(
name
)
except
os
.
e
rror
:
except
OSE
rror
:
print
(
'Cannot stat'
,
repr
(
name
))
continue
if
verbose
:
...
...
Tools/scripts/copytime.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -13,12 +13,12 @@ def main():
file1
,
file2
=
sys
.
argv
[
1
],
sys
.
argv
[
2
]
try
:
stat1
=
os
.
stat
(
file1
)
except
os
.
e
rror
:
except
OSE
rror
:
sys
.
stderr
.
write
(
file1
+
': cannot stat
\n
'
)
sys
.
exit
(
1
)
try
:
os
.
utime
(
file2
,
(
stat1
[
ST_ATIME
],
stat1
[
ST_MTIME
]))
except
os
.
e
rror
:
except
OSE
rror
:
sys
.
stderr
.
write
(
file2
+
': cannot change time
\n
'
)
sys
.
exit
(
2
)
...
...
Tools/scripts/finddiv.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -70,7 +70,7 @@ def process(filename, listnames):
def
processdir
(
dir
,
listnames
):
try
:
names
=
os
.
listdir
(
dir
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
sys
.
stderr
.
write
(
"Can't list directory:
%
s
\n
"
%
dir
)
return
1
files
=
[]
...
...
Tools/scripts/findlinksto.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -36,7 +36,7 @@ def visit(prog, dirname, names):
linkto
=
os
.
readlink
(
name
)
if
prog
.
search
(
linkto
)
is
not
None
:
print
(
name
,
'->'
,
linkto
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
if
__name__
==
'__main__'
:
...
...
Tools/scripts/fixcid.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -97,7 +97,7 @@ def recursedown(dirname):
bad
=
0
try
:
names
=
os
.
listdir
(
dirname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
dirname
+
': cannot list directory: '
+
str
(
msg
)
+
'
\n
'
)
return
1
names
.
sort
()
...
...
@@ -175,17 +175,17 @@ def fix(filename):
try
:
statbuf
=
os
.
stat
(
filename
)
os
.
chmod
(
tempname
,
statbuf
[
ST_MODE
]
&
0
o7777
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
tempname
+
': warning: chmod failed ('
+
str
(
msg
)
+
')
\n
'
)
# Then make a backup of the original file as filename~
try
:
os
.
rename
(
filename
,
filename
+
'~'
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
filename
+
': warning: backup failed ('
+
str
(
msg
)
+
')
\n
'
)
# Now move the temp file to the original file
try
:
os
.
rename
(
tempname
,
filename
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
filename
+
': rename failed ('
+
str
(
msg
)
+
')
\n
'
)
return
1
# Return success
...
...
Tools/scripts/ftpmirror.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -108,7 +108,7 @@ def mirrorsubdir(f, localdir):
if
verbose
:
print
(
'Creating local directory'
,
repr
(
localdir
))
try
:
makedir
(
localdir
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
"Failed to establish local directory"
,
repr
(
localdir
))
return
infofilename
=
os
.
path
.
join
(
localdir
,
'.mirrorinfo'
)
...
...
@@ -183,7 +183,7 @@ def mirrorsubdir(f, localdir):
continue
try
:
os
.
unlink
(
tempname
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
if
mode
[
0
]
==
'l'
:
if
verbose
:
...
...
@@ -218,11 +218,11 @@ def mirrorsubdir(f, localdir):
fp1
.
close
()
try
:
os
.
unlink
(
fullname
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
# Ignore the error
try
:
os
.
rename
(
tempname
,
fullname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
"Can't rename
%
r to
%
r:
%
s"
%
(
tempname
,
fullname
,
msg
))
continue
info
[
filename
]
=
infostuff
...
...
@@ -255,7 +255,7 @@ def mirrorsubdir(f, localdir):
try
:
if
not
localdir
:
names
=
os
.
listdir
(
os
.
curdir
)
else
:
names
=
os
.
listdir
(
localdir
)
except
os
.
e
rror
:
except
OSE
rror
:
names
=
[]
for
name
in
names
:
if
name
[
0
]
==
'.'
or
name
in
info
or
name
in
subdirs
:
...
...
@@ -312,7 +312,7 @@ def remove(fullname):
if
os
.
path
.
isdir
(
fullname
)
and
not
os
.
path
.
islink
(
fullname
):
try
:
names
=
os
.
listdir
(
fullname
)
except
os
.
e
rror
:
except
OSE
rror
:
names
=
[]
ok
=
1
for
name
in
names
:
...
...
@@ -322,13 +322,13 @@ def remove(fullname):
return
0
try
:
os
.
rmdir
(
fullname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
"Can't remove local directory
%
r:
%
s"
%
(
fullname
,
msg
))
return
0
else
:
try
:
os
.
unlink
(
fullname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
"Can't remove local file
%
r:
%
s"
%
(
fullname
,
msg
))
return
0
return
1
...
...
@@ -386,7 +386,7 @@ def writedict(dict, filename):
backup
=
os
.
path
.
join
(
dir
,
fname
+
'~'
)
try
:
os
.
unlink
(
backup
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
fp
=
open
(
tempname
,
'w'
)
fp
.
write
(
'{
\n
'
)
...
...
@@ -396,7 +396,7 @@ def writedict(dict, filename):
fp
.
close
()
try
:
os
.
rename
(
filename
,
backup
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
os
.
rename
(
tempname
,
filename
)
...
...
Tools/scripts/linktree.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -32,13 +32,13 @@ def main():
return
1
try
:
os
.
mkdir
(
newtree
,
0
o777
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
newtree
+
': cannot mkdir:'
,
msg
)
return
1
linkname
=
os
.
path
.
join
(
newtree
,
link
)
try
:
os
.
symlink
(
os
.
path
.
join
(
os
.
pardir
,
oldtree
),
linkname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
if
not
link_may_fail
:
print
(
linkname
+
': cannot symlink:'
,
msg
)
return
1
...
...
@@ -51,7 +51,7 @@ def linknames(old, new, link):
if
debug
:
print
(
'linknames'
,
(
old
,
new
,
link
))
try
:
names
=
os
.
listdir
(
old
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
old
+
': warning: cannot listdir:'
,
msg
)
return
for
name
in
names
:
...
...
Tools/scripts/pathfix.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -73,7 +73,7 @@ def recursedown(dirname):
bad
=
0
try
:
names
=
os
.
listdir
(
dirname
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
'
%
s: cannot list directory:
%
r
\n
'
%
(
dirname
,
msg
))
return
1
names
.
sort
()
...
...
@@ -131,24 +131,24 @@ def fix(filename):
mtime
=
statbuf
.
st_mtime
atime
=
statbuf
.
st_atime
os
.
chmod
(
tempname
,
statbuf
[
ST_MODE
]
&
0
o7777
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
'
%
s: warning: chmod failed (
%
r)
\n
'
%
(
tempname
,
msg
))
# Then make a backup of the original file as filename~
try
:
os
.
rename
(
filename
,
filename
+
'~'
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
'
%
s: warning: backup failed (
%
r)
\n
'
%
(
filename
,
msg
))
# Now move the temp file to the original file
try
:
os
.
rename
(
tempname
,
filename
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
'
%
s: rename failed (
%
r)
\n
'
%
(
filename
,
msg
))
return
1
if
preserve_timestamps
:
if
atime
and
mtime
:
try
:
os
.
utime
(
filename
,
(
atime
,
mtime
))
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
err
(
'
%
s: reset of timestamp failed (
%
r)
\n
'
%
(
filename
,
msg
))
return
1
# Return succes
...
...
Tools/scripts/pindent.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -427,7 +427,7 @@ def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs =
# end if
import
os
try
:
os
.
rename
(
filename
,
filename
+
'~'
)
except
os
.
e
rror
:
pass
except
OSE
rror
:
pass
# end try
f
=
open
(
filename
,
'w'
)
f
.
write
(
result
)
...
...
@@ -442,7 +442,7 @@ def delete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = E
# end if
import
os
try
:
os
.
rename
(
filename
,
filename
+
'~'
)
except
os
.
e
rror
:
pass
except
OSE
rror
:
pass
# end try
f
=
open
(
filename
,
'w'
)
f
.
write
(
result
)
...
...
@@ -457,7 +457,7 @@ def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs =
# end if
import
os
try
:
os
.
rename
(
filename
,
filename
+
'~'
)
except
os
.
e
rror
:
pass
except
OSE
rror
:
pass
# end try
f
=
open
(
filename
,
'w'
)
f
.
write
(
result
)
...
...
Tools/scripts/treesync.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -78,7 +78,7 @@ def process(slave, master):
print
(
"creating slave directory"
,
slave
)
try
:
os
.
mkdir
(
slave
)
except
os
.
e
rror
as
msg
:
except
OSE
rror
as
msg
:
print
(
"can't make slave directory"
,
slave
,
":"
,
msg
)
return
else
:
...
...
Tools/scripts/untabify.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -39,11 +39,11 @@ def process(filename, tabsize, verbose=True):
backup
=
filename
+
"~"
try
:
os
.
unlink
(
backup
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
try
:
os
.
rename
(
filename
,
backup
)
except
os
.
e
rror
:
except
OSE
rror
:
pass
with
open
(
filename
,
"w"
,
encoding
=
encoding
)
as
f
:
f
.
write
(
newtext
)
...
...
Tools/scripts/which.py
Dosyayı görüntüle @
8b33dd8e
...
...
@@ -29,7 +29,7 @@ def main():
filename
=
os
.
path
.
join
(
dir
,
prog
)
try
:
st
=
os
.
stat
(
filename
)
except
os
.
e
rror
:
except
OSE
rror
:
continue
if
not
S_ISREG
(
st
[
ST_MODE
]):
msg
(
filename
+
': not a disk file'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment