рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,
рдпрд╣ рдПрдХ рд╡реГрджреНрдзрд┐ рдЕрдиреБрд░реЛрдз рд╣реИред
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдиреЗрдХреНрд╕рд╕ рдЗрд╕ рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рдо рдореЗрдВ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдпрд╛ рдЙрд╕ рднреВрдорд┐рдХрд╛ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ/рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред
рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрднреА рдЕрд╕рдВрднрд╡ рд╣реИред
рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛: рдРрд╕реА рднреВрдорд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рднрдВрдбрд╛рд░реЛрдВ рд╕реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛрдВред
рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдирд╛ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред ;)
рд╕рд╛рджрд░,
рддрд╛рд░рд╛рд╕
рд╣рд╛рдп @ рдХреЛрд╣рд░рд╛ 1985 ,
рдХреНрдпрд╛ рдпрд╣ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛? рдпрд╣ domain
, repository
рдпрд╛ name
рдЬреИрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
resource "nexus_repository" "demo" {
type = "hosted"
format = "maven2"
name = "demo"
...
}
data "nexus_privileges" "demo" {
repository = nexus_repository.demo.name
}
рд╣рд╛рдп @Nosmoht ,
рд╣рд╛рдБред рдпрд╣ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
@ рдиреЛрд╕реНрдореЛрд╣рдЯ ,
рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред Cuz рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП repository-view
рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ this
рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
рд╣рд╛рдп @ рдХреЛрд╣рд░рд╛ 1985 ,
рдЗрд╕реЗ v1.7.0 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░рд▓реЗрдЦрди
рдардВрдбрд╛ред рдзрдиреНрдпрд╡рд╛рдж @Nosmoht
@fog1985 рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрд░реЗ @Nosmoht ,
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдбрд╛рд▓рдиреЗ рдФрд░ рддреБрд░рдВрдд рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдпрд╛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рд╣рд╛рдп @Nosmoht ,
рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдорд╛рдиреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рддред
рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
data "nexus_privileges" "apt-proxy-read" {
format = "apt"
repository = "apt-proxy"
type = "repository-view"
privileges {
actions = ["read"]
}
}
рдЗрд╕ рдХреЛрдб рдкрд░ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛:
https://github.com/datadrivers/terraform-provider-nexus/blob/master/nexus/data_source_privileges.go
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ privileges
рдЕрдиреБрднрд╛рдЧ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ format
рдмреАрдЪ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдФрд░ format
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдВрджрд░ред
рдлрд┐рд░ рднреА, рдореБрдЭреЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ:
Error: "privileges": this field cannot be set
on roles.tf line 1, in data "nexus_privileges" "apt-proxy-read":
1: data "nexus_privileges" "apt-proxy-read" {
рдЕрдЧрд░ рдореИрдВ рд░реВрдЯ рдореЗрдВ actions
рдбрд╛рд▓рддрд╛ рд╣реВрдВ рддреЛ рднреА actions are not expected here
рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рд╣рд╛рдп @ рдХреЛрд╣рд░рд╛ 1985 ,
рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рднрдВрдбрд╛рд░ format
рдФрд░ type
рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдШреЛрд╖рдгрд╛ рд╕реЗ privileges
рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЖрдкрдХреЛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рднрдВрдбрд╛рд░ apt-proxy
рдХреЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдп @Nosmoht ,
рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдирд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
data "nexus_privileges" "apt-proxy-read" {
format = "apt"
repository = "apt-proxy"
type = "repository-view"
}
output "privileges" {
value = data.nexus_privileges.apt-proxy-read.privileges.*.name
}
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдХреНрд░рд┐рдпрд╛ READ
рдпрд╛ WRITE
?
рдпрд╛ рд╕рд┐рд░реНрдл рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА?
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдмреНрд▓реЙрдХ рдореЗрдВ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ:
type = "repository-view"
рдХреНрдпрд╛ рдпрд╣ рднрдВрдбрд╛рд░ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдпрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрджрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реИ рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Cuz repository-view
рдореБрдЭреЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдорд┐рд▓реА, рдЬрд┐рдирдореЗрдВ рд▓рд┐рдЦрдиреЗ/рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдЖрджрд┐ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреБрдЫ рд░реАрдб, рд░рд╛рдЗрдЯ, рдпрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ рд╡рд╣ рд╣реИ name = ".*-read"
рдЬреИрд╕рд╛ рдирд╛рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╛рдо рдкрд░ рдПрдХ рд░реЗрдЧреЗрдХреНрд╕рдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд░реЗрдЧреЗрдХреНрд╕рдкреА рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рдорджрдж рдорд┐рд▓реЗрдЧреА?
рд╣рд╛рдБ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрд╛рдо рдмрди рдЬрд╛рдПрдЧрд╛ред
рдореИрдВрдиреЗ рдЯреЗрд░рд╛рдлреЛрдорд░ рдХреА filter
рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://www.terraform.io/docs/providers/oci/guides/filters.html
рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред
data "nexus_privileges" "apt-proxy-read" {
format = "apt"
repository = "apt-proxy"
type = "repository-view"
filter {
name = "actions"
values = ["READ"]
}
}
рдирддреАрдЬрд╛:
Error: Unsupported block type
on roles.tf line 6, in data "nexus_privileges" "apt-proxy-read":
6: filter {
Blocks of type "filter" are not expected here.
рддреЛ name
рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрдВрддрд░рд┐рдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрднреА рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ:
value = [for x in data.nexus_privileges.apt-proxy-read.privileges: x.name if contains(x["actions"], "READ")]
рдЬреЛ READ
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИред :)
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╢рд╛рдпрдж рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ:
output "privileges_apt_proxy_all_read" {
value = [for x in data.nexus_privileges.apt-proxy-read.privileges: x.name if can(regex("ALL|READ", join("",x.actions)))]
}
output "privileges_apt_proxy_browse" {
value = [for x in data.nexus_privileges.apt-proxy-read.privileges: x.name if can(regex("BROWSE", join("",x.actions)))]
}
output "privileges_multiple_repos_example" {
value = concat([for x in data.nexus_privileges.apt-proxy-read.privileges: x.name if can(regex("ALL|READ", join("",x.actions)))], [for x in data.nexus_privileges.apt-proxy-read.privileges: x.name if can(regex("BROWSE", join("",x.actions)))])
}
рдЗрд╕ рддрд░рд╣, рд╣рдо actions
рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде RegExp
рдЖрдзрд╛рд░ рдкрд░ рдЕрдЪреНрдЫреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ concat
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рднреА рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВред
рд╣рд╛рдп @ рдХреЛрд╣рд░рд╛ 1985 ,
рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рд╣рд╛рдп @ рдХреЛрд╣рд░рд╛ 1985 ,
рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рд╣рд╛рдп @Nosmoht ,
рдЬрд╝рд░реВрд░ред
рдзрдиреНрдпрд╡рд╛рджред