Compare commits

...

2 commits

Author SHA1 Message Date
Jean-Marie Mineau
074010755c
spooky little ghosts
All checks were successful
/ test_checkout (push) Successful in 1m49s
2025-10-15 17:37:38 +02:00
Jean-Marie Mineau
528e1bc5b5
pretty sure I accidentally hardcoded edge cases 2025-10-15 16:57:55 +02:00
15 changed files with 133 additions and 26 deletions

View file

@ -65,4 +65,4 @@ Androscalpel can be found at the following locations:
- https://git.mineau.eu/these-android-re/androscalpel
- https://github.com/histausse/androscalpel
The dataset, results of the dynamic analysis and results of benchmark before and after the instrumentations with Theseus are available on Zenodo (link to appear)
The dataset, results of the dynamic analysis and results of benchmark before and after the instrumentations with Theseus are available on Zenodo at https://doi.org/10.5281/zenodo.17350991.

View file

@ -49,16 +49,71 @@
)
)
#slide(
title: [Test],
subtitle: [Test Slide],
)[
#set page(foreground: ghost-5(dx:-45%, dy: 43%))
#slide(new-sec: true, title: [Introduction], hide-title: true)[
Intro 1
]
#set page(foreground: [])
#slide[
Intro 2
]
#new-section-slide([Tool Reusability])
#slide[
Rasta 1
/*
#stack(dir: ltr,
scale(40%, reflow: true, get_figure(<tab:rasta-tools>)),
scale(55%, reflow: true, get_figure(<tab:rasta-sources>)),
)
)*/
]
#slide[
Rasta 2
]
#new-section-slide([Class Shadowing])
#slide[Shadow 1
]
#slide[Shadow 2
]
#slide[Shadow 3
]
#new-section-slide([The Application of Theseus])
#slide[Th 1
]
#slide[Th 2
]
#new-section-slide([Conclusion])
#slide[Conclusion 1
]
#slide[Conclusion 2
]
#empty-slide[
Questions
]
/*
#slide()[
#get_figure(<fig:th-cg-before-after>))
]
@ -80,7 +135,6 @@
// #toc-slide( title: [Outline] )
#new-section-slide([First section])
#slide(
title: [A slide without subtitle],
@ -120,7 +174,7 @@
#empty-slide()[
Ending slide
]
*/
@ -135,4 +189,6 @@
*
*/
#pagebreak()
#set page(height: auto, margin: 25mm)
#bibliography("bibliography.bib")

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -29,3 +29,22 @@ pirat-color.red,
})
}
]
#let ghost(img, ..args,) = {
move(
..args,
image(img, height: 100pt)
)
}
#let ghost-1 = ghost.with("imgs/ghosts/ghost-1.png")
#let ghost-2 = ghost.with("imgs/ghosts/ghost-2.png")
#let ghost-3 = ghost.with("imgs/ghosts/ghost-3.png")
#let ghost-4 = ghost.with("imgs/ghosts/ghost-4.png")
#let ghost-5 = ghost.with("imgs/ghosts/ghost-5.png")
#let ghost-6 = ghost.with("imgs/ghosts/ghost-6.png")
#let ghost-7 = ghost.with("imgs/ghosts/ghost-7.png")
#let eye-1 = ghost.with("imgs/ghosts/eye-1.png")
#let eye-2 = ghost.with("imgs/ghosts/eye-2.png")
#let eye-3 = ghost.with("imgs/ghosts/eye-3.png")
#let eye-4 = ghost.with("imgs/ghosts/eye-4.png")

View file

@ -123,11 +123,25 @@ cmyk(25%,7%,0%,0%),
sns-polylux-template_date.update(date)
body
context {
//let section-pages = sns-polylux-template_section-pages.final()
if not "END" in sns-polylux-template_section-pages.at(here()).keys() {
let page_num = counter("logical-slide").at(here())
sns-polylux-template_section-pages.update(secpages => {
secpages.insert("END", page_num)
secpages
})
}
}
}
#let register-section(title) = context {
#let register-section(title, no_dedicated_slide: false) = context {
// YUCKKKKK, but polylux don't allows access to integers soooooo
let page_num = counter("logical-slide").at(here()) //sns-polylux-template_slide-pages.at(here())
if no_dedicated_slide {
page_num.at(0) += 1
}
sns-polylux-template_section-pages.update(secpages => {
secpages.insert(repr(title), page_num)
secpages
@ -267,35 +281,52 @@ cmyk(25%,7%,0%,0%),
#let sections() = context {
let section-pages = sns-polylux-template_section-pages.final()
let pnum = counter("logical-slide").at(here()).first()
let pnum = counter("logical-slide").at(here()).first() + 1
pl.toolbox.all-sections((sections, current) => {
let pnum_i = 0
let beg-end-section = (:)
let prev-sec = none
for section in sections {
let s = repr(section.at("body"))
if prev-sec != none {
beg-end-section.insert(prev-sec, (section-pages.at(prev-sec).first(), section-pages.at(s).first()))
}
prev-sec = s
}
if prev-sec != none {
beg-end-section.insert(prev-sec, (section-pages.at(prev-sec).first(), section-pages.at("END").first() + 1))
}
let section_names = ()
let section_pages = ()
for s in sections {
let pages = ()
let pnum_max = section-pages.at(repr(s.at("body"))).first()
while pnum_i < pnum_max and pnum_i < pnum - 1 {
let (pmin, pmax) = beg-end-section.at(repr(s.at("body")))
let p_i = pmin
while p_i < pmax and p_i < pnum {
// In section, before current page
pages.push(sym.circle.filled)
pnum_i += 1
p_i += 1
}
if pnum_i == pnum {
if p_i == pnum and p_i != pmax {
// In section, current page
pages.push(sym.ast.circle)
pnum_i += 1
p_i += 1
}
while pnum_i < pnum_max {
while p_i < pmax {
// In section, after current page
pages.push(sym.circle.dotted)
pnum_i += 1
p_i += 1
}
/*
//section_names.push(scale(50%, reflow: true, [#pnum #s (#pmin, #pmax)]))
if s == current {
strong(s + " " + str(pnum))
section_names.push(strong(s))
section_pages.push(strong(pages.join([])))
} else {
s + " " + str(pnum)
}*/
section_names.push(s)
section_pages.push(pages.join([]))
section_names.push(s)
section_pages.push(pages.join([]))
}
}
grid(
columns: (auto,)*section_names.len(),
@ -340,6 +371,7 @@ cmyk(25%,7%,0%,0%),
new-sec : false,
page-number : true,
hide-section : false,
hide-title : false,
body
) = context( {
let sections_height = 1.5cm
@ -355,7 +387,7 @@ cmyk(25%,7%,0%,0%),
// Else the new-sec name is new-sec
if type(new-sec)==bool {
if new-sec {
register-section(title)
register-section(title, no_dedicated_slide: true)
}
} else {
register-section(new-sec)
@ -379,7 +411,7 @@ cmyk(25%,7%,0%,0%),
}))
),
grid.cell(colspan: columns.len(), progress-bar()),
if title != none {
if title != none and not hide-title {
rect(
width: 100%, height: title_bar_height,
inset: 0.8cm, outset: 0pt,